@topvisor/ui 1.5.0-updates.13 → 1.5.0-updates.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/.chunks/{api-Ch3koOO6.amd.js → api-DK_roEwB.amd.js} +2 -2
  2. package/.chunks/{api-Ch3koOO6.amd.js.map → api-DK_roEwB.amd.js.map} +1 -1
  3. package/.chunks/{api-Ch3koOO6.esm.js → api-DK_roEwB.esm.js} +2 -2
  4. package/.chunks/{api-Ch3koOO6.esm.js.map → api-DK_roEwB.esm.js.map} +1 -1
  5. package/.chunks/{app-DeYDrjuR.amd.js → app-WS-dLO_O.amd.js} +2 -2
  6. package/.chunks/{app-DeYDrjuR.amd.js.map → app-WS-dLO_O.amd.js.map} +1 -1
  7. package/.chunks/{app-DeYDrjuR.esm.js → app-WS-dLO_O.esm.js} +6 -6
  8. package/.chunks/{app-DeYDrjuR.esm.js.map → app-WS-dLO_O.esm.js.map} +1 -1
  9. package/.chunks/{datepicker-hs1GgrEl.amd.js → datepicker-CwGtGmtQ.amd.js} +2 -2
  10. package/.chunks/{datepicker-hs1GgrEl.amd.js.map → datepicker-CwGtGmtQ.amd.js.map} +1 -1
  11. package/.chunks/{datepicker-hs1GgrEl.esm.js → datepicker-CwGtGmtQ.esm.js} +2 -2
  12. package/.chunks/{datepicker-hs1GgrEl.esm.js.map → datepicker-CwGtGmtQ.esm.js.map} +1 -1
  13. package/.chunks/{dialog-EVWLEYaz.amd.js → dialog-u7priEDC.amd.js} +2 -2
  14. package/.chunks/{dialog-EVWLEYaz.amd.js.map → dialog-u7priEDC.amd.js.map} +1 -1
  15. package/.chunks/{dialog-EVWLEYaz.esm.js → dialog-u7priEDC.esm.js} +4 -4
  16. package/.chunks/{dialog-EVWLEYaz.esm.js.map → dialog-u7priEDC.esm.js.map} +1 -1
  17. package/.chunks/{dialog_regionSelectorRegions-SkMDN_xf.amd.js → dialog_regionSelectorRegions-BPPmXsou.amd.js} +2 -2
  18. package/.chunks/{dialog_regionSelectorRegions-SkMDN_xf.amd.js.map → dialog_regionSelectorRegions-BPPmXsou.amd.js.map} +1 -1
  19. package/.chunks/{dialog_regionSelectorRegions-SkMDN_xf.esm.js → dialog_regionSelectorRegions-BPPmXsou.esm.js} +5 -5
  20. package/.chunks/{dialog_regionSelectorRegions-SkMDN_xf.esm.js.map → dialog_regionSelectorRegions-BPPmXsou.esm.js.map} +1 -1
  21. package/.chunks/{dialogs-CrQruKtB.amd.js → dialogs-5Iv6TOUc.amd.js} +2 -2
  22. package/.chunks/{dialogs-CrQruKtB.amd.js.map → dialogs-5Iv6TOUc.amd.js.map} +1 -1
  23. package/.chunks/{dialogs-CrQruKtB.esm.js → dialogs-5Iv6TOUc.esm.js} +3 -3
  24. package/.chunks/{dialogs-CrQruKtB.esm.js.map → dialogs-5Iv6TOUc.esm.js.map} +1 -1
  25. package/.chunks/{forms-CZB2EgYU.amd.js → forms-csoHwulS.amd.js} +2 -2
  26. package/.chunks/{forms-CZB2EgYU.amd.js.map → forms-csoHwulS.amd.js.map} +1 -1
  27. package/.chunks/{forms-CZB2EgYU.esm.js → forms-csoHwulS.esm.js} +5 -5
  28. package/.chunks/{forms-CZB2EgYU.esm.js.map → forms-csoHwulS.esm.js.map} +1 -1
  29. package/.chunks/{formsExt-BI1Yr4lK.amd.js → formsExt-Ddo0ZZ50.amd.js} +2 -2
  30. package/.chunks/{formsExt-BI1Yr4lK.amd.js.map → formsExt-Ddo0ZZ50.amd.js.map} +1 -1
  31. package/.chunks/{formsExt-BI1Yr4lK.esm.js → formsExt-Ddo0ZZ50.esm.js} +4 -4
  32. package/.chunks/{formsExt-BI1Yr4lK.esm.js.map → formsExt-Ddo0ZZ50.esm.js.map} +1 -1
  33. package/.chunks/{notice-BMqSpsM4.amd.js → notice-ePCY7-0k.amd.js} +2 -2
  34. package/.chunks/{notice-BMqSpsM4.amd.js.map → notice-ePCY7-0k.amd.js.map} +1 -1
  35. package/.chunks/{notice-BMqSpsM4.esm.js → notice-ePCY7-0k.esm.js} +2 -2
  36. package/.chunks/{notice-BMqSpsM4.esm.js.map → notice-ePCY7-0k.esm.js.map} +1 -1
  37. package/.chunks/popup-9vJsdcN_.amd.js +2 -0
  38. package/.chunks/popup-9vJsdcN_.amd.js.map +1 -0
  39. package/.chunks/{popup-DvXDsUIo.esm.js → popup-9vJsdcN_.esm.js} +4 -4
  40. package/.chunks/popup-9vJsdcN_.esm.js.map +1 -0
  41. package/.chunks/{popup-C9Gbdtry.amd.js → popup-DFWfNcYE.amd.js} +2 -2
  42. package/.chunks/popup-DFWfNcYE.amd.js.map +1 -0
  43. package/.chunks/{popup-C9Gbdtry.esm.js → popup-DFWfNcYE.esm.js} +8 -7
  44. package/.chunks/popup-DFWfNcYE.esm.js.map +1 -0
  45. package/.chunks/{utils-BJYweugT.amd.js → utils-B3nUkjNd.amd.js} +2 -2
  46. package/.chunks/{utils-BJYweugT.amd.js.map → utils-B3nUkjNd.amd.js.map} +1 -1
  47. package/.chunks/{utils-BJYweugT.esm.js → utils-B3nUkjNd.esm.js} +4 -4
  48. package/.chunks/{utils-BJYweugT.esm.js.map → utils-B3nUkjNd.esm.js.map} +1 -1
  49. package/.chunks/{utils-YS9-HaAi.amd.js → utils-Db8aFbJA.amd.js} +2 -2
  50. package/.chunks/{utils-YS9-HaAi.amd.js.map → utils-Db8aFbJA.amd.js.map} +1 -1
  51. package/.chunks/{utils-YS9-HaAi.esm.js → utils-Db8aFbJA.esm.js} +3 -3
  52. package/.chunks/{utils-YS9-HaAi.esm.js.map → utils-Db8aFbJA.esm.js.map} +1 -1
  53. package/.chunks/worker-Dr9iAw70.amd.js +2 -0
  54. package/.chunks/worker-Dr9iAw70.amd.js.map +1 -0
  55. package/.chunks/{worker-DpFg3xR3.esm.js → worker-Dr9iAw70.esm.js} +21 -3
  56. package/.chunks/worker-Dr9iAw70.esm.js.map +1 -0
  57. package/api/index.amd.js +1 -1
  58. package/api/index.amd.js.map +1 -1
  59. package/api/index.js +1 -1
  60. package/assets/project.css +1 -1
  61. package/autoload-css-manifest.amd.json +4 -4
  62. package/autoload-css-manifest.json +4 -4
  63. package/charts/charts.amd.js +1 -1
  64. package/charts/charts.amd.js.map +1 -1
  65. package/charts/charts.js +1 -1
  66. package/core/app.amd.js +1 -1
  67. package/core/app.amd.js.map +1 -1
  68. package/core/app.js +4 -4
  69. package/dialog/dialog.amd.js +1 -1
  70. package/dialog/dialog.amd.js.map +1 -1
  71. package/dialog/dialog.js +3 -3
  72. package/forms/forms.amd.js +1 -1
  73. package/forms/forms.amd.js.map +1 -1
  74. package/forms/forms.js +1 -1
  75. package/formsExt/formsExt.amd.js +1 -1
  76. package/formsExt/formsExt.amd.js.map +1 -1
  77. package/formsExt/formsExt.js +1 -1
  78. package/layout/layout.amd.js +1 -1
  79. package/layout/layout.amd.js.map +1 -1
  80. package/layout/layout.js +1 -1
  81. package/package.json +1 -1
  82. package/popup/popup.amd.js +1 -1
  83. package/popup/popup.amd.js.map +1 -1
  84. package/popup/popup.js +1 -1
  85. package/popup/worker.amd.js +1 -1
  86. package/popup/worker.amd.js.map +1 -1
  87. package/popup/worker.js +1 -1
  88. package/project/project.amd.js +1 -1
  89. package/project/project.amd.js.map +1 -1
  90. package/project/project.js +469 -491
  91. package/project/project.js.map +1 -1
  92. package/src/components/popup/lib/worker.d.ts +13 -1
  93. package/tabsView/tabsView.amd.js +1 -1
  94. package/tabsView/tabsView.amd.js.map +1 -1
  95. package/tabsView/tabsView.js +2 -2
  96. package/utils/clipboard.amd.js +1 -1
  97. package/utils/clipboard.amd.js.map +1 -1
  98. package/utils/clipboard.js +1 -1
  99. package/utils/date.amd.js +1 -1
  100. package/utils/date.amd.js.map +1 -1
  101. package/utils/date.js +1 -1
  102. package/utils/device.amd.js +1 -1
  103. package/utils/device.amd.js.map +1 -1
  104. package/utils/device.js +1 -1
  105. package/utils/lodash.amd.js +1 -1
  106. package/utils/lodash.amd.js.map +1 -1
  107. package/utils/lodash.js +1 -1
  108. package/utils/price.amd.js +1 -1
  109. package/utils/price.amd.js.map +1 -1
  110. package/utils/price.js +1 -1
  111. package/utils/searchers.amd.js +1 -1
  112. package/utils/searchers.amd.js.map +1 -1
  113. package/utils/searchers.js +1 -1
  114. package/utils/string.amd.js +1 -1
  115. package/utils/string.amd.js.map +1 -1
  116. package/utils/string.js +1 -1
  117. package/.chunks/popup-C9Gbdtry.amd.js.map +0 -1
  118. package/.chunks/popup-C9Gbdtry.esm.js.map +0 -1
  119. package/.chunks/popup-DvXDsUIo.amd.js +0 -2
  120. package/.chunks/popup-DvXDsUIo.amd.js.map +0 -1
  121. package/.chunks/popup-DvXDsUIo.esm.js.map +0 -1
  122. package/.chunks/worker-DpFg3xR3.amd.js +0 -2
  123. package/.chunks/worker-DpFg3xR3.amd.js.map +0 -1
  124. package/.chunks/worker-DpFg3xR3.esm.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-DpFg3xR3.esm.js","names":[],"sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управляет работой Popup\n *\n * Должен грузить TopLibPopup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/opener/types';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\n\t */\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\n}\n\nclass Worker {\n\n\t/**\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\n\t */\n\tstatic noClose = false;\n\n\t/**\n\t * Для взаимодействия с vue\n\t */\n\tstatic vueConnectors = new Map();\n\n\tstatic options: Options = {};\n\n\t/**\n\t * Вернуть объект компонента popup, привязанный к элементу\n\t */\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\n\t}\n\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\n\t}\n\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\n\t\tconst elOpener = Worker.getElPopupOpener(el);\n\t\tif (!elOpener) return null;\n\n\t\treturn DOM.storage(elOpener, '#TopPopup');\n\t}\n\n\t/**\n\t * Вернуть все элементы с Popup\n\t */\n\tstatic getAll(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Вернуть все элементы с открытыми Popup\n\t */\n\tstatic getAllVisible(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открыть Popup от указанного elOpener\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\n\t\tif (!(elOpener instanceof HTMLElement)) return;\n\n\t\tconst options: PopupOptions = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\toptions.id = elOpener.dataset.topPopupId;\n\n\t\t/**\n\t\t * @deprecated в php шаблонах нет data-top-popup-id\n\t\t */\n\t\tif (!options.id && options.popup) {\n\t\t\telOpener.dataset.topPopupId = btoa(\n\t\t\t\tString.fromCharCode(...new TextEncoder().encode(options.popup))\n\t\t\t);\n\n\t\t\toptions.id = elOpener.dataset.topPopupId;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPos) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupClass) {\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPosBy) {\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupOpenByHovertopPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param elOpener - элемент, вызвавший открытие Popup\n\t * @param options - опции Popup\n\t */\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { TopLibPopup } = await import('./popup');\n\n\t\tif (Core.$) {\n\t\t\tconst $elOpener = Core.$(elOpener);\n\n\t\t\t// deprecated, используется aftershow.top-menu-popup\n\t\t\tif ($elOpener.data('aftershow')) {\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\n\t\t\t\tif (typeof (afterShow) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\n\t\t\t}\n\n\t\t\t// deprecated, используется afterclose.top-menu-popup\n\t\t\tif ($elOpener.data('afterclose')) {\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\n\t\t\t\tif (typeof (afterclose) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\n\t\t\t}\n\t\t}\n\n\t\toptions.isFullScreen = Core.state.isMobile;\n\n\t\treturn new TopLibPopup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement, restoreFocus = false): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\n\t\tif (popup) {\n\t\t\tpopup.close();\n\n\t\t\tconst isFocused = popup.el.contains(document.activeElement);\n\n\t\t\tif (restoreFocus && !isFocused) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tpopup.el.focus();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Скролл к активному элементу списка\n\t */\n\tstatic scrollToActive(elPopup: HTMLElement): void {\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\n\t\tif (!elItemActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\n\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\n\n\t\tlet top = 100;\n\t\tfor (const elLi of elsLi) {\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\n\t\t}\n\n\t\tif (elUl instanceof HTMLElement) {\n\t\t\tconst heightWrapper = elUl.offsetHeight;\n\t\t\tif (top > heightWrapper) {\n\t\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t\t} else {\n\t\t\t\telUl.scrollTop = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorAfterOpen) {\n\t\t\tthis.options.decoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Зарегистрировать Vue компонент\n\t *\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\n\t */\n\tstatic regVueComponent(id: string, vueConnector: any): void {\n\t\tif (Worker.vueConnectors.get(id)) {\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\n\t\t}\n\n\t\tWorker.vueConnectors.set(id, vueConnector);\n\t}\n\n\t/**\n\t * Снять с регистрации Vue компонент\n\t */\n\tstatic unregVueComponent(id: string): void {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n\t/**\n\t * Сгенерировать элемент для открытия popup\n\t */\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\n\n\t\tel.dataset.topPopup = '#' + props.id;\n\n\t\t// if (props.pos === undefined) props.pos = '3';\n\t\t// if (props.notch === undefined) props.notch = true;\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\n\n\t\tfor (let name in props) {\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\n\n\t\t\tel.dataset[attrName] = props[name];\n\t\t}\n\n\t\tel.__TopPopupOpenerProps = props;\n\n\t\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"mappings":"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"}