Update
This commit is contained in:
@@ -73,21 +73,43 @@ this.BX.Vue3 = this.BX.Vue3 || {};
|
||||
* @subpackage ui
|
||||
* @copyright 2001-2025 Bitrix
|
||||
*/
|
||||
const handlersMap = new WeakMap();
|
||||
const hint = {
|
||||
async mounted(element, {
|
||||
mounted(element, {
|
||||
value
|
||||
}) {
|
||||
var _getParams$interactiv;
|
||||
if (!value) {
|
||||
return;
|
||||
}
|
||||
main_core.Event.bind(element, 'mouseenter', () => onMouseEnter(element, getParams(value)));
|
||||
const isInteractive = (_getParams$interactiv = getParams(value).interactivity) != null ? _getParams$interactiv : false;
|
||||
main_core.Event.bind(element, 'mouseleave', () => hideTooltip(isInteractive));
|
||||
main_core.Event.bind(element, 'click', () => hideTooltip());
|
||||
updateEvents(element, value);
|
||||
},
|
||||
updated(element, {
|
||||
value
|
||||
}) {
|
||||
updateEvents(element, value);
|
||||
},
|
||||
beforeUnmount(element) {
|
||||
unbindEvents(element);
|
||||
}
|
||||
};
|
||||
let showTimeout = null;
|
||||
function updateEvents(element, params) {
|
||||
unbindEvents(element);
|
||||
if (params) {
|
||||
const handlers = {
|
||||
mouseenter: () => onMouseEnter(element, getParams(params)),
|
||||
mouseleave: () => {
|
||||
var _getParams$interactiv;
|
||||
return hideTooltip((_getParams$interactiv = getParams(params).interactivity) != null ? _getParams$interactiv : false);
|
||||
},
|
||||
click: () => hideTooltip()
|
||||
};
|
||||
handlersMap.set(element, handlers);
|
||||
Object.entries(handlers).forEach(([event, handler]) => main_core.Event.bind(element, event, handler));
|
||||
}
|
||||
}
|
||||
function unbindEvents(element) {
|
||||
var _handlersMap$get;
|
||||
Object.entries((_handlersMap$get = handlersMap.get(element)) != null ? _handlersMap$get : {}).forEach(([event, handler]) => main_core.Event.unbind(element, event, handler));
|
||||
handlersMap.delete(element);
|
||||
}
|
||||
function onMouseEnter(element, params) {
|
||||
var _params$timeout;
|
||||
clearTimeouts();
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"version":3,"file":"hint.bundle.map.js","names":["this","BX","Vue3","exports","ui_hint","main_core","main_popup","_","t","_t","_getText","babelHelpers","classPrivateFieldLooseKey","Tooltip","constructor","Object","defineProperty","value","_getText2","popup","cursorOnPopup","show","element","params","_params$popupOptions","_this$popup","hide","popupOptions","id","Date","now","bindElement","bindOptions","position","content","Tag","render","classPrivateFieldLooseBase","darkMode","autoHide","cacheable","animation","Popup","interactivity","getPopupContainer","Event","bind","isInteractive","setTimeout","close","_this$popup2","Type","isStringFilled","isUndefined","dataset","hintHtml","Text","encode","html","text","tooltip","hint","mounted","_getParams$interactiv","onMouseEnter","getParams","hideTooltip","showTimeout","_params$timeout","clearTimeouts","showTooltip","timeout","clearTimeout","isFunction","Directives","Main"],"sources":["hint.bundle.js"],"mappings":"AACAA,KAAKC,GAAKD,KAAKC,IAAM,CAAC,EACtBD,KAAKC,GAAGC,KAAOF,KAAKC,GAAGC,MAAQ,CAAC,GAC/B,SAAUC,EAAQC,EAAQC,EAAUC,GACpC,aAEA,IAAIC,EAAIC,GAAKA,EACXC,EACF,IAAIC,EAAwBC,aAAaC,0BAA0B,WACnE,MAAMC,EACJ,WAAAC,GACEC,OAAOC,eAAehB,KAAMU,EAAU,CACpCO,MAAOC,IAETlB,KAAKmB,MAAQ,KACbnB,KAAKoB,cAAgB,KACvB,CACA,IAAAC,CAAKC,EAASC,GACZ,IAAIC,EAAsBC,EAC1BzB,KAAK0B,KAAK,OACV,MAAMC,EAAe,CACnBC,GAAI,eAAeC,KAAKC,QACxBC,YAAaT,EACbU,YAAa,CACXC,SAAUV,EAAOU,WAAa,MAAQ,MAAQ,UAEhDC,QAAS7B,EAAU8B,IAAIC,OAAO3B,IAAOA,EAAKF,CAAC;oCACd;MAC7BI,aAAa0B,2BAA2BrC,KAAMU,GAAUA,GAAUY,EAASC,IAC3Ee,SAAU,KACVC,SAAU,KACVC,UAAW,MACXC,UAAW,aACNjB,EAAuBD,EAAOI,eAAiB,KAAOH,EAAuB,MAEpFxB,KAAKmB,MAAQ,IAAIb,EAAWoC,MAAMf,GAClC3B,KAAKmB,MAAME,OACX,GAAIE,EAAOoB,gBAAkBlB,EAAczB,KAAKmB,QAAU,MAAQM,EAAYmB,oBAAqB,CACjGvC,EAAUwC,MAAMC,KAAK9C,KAAKmB,MAAMyB,oBAAqB,cAAc,KACjE5C,KAAKoB,cAAgB,IAAI,IAE3Bf,EAAUwC,MAAMC,KAAK9C,KAAKmB,MAAMyB,oBAAqB,cAAc,KACjE5C,KAAKoB,cAAgB,MACrBpB,KAAK0B,KAAK,KAAK,GAEnB,CACF,CACA,IAAAA,CAAKqB,GACH,GAAIA,EAAe,CACjBC,YAAW,KACT,GAAIhD,KAAKmB,OAASnB,KAAKmB,MAAMyB,sBAAwB5C,KAAKoB,cAAe,CACvEpB,KAAKmB,MAAM8B,OACb,IACC,IACL,KAAO,CACL,IAAIC,GACHA,EAAelD,KAAKmB,QAAU,UAAY,EAAI+B,EAAaD,OAC9D,CACF,EAEF,SAAS/B,EAAUI,EAASC,GAC1B,GAAIlB,EAAU8C,KAAKC,eAAe7B,IAAWlB,EAAU8C,KAAKE,YAAY/B,EAAQgC,QAAQC,UAAW,CACjG,OAAOlD,EAAUmD,KAAKC,OAAOlC,EAC/B,CACA,OAAOA,EAAOmC,MAAQrD,EAAUmD,KAAKC,OAAOlC,EAAOoC,OAASpC,CAC9D,CACA,MAAMqC,EAAU,IAAI/C;;;;;;;IASpB,MAAMgD,EAAO,CACX,aAAMC,CAAQxC,GAASL,MACrBA,IAEA,IAAI8C,EACJ,IAAK9C,EAAO,CACV,MACF,CACAZ,EAAUwC,MAAMC,KAAKxB,EAAS,cAAc,IAAM0C,EAAa1C,EAAS2C,EAAUhD,MAClF,MAAM8B,GAAiBgB,EAAwBE,EAAUhD,GAAO0B,gBAAkB,KAAOoB,EAAwB,MACjH1D,EAAUwC,MAAMC,KAAKxB,EAAS,cAAc,IAAM4C,EAAYnB,KAC9D1C,EAAUwC,MAAMC,KAAKxB,EAAS,SAAS,IAAM4C,KAC/C,GAEF,IAAIC,EAAc,KAClB,SAASH,EAAa1C,EAASC,GAC7B,IAAI6C,EACJC,IACAF,EAAcnB,YAAW,IAAMsB,EAAYhD,EAASC,KAAU6C,EAAkB7C,EAAOgD,UAAY,KAAOH,EAAkB,EAC9H,CACA,SAASE,EAAYhD,EAASC,GAC5B8C,IACAT,EAAQvC,KAAKC,EAASC,EACxB,CACA,SAAS2C,EAAYnB,GACnBsB,IACAT,EAAQlC,KAAKqB,EACf,CACA,SAASsB,IACPG,aAAaL,EACf,CACA,SAASF,EAAUhD,GACjB,OAAOZ,EAAU8C,KAAKsB,WAAWxD,GAASA,IAAUA,CACtD,CAEAd,EAAQ0D,KAAOA,CAEhB,EA7GA,CA6GG7D,KAAKC,GAAGC,KAAKwE,WAAa1E,KAAKC,GAAGC,KAAKwE,YAAc,CAAC,EAAGzE,GAAGA,GAAGA,GAAG0E","ignoreList":[]}
|
||||
{"version":3,"file":"hint.bundle.map.js","names":["this","BX","Vue3","exports","ui_hint","main_core","main_popup","_","t","_t","_getText","babelHelpers","classPrivateFieldLooseKey","Tooltip","constructor","Object","defineProperty","value","_getText2","popup","cursorOnPopup","show","element","params","_params$popupOptions","_this$popup","hide","popupOptions","id","Date","now","bindElement","bindOptions","position","content","Tag","render","classPrivateFieldLooseBase","darkMode","autoHide","cacheable","animation","Popup","interactivity","getPopupContainer","Event","bind","isInteractive","setTimeout","close","_this$popup2","Type","isStringFilled","isUndefined","dataset","hintHtml","Text","encode","html","text","tooltip","handlersMap","WeakMap","hint","mounted","updateEvents","updated","beforeUnmount","unbindEvents","showTimeout","handlers","mouseenter","onMouseEnter","getParams","mouseleave","_getParams$interactiv","hideTooltip","click","set","entries","forEach","event","handler","_handlersMap$get","get","unbind","delete","_params$timeout","clearTimeouts","showTooltip","timeout","clearTimeout","isFunction","Directives","Main"],"sources":["hint.bundle.js"],"mappings":"AACAA,KAAKC,GAAKD,KAAKC,IAAM,CAAC,EACtBD,KAAKC,GAAGC,KAAOF,KAAKC,GAAGC,MAAQ,CAAC,GAC/B,SAAUC,EAAQC,EAAQC,EAAUC,GACpC,aAEA,IAAIC,EAAIC,GAAKA,EACXC,EACF,IAAIC,EAAwBC,aAAaC,0BAA0B,WACnE,MAAMC,EACJ,WAAAC,GACEC,OAAOC,eAAehB,KAAMU,EAAU,CACpCO,MAAOC,IAETlB,KAAKmB,MAAQ,KACbnB,KAAKoB,cAAgB,KACvB,CACA,IAAAC,CAAKC,EAASC,GACZ,IAAIC,EAAsBC,EAC1BzB,KAAK0B,KAAK,OACV,MAAMC,EAAe,CACnBC,GAAI,eAAeC,KAAKC,QACxBC,YAAaT,EACbU,YAAa,CACXC,SAAUV,EAAOU,WAAa,MAAQ,MAAQ,UAEhDC,QAAS7B,EAAU8B,IAAIC,OAAO3B,IAAOA,EAAKF,CAAC;oCACd;MAC7BI,aAAa0B,2BAA2BrC,KAAMU,GAAUA,GAAUY,EAASC,IAC3Ee,SAAU,KACVC,SAAU,KACVC,UAAW,MACXC,UAAW,aACNjB,EAAuBD,EAAOI,eAAiB,KAAOH,EAAuB,MAEpFxB,KAAKmB,MAAQ,IAAIb,EAAWoC,MAAMf,GAClC3B,KAAKmB,MAAME,OACX,GAAIE,EAAOoB,gBAAkBlB,EAAczB,KAAKmB,QAAU,MAAQM,EAAYmB,oBAAqB,CACjGvC,EAAUwC,MAAMC,KAAK9C,KAAKmB,MAAMyB,oBAAqB,cAAc,KACjE5C,KAAKoB,cAAgB,IAAI,IAE3Bf,EAAUwC,MAAMC,KAAK9C,KAAKmB,MAAMyB,oBAAqB,cAAc,KACjE5C,KAAKoB,cAAgB,MACrBpB,KAAK0B,KAAK,KAAK,GAEnB,CACF,CACA,IAAAA,CAAKqB,GACH,GAAIA,EAAe,CACjBC,YAAW,KACT,GAAIhD,KAAKmB,OAASnB,KAAKmB,MAAMyB,sBAAwB5C,KAAKoB,cAAe,CACvEpB,KAAKmB,MAAM8B,OACb,IACC,IACL,KAAO,CACL,IAAIC,GACHA,EAAelD,KAAKmB,QAAU,UAAY,EAAI+B,EAAaD,OAC9D,CACF,EAEF,SAAS/B,EAAUI,EAASC,GAC1B,GAAIlB,EAAU8C,KAAKC,eAAe7B,IAAWlB,EAAU8C,KAAKE,YAAY/B,EAAQgC,QAAQC,UAAW,CACjG,OAAOlD,EAAUmD,KAAKC,OAAOlC,EAC/B,CACA,OAAOA,EAAOmC,MAAQrD,EAAUmD,KAAKC,OAAOlC,EAAOoC,OAASpC,CAC9D,CACA,MAAMqC,EAAU,IAAI/C;;;;;;;IASpB,MAAMgD,EAAc,IAAIC,QACxB,MAAMC,EAAO,CACX,OAAAC,CAAQ1C,GAASL,MACfA,IAEAgD,EAAa3C,EAASL,EACxB,EACA,OAAAiD,CAAQ5C,GAASL,MACfA,IAEAgD,EAAa3C,EAASL,EACxB,EACA,aAAAkD,CAAc7C,GACZ8C,EAAa9C,EACf,GAEF,IAAI+C,EAAc,KAClB,SAASJ,EAAa3C,EAASC,GAC7B6C,EAAa9C,GACb,GAAIC,EAAQ,CACV,MAAM+C,EAAW,CACfC,WAAY,IAAMC,EAAalD,EAASmD,EAAUlD,IAClDmD,WAAY,KACV,IAAIC,EACJ,OAAOC,GAAaD,EAAwBF,EAAUlD,GAAQoB,gBAAkB,KAAOgC,EAAwB,MAAM,EAEvHE,MAAO,IAAMD,KAEff,EAAYiB,IAAIxD,EAASgD,GACzBvD,OAAOgE,QAAQT,GAAUU,SAAQ,EAAEC,EAAOC,KAAa7E,EAAUwC,MAAMC,KAAKxB,EAAS2D,EAAOC,IAC9F,CACF,CACA,SAASd,EAAa9C,GACpB,IAAI6D,EACJpE,OAAOgE,SAASI,EAAmBtB,EAAYuB,IAAI9D,KAAa,KAAO6D,EAAmB,CAAC,GAAGH,SAAQ,EAAEC,EAAOC,KAAa7E,EAAUwC,MAAMwC,OAAO/D,EAAS2D,EAAOC,KACnKrB,EAAYyB,OAAOhE,EACrB,CACA,SAASkD,EAAalD,EAASC,GAC7B,IAAIgE,EACJC,IACAnB,EAAcrB,YAAW,IAAMyC,EAAYnE,EAASC,KAAUgE,EAAkBhE,EAAOmE,UAAY,KAAOH,EAAkB,EAC9H,CACA,SAASE,EAAYnE,EAASC,GAC5BiE,IACA5B,EAAQvC,KAAKC,EAASC,EACxB,CACA,SAASqD,EAAY7B,GACnByC,IACA5B,EAAQlC,KAAKqB,EACf,CACA,SAASyC,IACPG,aAAatB,EACf,CACA,SAASI,EAAUxD,GACjB,OAAOZ,EAAU8C,KAAKyC,WAAW3E,GAASA,IAAUA,CACtD,CAEAd,EAAQ4D,KAAOA,CAEhB,EAnIA,CAmIG/D,KAAKC,GAAGC,KAAK2F,WAAa7F,KAAKC,GAAGC,KAAK2F,YAAc,CAAC,EAAG5F,GAAGA,GAAGA,GAAG6F","ignoreList":[]}
|
||||
@@ -1,11 +1,11 @@
|
||||
this.BX=this.BX||{};this.BX.Vue3=this.BX.Vue3||{};(function(e,t,i,n){"use strict";let o=e=>e,s;var u=babelHelpers.classPrivateFieldLooseKey("getText");class p{constructor(){Object.defineProperty(this,u,{value:r});this.popup=null;this.cursorOnPopup=false}show(e,t){var p,r;this.hide(false);const l={id:`bx-vue-hint-${Date.now()}`,bindElement:e,bindOptions:{position:t.position==="top"?"top":"bottom"},content:i.Tag.render(s||(s=o`
|
||||
this.BX=this.BX||{};this.BX.Vue3=this.BX.Vue3||{};(function(e,t,n,i){"use strict";let o=e=>e,s;var u=babelHelpers.classPrivateFieldLooseKey("getText");class p{constructor(){Object.defineProperty(this,u,{value:r});this.popup=null;this.cursorOnPopup=false}show(e,t){var p,r;this.hide(false);const l={id:`bx-vue-hint-${Date.now()}`,bindElement:e,bindOptions:{position:t.position==="top"?"top":"bottom"},content:n.Tag.render(s||(s=o`
|
||||
<span class='ui-hint-content'>${0}</span>
|
||||
`),babelHelpers.classPrivateFieldLooseBase(this,u)[u](e,t)),darkMode:true,autoHide:true,cacheable:false,animation:"fading",...(p=t.popupOptions)!=null?p:null};this.popup=new n.Popup(l);this.popup.show();if(t.interactivity&&(r=this.popup)!=null&&r.getPopupContainer()){i.Event.bind(this.popup.getPopupContainer(),"mouseenter",(()=>{this.cursorOnPopup=true}));i.Event.bind(this.popup.getPopupContainer(),"mouseleave",(()=>{this.cursorOnPopup=false;this.hide(true)}))}}hide(e){if(e){setTimeout((()=>{if(this.popup&&this.popup.getPopupContainer()&&!this.cursorOnPopup){this.popup.close()}}),100)}else{var t;(t=this.popup)==null?void 0:t.close()}}}function r(e,t){if(i.Type.isStringFilled(t)&&i.Type.isUndefined(e.dataset.hintHtml)){return i.Text.encode(t)}return t.html||i.Text.encode(t.text)||t}const l=new p;
|
||||
`),babelHelpers.classPrivateFieldLooseBase(this,u)[u](e,t)),darkMode:true,autoHide:true,cacheable:false,animation:"fading",...(p=t.popupOptions)!=null?p:null};this.popup=new i.Popup(l);this.popup.show();if(t.interactivity&&(r=this.popup)!=null&&r.getPopupContainer()){n.Event.bind(this.popup.getPopupContainer(),"mouseenter",(()=>{this.cursorOnPopup=true}));n.Event.bind(this.popup.getPopupContainer(),"mouseleave",(()=>{this.cursorOnPopup=false;this.hide(true)}))}}hide(e){if(e){setTimeout((()=>{if(this.popup&&this.popup.getPopupContainer()&&!this.cursorOnPopup){this.popup.close()}}),100)}else{var t;(t=this.popup)==null?void 0:t.close()}}}function r(e,t){if(n.Type.isStringFilled(t)&&n.Type.isUndefined(e.dataset.hintHtml)){return n.Text.encode(t)}return t.html||n.Text.encode(t.text)||t}const l=new p;
|
||||
/**
|
||||
* Hint Vue directive
|
||||
*
|
||||
* @package bitrix
|
||||
* @subpackage ui
|
||||
* @copyright 2001-2025 Bitrix
|
||||
*/const a={async mounted(e,{value:t}){var n;if(!t){return}i.Event.bind(e,"mouseenter",(()=>h(e,b(t))));const o=(n=b(t).interactivity)!=null?n:false;i.Event.bind(e,"mouseleave",(()=>v(o)));i.Event.bind(e,"click",(()=>v()))}};let c=null;function h(e,t){var i;f();c=setTimeout((()=>d(e,t)),(i=t.timeout)!=null?i:0)}function d(e,t){f();l.show(e,t)}function v(e){f();l.hide(e)}function f(){clearTimeout(c)}function b(e){return i.Type.isFunction(e)?e():e}e.hint=a})(this.BX.Vue3.Directives=this.BX.Vue3.Directives||{},BX,BX,BX.Main);
|
||||
*/const a=new WeakMap;const c={mounted(e,{value:t}){d(e,t)},updated(e,{value:t}){d(e,t)},beforeUnmount(e){f(e)}};let h=null;function d(e,t){f(e);if(t){const i={mouseenter:()=>v(e,B(t)),mouseleave:()=>{var e;return m((e=B(t).interactivity)!=null?e:false)},click:()=>m()};a.set(e,i);Object.entries(i).forEach((([t,i])=>n.Event.bind(e,t,i)))}}function f(e){var t;Object.entries((t=a.get(e))!=null?t:{}).forEach((([t,i])=>n.Event.unbind(e,t,i)));a.delete(e)}function v(e,t){var n;P();h=setTimeout((()=>b(e,t)),(n=t.timeout)!=null?n:0)}function b(e,t){P();l.show(e,t)}function m(e){P();l.hide(e)}function P(){clearTimeout(h)}function B(e){return n.Type.isFunction(e)?e():e}e.hint=c})(this.BX.Vue3.Directives=this.BX.Vue3.Directives||{},BX,BX,BX.Main);
|
||||
//# sourceMappingURL=hint.bundle.map.js
|
||||
@@ -22,23 +22,47 @@ import 'ui.hint';
|
||||
import { tooltip, type HintParams } from './tooltip';
|
||||
export type { HintParams };
|
||||
|
||||
export const hint = {
|
||||
async mounted(element: HTMLElement, { value }: { value: HintParams | Function }): Promise<void>
|
||||
{
|
||||
if (!value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
const handlersMap = new WeakMap();
|
||||
|
||||
Event.bind(element, 'mouseenter', () => onMouseEnter(element, getParams(value)));
|
||||
const isInteractive = getParams(value).interactivity ?? false;
|
||||
Event.bind(element, 'mouseleave', () => hideTooltip(isInteractive));
|
||||
Event.bind(element, 'click', () => hideTooltip());
|
||||
export const hint = {
|
||||
mounted(element: HTMLElement, { value }: { value: HintParams | Function }): void
|
||||
{
|
||||
updateEvents(element, value);
|
||||
},
|
||||
updated(element: HTMLElement, { value }: { value: HintParams | Function }): void
|
||||
{
|
||||
updateEvents(element, value);
|
||||
},
|
||||
beforeUnmount(element: HTMLElement): void
|
||||
{
|
||||
unbindEvents(element);
|
||||
},
|
||||
};
|
||||
|
||||
let showTimeout = null;
|
||||
|
||||
function updateEvents(element: HTMLElement, params: HintParams | Function): void
|
||||
{
|
||||
unbindEvents(element);
|
||||
if (params)
|
||||
{
|
||||
const handlers = {
|
||||
mouseenter: () => onMouseEnter(element, getParams(params)),
|
||||
mouseleave: () => hideTooltip(getParams(params).interactivity ?? false),
|
||||
click: () => hideTooltip(),
|
||||
};
|
||||
handlersMap.set(element, handlers);
|
||||
|
||||
Object.entries(handlers).forEach(([event, handler]) => Event.bind(element, event, handler));
|
||||
}
|
||||
}
|
||||
|
||||
function unbindEvents(element: HTMLElement): void
|
||||
{
|
||||
Object.entries(handlersMap.get(element) ?? {}).forEach(([event, handler]) => Event.unbind(element, event, handler));
|
||||
handlersMap.delete(element);
|
||||
}
|
||||
|
||||
function onMouseEnter(element: HTMLElement, params: HintParams): void
|
||||
{
|
||||
clearTimeouts();
|
||||
|
||||
Reference in New Issue
Block a user