@topvisor/ui 0.9.24 → 0.9.26-dev

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 (73) hide show
  1. package/.chunks/{datepicker-B28_yC8V.es.js → datepicker-BMrdz1zd.es.js} +2 -2
  2. package/.chunks/{datepicker-B28_yC8V.es.js.map → datepicker-BMrdz1zd.es.js.map} +1 -1
  3. package/.chunks/{datepicker-CDoo2d0x.amd.js → datepicker-C0rB8tdN.amd.js} +2 -2
  4. package/.chunks/{datepicker-CDoo2d0x.amd.js.map → datepicker-C0rB8tdN.amd.js.map} +1 -1
  5. package/.chunks/{forms-U97cW1zp.es.js → forms-C4UtO06K.es.js} +224 -224
  6. package/.chunks/forms-C4UtO06K.es.js.map +1 -0
  7. package/.chunks/forms-DujTMzoW.amd.js +3 -0
  8. package/.chunks/forms-DujTMzoW.amd.js.map +1 -0
  9. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-C_o5sC8m.es.js → listItem.vue_vue_type_script_setup_true_lang-CHYNz0kA.es.js} +2 -2
  10. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-C_o5sC8m.es.js.map → listItem.vue_vue_type_script_setup_true_lang-CHYNz0kA.es.js.map} +1 -1
  11. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-C67aHWhi.amd.js → listItem.vue_vue_type_script_setup_true_lang-Ob3185Bq.amd.js} +2 -2
  12. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-C67aHWhi.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-Ob3185Bq.amd.js.map} +1 -1
  13. package/.chunks/{popup-C1hmF9NI.es.js → popup-B2BoAirk.es.js} +127 -99
  14. package/.chunks/popup-B2BoAirk.es.js.map +1 -0
  15. package/.chunks/popup-CyJ0WBUB.amd.js +386 -0
  16. package/.chunks/popup-CyJ0WBUB.amd.js.map +1 -0
  17. package/.chunks/{widgetInput-DgylW6NK.amd.js → widgetInput-Ce8a61St.amd.js} +2 -2
  18. package/.chunks/widgetInput-Ce8a61St.amd.js.map +1 -0
  19. package/.chunks/{widgetInput-DmpYL1aA.es.js → widgetInput-pNYn7i5g.es.js} +2 -2
  20. package/.chunks/{widgetInput-DmpYL1aA.es.js.map → widgetInput-pNYn7i5g.es.js.map} +1 -1
  21. package/assets/forms.css +1 -1
  22. package/assets/formsExt.css +1 -1
  23. package/core/core.amd.js +1 -1
  24. package/core/core.js +1 -1
  25. package/forms/forms.amd.js +1 -1
  26. package/forms/forms.js +1 -1
  27. package/formsExt/formsExt.amd.js +1 -1
  28. package/formsExt/formsExt.amd.js.map +1 -1
  29. package/formsExt/formsExt.js +317 -301
  30. package/formsExt/formsExt.js.map +1 -1
  31. package/package.json +1 -1
  32. package/popup/popup.amd.js +1 -1
  33. package/popup/popup.js +2 -2
  34. package/popup/worker.amd.js +1 -1
  35. package/popup/worker.amd.js.map +1 -1
  36. package/popup/worker.js +60 -64
  37. package/popup/worker.js.map +1 -1
  38. package/src/components/forms/avatar/avatar.d.ts +9 -0
  39. package/src/components/forms/avatar/avatar.stories.d.ts +24 -0
  40. package/src/components/forms/avatar/avatar.vue.d.ts +12 -0
  41. package/src/components/formsExt/editArea/editArea.d.ts +16 -3
  42. package/src/components/formsExt/editArea/editArea.stories.d.ts +36 -20
  43. package/src/components/formsExt/editArea/editArea.vue.d.ts +12 -4
  44. package/src/components/formsExt/selector2/selector2.stories.d.ts +16 -16
  45. package/src/components/formsExt/selector2/selector2.vue.d.ts +8 -8
  46. package/src/components/popup/lib/popup.d.ts +40 -46
  47. package/src/components/popup/lib/popup.globalEvents.d.ts +2 -4
  48. package/src/components/popup/lib/worker.d.ts +24 -33
  49. package/src/components/popup/lib/worker.globalEvents.d.ts +1 -2
  50. package/src/components/popup/popup/popup.stories.d.ts +8 -8
  51. package/src/components/popup/worker.d.ts +2 -2
  52. package/src/core/utils/dom.d.ts +3 -3
  53. package/tabs/tabs.amd.js +1 -1
  54. package/tabs/tabs.js +1 -1
  55. package/tabsView/tabsView.amd.js +1 -1
  56. package/tabsView/tabsView.js +2 -2
  57. package/utils/date.amd.js +1 -1
  58. package/utils/date.js +1 -1
  59. package/utils/device.amd.js +1 -1
  60. package/utils/device.js +1 -1
  61. package/utils/dom.amd.js.map +1 -1
  62. package/utils/dom.js.map +1 -1
  63. package/utils/scroll.amd.js +1 -1
  64. package/utils/scroll.js +1 -1
  65. package/utils/window.amd.js +1 -1
  66. package/utils/window.js +1 -1
  67. package/.chunks/forms-DNRGCC9P.amd.js +0 -3
  68. package/.chunks/forms-DNRGCC9P.amd.js.map +0 -1
  69. package/.chunks/forms-U97cW1zp.es.js.map +0 -1
  70. package/.chunks/popup-C1hmF9NI.es.js.map +0 -1
  71. package/.chunks/popup-Cg-GRa9u.amd.js +0 -386
  72. package/.chunks/popup-Cg-GRa9u.amd.js.map +0 -1
  73. package/.chunks/widgetInput-DgylW6NK.amd.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sources":["../../src/components/popup/lib/worker.globalEvents.js","../../src/components/popup/lib/worker.js"],"sourcesContent":["import Core from '@/core/core/core';\nimport Events from '@/core/core/events';\nimport Worker from '@/components/popup/lib/worker';\n\n/**\n * Глобальные события, для реализации Popup\n */\nclass WorkerEvents {\n\tstatic init() {\n\t\t// автоматическое открытие при наведении мыши, событие глобальное, так как инициализация popup отложена\n\t\tdocument.addEventListener('mouseover', (e) => {\n\t\t\tif (!e.target.dataset?.topPopupOpenByHover) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\te.target.click();\n\t\t});\n\n\t\t// при скролле страницы убирать закрыть Popup\n\t\tdocument.addEventListener('scroll', () => {\n\t\t\tif (Core.state.isMobile || Core.state.isMobileUA) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tWorker.getAll().forEach(elPopup => Worker.close(elPopup));\n\t\t});\n\n\t\tEvents.addOnReize(e => {\n\t\t\t// закрыть popup при повороте экрана телефона\n\t\t\t// если была отображена ПК версия, она будет закрыта\n\t\t\tif (Core.state.isMobile && e.topEvent.widthDiff) {\n\t\t\t\tWorker.getAll().forEach(elPopup => Worker.close(elPopup));\n\t\t\t}\n\t\t});\n\n\t\tdocument.addEventListener('click', this.onclick);\n\t}\n\n\t/**\n\t * Глобальный обработчик кликов\n\t * обрабатывает клики на открытие Popup\n\t * @param {Event} e\n\t */\n\tstatic async onclick(e) {\n\t\tlet elOpener;\n\n\t\tswitch (true) {\n\t\t\tcase !!e.target.dataset?.topPopup:\n\t\t\t\telOpener = e.target;\n\n\t\t\t\tbreak;\n\n\t\t\tcase !!e.target.parentElement?.dataset.topPopup:\n\t\t\t\telOpener = e.target.parentElement;\n\n\t\t\t\tbreak;\n\n\t\t\tcase !!e.target.parentElement?.parentElement?.dataset.topPopup:\n\t\t\t\telOpener = e.target.parentElement.parentElement;\n\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (!elOpener) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// меню уже открыто\n\t\tif (elOpener.dataset.topPopupOpened) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tawait Worker.openByOpener(elOpener);\n\t}\n}\n\nexport default WorkerEvents;\n","import Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport GlobalEvents from '@/components/popup/lib/worker.globalEvents';\nimport { genHasScroll } from '@/core/utils/scroll';\n\nlet decoratorBeforeOpen;\nlet decoratorAfterOpen;\nlet decoratorIsIgnoreOuterClick;\nlet i18n = {\n\tClose: 'Close',\n};\n\nclass Worker {\n\n\t// глобальное выключение закрытия меню, используется при различных оверлеях\n\tstatic noClose = false;\n\n\tstatic vueConnectors = new Map();\n\n\t/**\n\t * Вызывается при инициализаци приложения\n\t * устанавливает глобальные статические декортаоры для компонента Popup\n\t * @param {{\n\t * \tdecoratorBeforeOpen: (object) => void\n\t * \tdecoratorAfterOpen: (object) => void,\n\t * \tdecoratorIsIgnoreOuterClick: (e) => void,\n\t * \ti18n: {Close: string}\n\t * }} options\n\t */\n\tstatic onInitApp(options) {\n\t\tdecoratorBeforeOpen = options?.decoratorBeforeOpen;\n\t\tdecoratorAfterOpen = options?.decoratorAfterOpen;\n\t\tdecoratorIsIgnoreOuterClick = options?.decoratorIsIgnoreOuterClick;\n\t\ti18n = options?.i18n;\n\t}\n\n\t// вернуть объект компонента popup, привязанный к элементу\n\tstatic getPopup(elPopup) {\n\t\treturn DOM.storage(elPopup, 'Popup');\n\t}\n\n\tstatic getAll() {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\tstatic getAllVisible() {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открть Popup от указанного elOpener\n\t * @param {Element} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener) {\n\t\tconst options = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch;\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;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal;\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param {Element} elOpener - элемент, вызвавший открытие Popup\n\t * @param {object} options - опции Popup\n\t */\n\tstatic async open(elOpener, options) {\n\t\telOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { default: Popup } = 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\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\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\t\toptions.i18n = i18n;\n\n\t\treturn await new Popup(elOpener, options);\n\t}\n\n\tstatic close(elPopup) {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup) {\n\t\t\tpopup.close();\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup) {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup) {\n\t\t\tpopup.recalcPosition();\n\n\t\t\t// контроль за состоянием тени скролла\n\t\t\t// вызывать после имзенения высоты скролла popup.elPopupBody\n\t\t\tgenHasScroll(popup.elPopupBody);\n\t\t}\n\t}\n\n\t// скролл к активному элементу списка\n\tstatic scrollToActive(elPopup) {\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\ttop += elLi.offsetHeight;\n\t\t}\n\n\t\tconst heightWrapper = elUl.offsetHeight;\n\t\tif (top > heightWrapper) {\n\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t} else {\n\t\t\telUl.scrollTop = 0;\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup) {\n\t\tif (decoratorBeforeOpen) {\n\t\t\tdecoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup) {\n\t\tif (decoratorAfterOpen) {\n\t\t\tdecoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - игнорировать клик, то есть не закрывать Popup\n\t */\n\tstatic decoratorIsIgnoreOuterClick(e) {\n\t\tif (decoratorIsIgnoreOuterClick) {\n\t\t\treturn 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 * @param {string} id\n\t * @param {any} vueConnector\n\t */\n\tstatic regVueComponent(id, vueConnector) {\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 * @param {string} id\n\t */\n\tstatic unregVueComponent(id) {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n}\n\nGlobalEvents.init(Worker, Core);\n\nexport default Worker;\n"],"names":["e","_a","Worker","elPopup","elOpener","_b","_d","_c","options","popup","elUl","elsLi","top","elLi","heightWrapper","id","vueConnector","GlobalEvents"],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sources":["../../src/components/popup/lib/worker.globalEvents.ts","../../src/components/popup/lib/worker.ts"],"sourcesContent":["import Core from '@/core/core/core';\nimport Events from '@/core/core/events';\nimport Worker from '@/components/popup/lib/worker';\n\n/**\n * Глобальные события, для реализации Popup\n */\nclass WorkerEvents {\n\tstatic init(): void {\n\t\t// автоматическое открытие при наведении мыши, событие глобальное, так как инициализация popup отложена\n\t\tdocument.addEventListener('mouseover', (e) => {\n\t\t\tif (!(e.target instanceof HTMLElement) || !e.target.dataset?.topPopupOpenByHover) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\te.target.click();\n\t\t});\n\n\t\t// при скролле страницы убирать закрыть Popup\n\t\tdocument.addEventListener('scroll', () => {\n\t\t\tif (Core.state.isMobile || Core.state.isMobileUA) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tWorker.getAll().forEach(elPopup => Worker.close(elPopup));\n\t\t});\n\n\t\tEvents.addOnReize(e => {\n\t\t\t// закрыть popup при повороте экрана телефона\n\t\t\t// если была отображена ПК версия, она будет закрыта\n\t\t\tif (Core.state.isMobile && e.topEvent.widthDiff) {\n\t\t\t\tWorker.getAll().forEach(elPopup => Worker.close(elPopup));\n\t\t\t}\n\t\t});\n\n\t\tdocument.addEventListener('click', this.onclick);\n\t}\n\n\t/**\n\t * Глобальный обработчик кликов\n\t * обрабатывает клики на открытие Popup\n\t */\n\tstatic async onclick(e: Event): Promise<void> {\n\t\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\tlet elOpener: HTMLElement | null | undefined;\n\n\t\tswitch (true) {\n\t\t\tcase !!e.target.dataset?.topPopup:\n\t\t\t\telOpener = e.target;\n\n\t\t\t\tbreak;\n\n\t\t\tcase !!e.target.parentElement?.dataset.topPopup:\n\t\t\t\telOpener = e.target.parentElement;\n\n\t\t\t\tbreak;\n\n\t\t\tcase !!e.target.parentElement?.parentElement?.dataset.topPopup:\n\t\t\t\telOpener = e.target.parentElement?.parentElement;\n\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (!elOpener) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// меню уже открыто\n\t\tif (elOpener.dataset.topPopupOpened) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tawait Worker.openByOpener(elOpener);\n\t}\n}\n\nexport default WorkerEvents;\n","import Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport GlobalEvents from '@/components/popup/lib/worker.globalEvents';\nimport { genHasScroll } from '@/core/utils/scroll';\nimport type { Popup, PopupOptions } from '@/components/popup/lib/popup';\n\nlet decoratorBeforeOpen: (arg0: Popup) => void;\nlet decoratorAfterOpen: (arg0: Popup) => void;\nlet decoratorIsIgnoreOuterClick: (arg0: Event) => boolean;\nlet i18n = {\n\tClose: 'Close',\n};\n\ninterface Options {\n\tdecoratorBeforeOpen: typeof decoratorBeforeOpen,\n\tdecoratorAfterOpen: typeof decoratorAfterOpen,\n\tdecoratorIsIgnoreOuterClick: typeof decoratorIsIgnoreOuterClick,\n\ti18n: typeof i18n\n}\n\nclass Worker {\n\n\t// глобальное выключение закрытия меню, используется при различных оверлеях\n\tstatic noClose = false;\n\n\tstatic vueConnectors = new Map();\n\n\t/**\n\t * Вызывается при инициализаци приложения\n\t * устанавливает глобальные статические декортаоры для компонента Popup\n\t */\n\tstatic onInitApp(options: Options): void {\n\t\tif (options) {\n\t\t\tdecoratorBeforeOpen = options.decoratorBeforeOpen;\n\t\t\tdecoratorAfterOpen = options.decoratorAfterOpen;\n\t\t\tdecoratorIsIgnoreOuterClick = options.decoratorIsIgnoreOuterClick;\n\t\t\ti18n = options.i18n;\n\t\t}\n\t}\n\n\t// вернуть объект компонента popup, привязанный к элементу\n\tstatic getPopup(elPopup: Element): Popup {\n\t\treturn DOM.storage(elPopup, 'Popup') as Popup;\n\t}\n\n\tstatic getAll(): Element[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\tstatic getAllVisible(): Element[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открть Popup от указанного elOpener\n\t * @param {Element} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: Element): Promise<Popup | 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\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\t// '1' - добалено для обратной совместимости\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// '1' - добалено для обратной совместимости\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// '1' - добалено для обратной совместимости\n\t\tif (elOpener.dataset.topPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t// '1' - добалено для обратной совместимости\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 {Element} elOpener - элемент, вызвавший открытие Popup\n\t * @param {object} options - опции Popup\n\t */\n\tstatic async open(elOpener: Element, options: PopupOptions): Promise<Popup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { default: Popup } = 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\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\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\t\toptions.i18n = i18n;\n\n\t\treturn new Popup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: Element): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup) {\n\t\t\tpopup.close();\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: Element): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\n\t\t\t// контроль за состоянием тени скролла\n\t\t\t// вызывать после имзенения высоты скролла popup.elPopupBody\n\t\t\tgenHasScroll(popup.elPopupBody);\n\t\t}\n\t}\n\n\t// скролл к активному элементу списка\n\tstatic scrollToActive(elPopup: Element): 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: Popup): void {\n\t\tif (decoratorBeforeOpen) {\n\t\t\tdecoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: Popup): void {\n\t\tif (decoratorAfterOpen) {\n\t\t\tdecoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - игнорировать клик, то есть не закрывать Popup\n\t */\n\tstatic decoratorIsIgnoreOuterClick(e: Event): boolean {\n\t\tif (decoratorIsIgnoreOuterClick) {\n\t\t\treturn 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}\n\nGlobalEvents.init();\n\nexport default Worker;\n"],"names":["_a","Worker","elPopup","elOpener","_b","_d","_c","_e","options","popup","elUl","elsLi","top","elLi","heightWrapper","e","id","vueConnector","GlobalEvents"],"mappings":"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"}
@@ -16,6 +16,10 @@ export interface Props {
16
16
  * Время в формате Y-m-d H:i:s, когда пользователь был онлайн
17
17
  */
18
18
  lastActiveTime?: string;
19
+ /**
20
+ * Объект со списком перевода Online и LastSeen
21
+ */
22
+ i18n?: I18n;
19
23
  }
20
24
  /**
21
25
  * Размеры аватара
@@ -27,3 +31,8 @@ export declare const sizes: {
27
31
  readonly 64: 64;
28
32
  };
29
33
  export type Size = typeof sizes[keyof typeof sizes];
34
+ type I18n = {
35
+ Online: string;
36
+ LastSeen: string;
37
+ };
38
+ export {};
@@ -24,6 +24,16 @@ declare const meta: {
24
24
  lastActiveTime: {
25
25
  type: import("vue").PropType<string>;
26
26
  };
27
+ i18n: {
28
+ type: import("vue").PropType<{
29
+ Online: string;
30
+ LastSeen: string;
31
+ }>;
32
+ default: () => {
33
+ Online: string;
34
+ LastSeen: string;
35
+ };
36
+ };
27
37
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
28
38
  image: {
29
39
  type: import("vue").PropType<string>;
@@ -42,8 +52,22 @@ declare const meta: {
42
52
  lastActiveTime: {
43
53
  type: import("vue").PropType<string>;
44
54
  };
55
+ i18n: {
56
+ type: import("vue").PropType<{
57
+ Online: string;
58
+ LastSeen: string;
59
+ }>;
60
+ default: () => {
61
+ Online: string;
62
+ LastSeen: string;
63
+ };
64
+ };
45
65
  }>>, {
46
66
  size: ComponentsConst.Size;
67
+ i18n: {
68
+ Online: string;
69
+ LastSeen: string;
70
+ };
47
71
  }, {}>;
48
72
  tags: string[];
49
73
  args: {
@@ -1,10 +1,22 @@
1
1
  import type { Props } from './avatar';
2
2
  declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
3
3
  size: number;
4
+ i18n: () => {
5
+ Online: string;
6
+ LastSeen: string;
7
+ };
4
8
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
5
9
  size: number;
10
+ i18n: () => {
11
+ Online: string;
12
+ LastSeen: string;
13
+ };
6
14
  }>>>, {
7
15
  size: import("./avatar").Size;
16
+ i18n: {
17
+ Online: string;
18
+ LastSeen: string;
19
+ };
8
20
  }, {}>;
9
21
  export default _default;
10
22
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -5,16 +5,29 @@ export interface Props extends TextareaProps {
5
5
  *
6
6
  * См. докуменатцию **Textarea**
7
7
  */
8
- modelValue: string;
8
+ defaultValue?: string;
9
9
  title?: string;
10
10
  cancelText?: string;
11
11
  submitText?: string;
12
+ closeText?: string;
13
+ /**
14
+ * Установить фокус на поле ввода при его появлении
15
+ */
16
+ isFocused?: boolean;
17
+ /**
18
+ * Показывать кнопку **Close** пока ничего не введено или не изменено
19
+ */
20
+ forceShowCloseBtn?: boolean;
12
21
  /**
13
22
  * Прикрепить к клавиатуре, прикрепляет форму к нижней части экрана
14
23
  */
15
24
  attachToKeyboard?: boolean;
16
25
  }
17
26
  export interface Emits {
18
- (e: 'update:modelValue', value: string): void;
19
- (e: 'cancel'): void;
27
+ (e: 'submit', value: string): void;
28
+ (e: 'close'): void;
29
+ /**
30
+ * Только если **attachToKeyboard = true**
31
+ */
32
+ (e: 'clickOnTitle'): void;
20
33
  }
@@ -20,6 +20,10 @@ declare const meta: {
20
20
  hint: {
21
21
  type: import("vue").PropType<string>;
22
22
  };
23
+ closeText: {
24
+ type: import("vue").PropType<string>;
25
+ default: string;
26
+ };
23
27
  readonly: {
24
28
  type: import("vue").PropType<boolean>;
25
29
  };
@@ -36,6 +40,10 @@ declare const meta: {
36
40
  type: import("vue").PropType<boolean>;
37
41
  default: boolean;
38
42
  };
43
+ defaultValue: {
44
+ type: import("vue").PropType<string>;
45
+ default: string;
46
+ };
39
47
  cancelText: {
40
48
  type: import("vue").PropType<string>;
41
49
  default: string;
@@ -44,12 +52,19 @@ declare const meta: {
44
52
  type: import("vue").PropType<string>;
45
53
  default: string;
46
54
  };
55
+ isFocused: {
56
+ type: import("vue").PropType<boolean>;
57
+ };
58
+ forceShowCloseBtn: {
59
+ type: import("vue").PropType<boolean>;
60
+ };
47
61
  attachToKeyboard: {
48
62
  type: import("vue").PropType<boolean>;
49
63
  };
50
64
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
51
- "update:modelValue": (value: string) => void;
52
- cancel: () => void;
65
+ submit: (value: string) => void;
66
+ close: () => void;
67
+ clickOnTitle: () => void;
53
68
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
54
69
  title: {
55
70
  type: import("vue").PropType<string>;
@@ -70,6 +85,10 @@ declare const meta: {
70
85
  hint: {
71
86
  type: import("vue").PropType<string>;
72
87
  };
88
+ closeText: {
89
+ type: import("vue").PropType<string>;
90
+ default: string;
91
+ };
73
92
  readonly: {
74
93
  type: import("vue").PropType<boolean>;
75
94
  };
@@ -86,6 +105,10 @@ declare const meta: {
86
105
  type: import("vue").PropType<boolean>;
87
106
  default: boolean;
88
107
  };
108
+ defaultValue: {
109
+ type: import("vue").PropType<string>;
110
+ default: string;
111
+ };
89
112
  cancelText: {
90
113
  type: import("vue").PropType<string>;
91
114
  default: string;
@@ -94,14 +117,23 @@ declare const meta: {
94
117
  type: import("vue").PropType<string>;
95
118
  default: string;
96
119
  };
120
+ isFocused: {
121
+ type: import("vue").PropType<boolean>;
122
+ };
123
+ forceShowCloseBtn: {
124
+ type: import("vue").PropType<boolean>;
125
+ };
97
126
  attachToKeyboard: {
98
127
  type: import("vue").PropType<boolean>;
99
128
  };
100
129
  }>> & {
101
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
102
- onCancel?: (() => any) | undefined;
130
+ onSubmit?: ((value: string) => any) | undefined;
131
+ onClose?: (() => any) | undefined;
132
+ onClickOnTitle?: (() => any) | undefined;
103
133
  }, {
134
+ closeText: string;
104
135
  expandable: boolean;
136
+ defaultValue: string;
105
137
  cancelText: string;
106
138
  submitText: string;
107
139
  }, {}>;
@@ -121,20 +153,4 @@ declare const meta: {
121
153
  type Story = StoryObj<typeof meta>;
122
154
  export declare const Playground: {};
123
155
  export declare const Overview: Story;
124
- export declare const Expandable: {
125
- args: {
126
- title: string;
127
- modelValue: string;
128
- expandable: true;
129
- attachToKeyboard: false;
130
- isError: false;
131
- };
132
- };
133
- export declare const MobileVersion: {
134
- args: {
135
- modelValue: string;
136
- attachToKeyboard: true;
137
- isError: false;
138
- };
139
- };
140
156
  export default meta;
@@ -1,20 +1,28 @@
1
1
  import type { Props } from './editArea';
2
2
  declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
3
+ defaultValue: string;
3
4
  cancelText: string;
4
5
  submitText: string;
6
+ closeText: string;
5
7
  expandable: boolean;
6
8
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
- "update:modelValue": (value: string) => void;
8
- cancel: () => void;
9
+ submit: (value: string) => void;
10
+ close: () => void;
11
+ clickOnTitle: () => void;
9
12
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
13
+ defaultValue: string;
10
14
  cancelText: string;
11
15
  submitText: string;
16
+ closeText: string;
12
17
  expandable: boolean;
13
18
  }>>> & {
14
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
15
- onCancel?: (() => any) | undefined;
19
+ onSubmit?: ((value: string) => any) | undefined;
20
+ onClose?: (() => any) | undefined;
21
+ onClickOnTitle?: (() => any) | undefined;
16
22
  }, {
23
+ closeText: string;
17
24
  expandable: boolean;
25
+ defaultValue: string;
18
26
  cancelText: string;
19
27
  submitText: string;
20
28
  }, {}>;
@@ -24,6 +24,10 @@ declare const meta: {
24
24
  type: import("vue").PropType<ComponentsConst.Item[]>;
25
25
  default: () => ComponentsConst.Item[];
26
26
  };
27
+ minLength: {
28
+ type: import("vue").PropType<number>;
29
+ default: number;
30
+ };
27
31
  apiRequest: {
28
32
  type: import("vue").PropType<{
29
33
  [propName: string]: any;
@@ -45,10 +49,6 @@ declare const meta: {
45
49
  multiselect: {
46
50
  type: import("vue").PropType<boolean>;
47
51
  };
48
- minLength: {
49
- type: import("vue").PropType<number>;
50
- default: number;
51
- };
52
52
  appendSearchToResult: {
53
53
  type: import("vue").PropType<boolean>;
54
54
  };
@@ -81,6 +81,10 @@ declare const meta: {
81
81
  type: import("vue").PropType<ComponentsConst.Item[]>;
82
82
  default: () => ComponentsConst.Item[];
83
83
  };
84
+ minLength: {
85
+ type: import("vue").PropType<number>;
86
+ default: number;
87
+ };
84
88
  apiRequest: {
85
89
  type: import("vue").PropType<{
86
90
  [propName: string]: any;
@@ -102,10 +106,6 @@ declare const meta: {
102
106
  multiselect: {
103
107
  type: import("vue").PropType<boolean>;
104
108
  };
105
- minLength: {
106
- type: import("vue").PropType<number>;
107
- default: number;
108
- };
109
109
  appendSearchToResult: {
110
110
  type: import("vue").PropType<boolean>;
111
111
  };
@@ -150,6 +150,10 @@ declare const meta: {
150
150
  type: import("vue").PropType<ComponentsConst.Item[]>;
151
151
  default: () => ComponentsConst.Item[];
152
152
  };
153
+ minLength: {
154
+ type: import("vue").PropType<number>;
155
+ default: number;
156
+ };
153
157
  apiRequest: {
154
158
  type: import("vue").PropType<{
155
159
  [propName: string]: any;
@@ -171,10 +175,6 @@ declare const meta: {
171
175
  multiselect: {
172
176
  type: import("vue").PropType<boolean>;
173
177
  };
174
- minLength: {
175
- type: import("vue").PropType<number>;
176
- default: number;
177
- };
178
178
  appendSearchToResult: {
179
179
  type: import("vue").PropType<boolean>;
180
180
  };
@@ -216,6 +216,10 @@ declare const meta: {
216
216
  type: import("vue").PropType<ComponentsConst.Item[]>;
217
217
  default: () => ComponentsConst.Item[];
218
218
  };
219
+ minLength: {
220
+ type: import("vue").PropType<number>;
221
+ default: number;
222
+ };
219
223
  apiRequest: {
220
224
  type: import("vue").PropType<{
221
225
  [propName: string]: any;
@@ -237,10 +241,6 @@ declare const meta: {
237
241
  multiselect: {
238
242
  type: import("vue").PropType<boolean>;
239
243
  };
240
- minLength: {
241
- type: import("vue").PropType<number>;
242
- default: number;
243
- };
244
244
  appendSearchToResult: {
245
245
  type: import("vue").PropType<boolean>;
246
246
  };
@@ -21,6 +21,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
21
21
  type: import("vue").PropType<Item[]>;
22
22
  default: () => Item[];
23
23
  };
24
+ minLength: {
25
+ type: import("vue").PropType<number>;
26
+ default: number;
27
+ };
24
28
  apiRequest: {
25
29
  type: import("vue").PropType<{
26
30
  [propName: string]: any;
@@ -42,10 +46,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
42
46
  multiselect: {
43
47
  type: import("vue").PropType<boolean>;
44
48
  };
45
- minLength: {
46
- type: import("vue").PropType<number>;
47
- default: number;
48
- };
49
49
  appendSearchToResult: {
50
50
  type: import("vue").PropType<boolean>;
51
51
  };
@@ -78,6 +78,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
78
78
  type: import("vue").PropType<Item[]>;
79
79
  default: () => Item[];
80
80
  };
81
+ minLength: {
82
+ type: import("vue").PropType<number>;
83
+ default: number;
84
+ };
81
85
  apiRequest: {
82
86
  type: import("vue").PropType<{
83
87
  [propName: string]: any;
@@ -99,10 +103,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
99
103
  multiselect: {
100
104
  type: import("vue").PropType<boolean>;
101
105
  };
102
- minLength: {
103
- type: import("vue").PropType<number>;
104
- default: number;
105
- };
106
106
  appendSearchToResult: {
107
107
  type: import("vue").PropType<boolean>;
108
108
  };
@@ -1,51 +1,47 @@
1
- export default Popup;
2
- /**
3
- * @property {Element} el - элемент, вызвавший открытие Popup
4
- * @property {Element} elPopup - Popup .top-popup-wrapper
5
- * @property {Element} elPopupInner - контентная часть Popup .top-popup
6
- * @property {Element} elPopupHeader
7
- * @property {Element} elPopupBody
8
- * @property {Element} elPopupFooter
9
- */
10
- declare class Popup extends Component {
11
- constructor(el: any, options: any);
12
- el: any;
13
- elActiveByDefault: any;
14
- elPopup: any;
15
- elPopupInner: any;
16
- elPopupHeader: any;
17
- elPopupWidget: any;
18
- elPopupBody: any;
19
- elPopupFooter: any;
20
- elFront: any;
21
- popupParent: any;
22
- $: any;
23
- elStartPosition: any;
1
+ /// <reference types="jquery" />
2
+ /// <reference types="jquery" />
3
+ /// <reference types="jqueryui" />
4
+ import Component from '../../component';
5
+ export interface PopupOptions {
6
+ popup?: string;
7
+ p?: number;
8
+ notch?: boolean;
9
+ class?: string;
10
+ posBy?: 'left' | 'right' | 'fixed' | Element;
11
+ frontSelector?: string;
12
+ invertX?: boolean;
13
+ openByHover?: boolean;
14
+ useOriginal?: boolean;
15
+ transitionDuration?: number;
16
+ isFullScreen?: boolean;
17
+ i18n?: {
18
+ Close?: string;
19
+ };
20
+ }
21
+ export declare class Popup extends Component {
22
+ static componentName: string;
23
+ el: Element;
24
+ elActiveByDefault: boolean | undefined;
25
+ elPopup: Element | undefined | null;
26
+ elPopupInner: Element | undefined;
27
+ elPopupHeader: Element | undefined | null;
28
+ elPopupWidget: Element | undefined | null;
29
+ elPopupBody: Element | undefined | null;
30
+ elPopupFooter: Element | undefined | null;
31
+ elFront: Element | undefined | null;
32
+ popupParent: Popup | undefined;
33
+ $: JQuery<Element> | undefined;
34
+ elStartPosition: Element | undefined | null;
24
35
  shift: {
25
36
  top: number;
26
37
  left: number;
27
38
  };
28
39
  isClosed: boolean;
29
40
  isFirstClick: boolean;
30
- type: any;
31
- options: {
32
- popup: string;
33
- p: number;
34
- notch: boolean;
35
- class: string;
36
- posBy: string;
37
- frontSelector: string;
38
- invertX: boolean;
39
- openByHover: boolean;
40
- useOriginal: boolean;
41
- transitionDuration: number;
42
- isFullScreen: boolean;
43
- /**
44
- * @type {}
45
- */
46
- i18n: any;
47
- };
41
+ type: string | undefined;
42
+ options: PopupOptions;
48
43
  events: {};
44
+ constructor(el: Element, options: PopupOptions);
49
45
  mount(): Promise<void>;
50
46
  mountJQuery(): Promise<void>;
51
47
  /**
@@ -55,28 +51,26 @@ declare class Popup extends Component {
55
51
  mountEvents(): void;
56
52
  /**
57
53
  * Обработка клика вне окна
58
- * @param {Event} e
59
54
  */
60
55
  onMousedown(e: Event): void;
61
56
  /**
62
57
  * Закрыть другие Popup при фокусе на элемент формы в текущем
63
- * @param {Event} e
64
58
  */
65
59
  onFocus(e: Event): void;
66
60
  /**
67
61
  * Закрыть Popup при отведении мыши
68
- * @param {Event} _e
69
62
  */
70
63
  onMouseleave(_e: Event): void;
71
64
  /**
72
65
  * Контроль положения Popup при fixed позиционировании
73
66
  */
74
67
  onResize(): void;
68
+ unmount(): void;
75
69
  recalcPosition(): void;
76
- onTouchmove(e: any): void;
70
+ onTouchmove(e: Event): void;
77
71
  close(): void;
78
72
  vueOpen(): Promise<void>;
79
73
  vueClose(): void;
80
74
  vueGetComponent(): any;
81
75
  }
82
- import Component from '../../component';
76
+ export default Popup;
@@ -1,4 +1,3 @@
1
- export default GlobalEvents;
2
1
  /**
3
2
  * Глобальные события, для реализации Popup
4
3
  * Автоматически инициируется при первой загрузке, не является выгружаемым модулем
@@ -10,12 +9,11 @@ declare class GlobalEvents {
10
9
  /**
11
10
  * Глобальный обработчик кликов
12
11
  * обрабатывает клики внутри Popup
13
- * @param {Event} e
14
12
  */
15
13
  static onclick(e: Event): void;
16
14
  /**
17
15
  * Глобальный обработчик нажатия кнопки на клавиатуре
18
- * @param {Event} e
19
16
  */
20
- static onkeydown(e: Event): any;
17
+ static onkeydown(e: KeyboardEvent): void;
21
18
  }
19
+ export default GlobalEvents;