@topvisor/ui 1.4.1-titleHTML.0 → 1.4.1-titleHTML.22
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.
- package/.chunks/core-BE_-rKvW.es.js +242 -0
- package/.chunks/core-BE_-rKvW.es.js.map +1 -0
- package/.chunks/core-DJS4o9Vt.amd.js +2 -0
- package/.chunks/core-DJS4o9Vt.amd.js.map +1 -0
- package/.chunks/{datepicker-D8SjLnKy.es.js → datepicker-C0jmLfiX.es.js} +2 -2
- package/.chunks/{datepicker-D8SjLnKy.es.js.map → datepicker-C0jmLfiX.es.js.map} +1 -1
- package/.chunks/{dialog_regionSelectorRegions-BVuXu3Hl.es.js → dialog_regionSelectorRegions-Btp9cfmF.es.js} +4 -4
- package/.chunks/{dialog_regionSelectorRegions-BVuXu3Hl.es.js.map → dialog_regionSelectorRegions-Btp9cfmF.es.js.map} +1 -1
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DlvY7Imv.es.js → dialogs.vue_vue_type_script_setup_true_lang-DMhcuiHP.es.js} +2 -2
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DlvY7Imv.es.js.map → dialogs.vue_vue_type_script_setup_true_lang-DMhcuiHP.es.js.map} +1 -1
- package/.chunks/{forms-Dz-wIQ-s.es.js → forms-BAUgA7Ct.es.js} +16 -16
- package/.chunks/{forms-Dz-wIQ-s.es.js.map → forms-BAUgA7Ct.es.js.map} +1 -1
- package/.chunks/{notice-B_txXVCr.es.js → notice-CGgc2m0q.es.js} +2 -2
- package/.chunks/{notice-B_txXVCr.es.js.map → notice-CGgc2m0q.es.js.map} +1 -1
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-BKQrX7yF.es.js → page.vue_vue_type_script_setup_true_lang-BMTt9SU8.es.js} +4 -4
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-BKQrX7yF.es.js.map → page.vue_vue_type_script_setup_true_lang-BMTt9SU8.es.js.map} +1 -1
- package/.chunks/{policy.vue_vue_type_style_index_0_lang-2tHXHN3e.es.js → policy.vue_vue_type_style_index_0_lang-LkyBILW6.es.js} +4 -4
- package/.chunks/{policy.vue_vue_type_style_index_0_lang-2tHXHN3e.es.js.map → policy.vue_vue_type_style_index_0_lang-LkyBILW6.es.js.map} +1 -1
- package/.chunks/{popup-DiKBvdXr.es.js → popup-CVHDbG9h.es.js} +2 -2
- package/.chunks/{popup-DiKBvdXr.es.js.map → popup-CVHDbG9h.es.js.map} +1 -1
- package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-DkmYKxyr.es.js → popupHint.vue_vue_type_style_index_0_lang-BIWw5zUX.es.js} +2 -2
- package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-DkmYKxyr.es.js.map → popupHint.vue_vue_type_style_index_0_lang-BIWw5zUX.es.js.map} +1 -1
- package/.chunks/{utils-CVP195Ai.es.js → utils-BYaZxGC1.es.js} +2 -2
- package/.chunks/{utils-CVP195Ai.es.js.map → utils-BYaZxGC1.es.js.map} +1 -1
- package/.chunks/{utils-B_WbEbrB.es.js → utils-DG_W0xvD.es.js} +3 -3
- package/.chunks/{utils-B_WbEbrB.es.js.map → utils-DG_W0xvD.es.js.map} +1 -1
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CCV8nSim.es.js → widgetInput.vue_vue_type_script_setup_true_lang-Brs-RxDI.es.js} +2 -2
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CCV8nSim.es.js.map → widgetInput.vue_vue_type_script_setup_true_lang-Brs-RxDI.es.js.map} +1 -1
- package/charts/charts.js +1 -1
- package/core/app.amd.js +1 -1
- package/core/app.js +5 -5
- package/dialog/dialog.js +2 -2
- package/forms/forms.js +3 -3
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +68 -60
- package/formsExt/formsExt.js.map +1 -1
- package/icomoon/Topvisor icons.json +6658 -0
- package/icomoon/demo.html +15 -1
- package/icomoon/fonts/Topvisor-2.eot +0 -0
- package/icomoon/fonts/Topvisor-2.svg +1 -0
- package/icomoon/fonts/Topvisor-2.ttf +0 -0
- package/icomoon/fonts/Topvisor-2.woff +0 -0
- package/icomoon/selection.json +1 -1
- package/icomoon/style.css +8 -5
- package/layout/layout.js +1 -1
- package/package.json +1 -1
- package/popup/popup.js +4 -4
- package/popup/worker.js +2 -2
- package/project/project.amd.js +1 -1
- package/project/project.js +22 -22
- package/src/components/formsExt/editInput/editInput.vue.d.ts +16 -1
- package/src/core/directives/shortcut.d.ts +12 -0
- package/tabsView/tabsView.js +2 -2
- package/utils/clipboard.js +1 -1
- package/utils/date.js +1 -1
- package/utils/device.js +1 -1
- package/utils/lodash.js +1 -1
- package/utils/price.js +1 -1
- package/utils/searchers.amd.js +1 -1
- package/utils/searchers.js +3 -3
- package/utils/string.js +1 -1
- package/web-types.json +31 -0
- package/.chunks/core-B-mZaxOL.amd.js +0 -2
- package/.chunks/core-B-mZaxOL.amd.js.map +0 -1
- package/.chunks/core-BNsYbDEi.es.js +0 -196
- package/.chunks/core-BNsYbDEi.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-B_WbEbrB.es.js","sources":["../../src/storybook/jquery.ts","../../src/components/dialog/lib/utils.globalEvents.ts","../../src/components/dialog/lib/utils.ts"],"sourcesContent":["/**\n * см. /.storybook/preview-head.html\n */\nexport default $;\n","import { TopDialogUtils } from './utils';\nimport { TopDialogWorker } from './worker';\nimport { isVisible, querySelectorAllArray, querySelectorVisible } from '@/core/utils/dom';\nimport { historySetState } from '@/core/utils/route';\nimport type { ElTopDialog, ElTopDialogWrapper } from '@/components/dialog/lib/types';\n\nlet inited = false;\n\n/**\n * Инициализация глобальных событий для диалоговых окон\n *\n * Производится один раз при подключении диалогового окна\n *\n * События не размонтируются\n */\nexport const initDialogGlobalEvents = () => {\n\tif (inited) return;\n\tinited = true;\n\n\t/**\n\t * Закрытие диалога по Esc\n\t */\n\tdocument.addEventListener('keydown', (e) => {\n\t\tif (e.key !== 'Escape') return;\n\t\tif (!e.target || !(e.target instanceof HTMLElement)) return;\n\n\t\tconst el = e.target;\n\n\t\t// событие произошло вне диалогового окна\n\t\tif (!el.closest('.ui-dialog')) return;\n\n\t\tif (el.contentEditable === 'true' || el.contentEditable === 'plaintext-only') return;\n\n\t\t// не закрывать окно при открытом TopPopup\n\t\tif (querySelectorVisible(document.documentElement, '.top-popup-wrapper')) return;\n\n\t\t// не закрывать окно при работе с jquery autocomplete\n\t\tif (el.classList.contains('autocomplete')) return;\n\n\t\t// не закрывать окно при открытом fancybox\n\t\tif (querySelectorVisible(document.documentElement, '.fancybox-container')) return;\n\n\t\tconst elDialogs = querySelectorAllArray<ElTopDialog>(document, '.ui-dialog-content').filter((elDialog) => {\n\t\t\treturn isVisible(elDialog);\n\t\t});\n\n\t\t$(elDialogs[elDialogs.length - 1]).dialog('close');\n\t});\n\n\t/**\n\t * Закрытие диалога по кнопке закрыть\n\t */\n\tdocument.addEventListener('click', (e) => {\n\t\t// // навигация без истории\n\t\t// var $dialog = $(this).closest('.ui-dialog-content');\n\t\t// var viewName = $dialog.attr('id');\n\t\t// var pageName = getHash('view-' + viewName);\n\t\t// if (!pageName) {\n\t\t// \ttoPrevPage($dialog);\n\t\t//\n\t\t// \treturn;\n\t\t// }\n\t\t//\n\t\t// // навигация по истории\n\t\t// if (Core.state.isMobile && history.length > 1 && $(this).closest('.modal-layer').length) {\n\t\t// \tvar href = location.href;\n\t\t//\n\t\t// \thistory.go(-1);\n\t\t//\n\t\t// \tsetTimeout(() => {\n\t\t// \t\t// это первая страница в истории вкладки браузера\n\t\t// \t\tif (href === location.href) $(e.target).closest('.ui-dialog-content').dialog('close');\n\t\t// \t});\n\t\t// } else {\n\t\t// \t$(this).closest('.ui-dialog-content').dialog('close');\n\t\t// }\n\n\t\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\tconst el = e.target.closest('[data-action=\"top-dialog-close\"]') as HTMLElement | null;\n\t\tif (!el) return;\n\n\t\te.preventDefault();\n\n\t\tconst elDialog = el.closest<ElTopDialog>('.ui-dialog-content');\n\t\tif (!elDialog) return;\n\n\t\t// если к кнопке привязана ссылка, диалоговое окно не нужно закрывать\n\t\tconst toView = el.dataset.toView;\n\n\t\tif (toView == 'toPrevPage()') {\n\t\t\tTopDialogUtils.toPrevPage(elDialog);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (toView) {\n\t\t\tconst viewNameAndPageLink = toView.split('-');\n\t\t\tconst viewName = viewNameAndPageLink.shift();\n\t\t\tconst pageLink = viewNameAndPageLink.join('-');\n\n\t\t\tif (!viewName) return;\n\n\t\t\tconst elDialog = TopDialogUtils.getElDialogById(viewName);\n\t\t\tif (!elDialog) return;\n\n\t\t\tconst elToPages = querySelectorAllArray(elDialog, `[data-view-page=\"${pageLink}\"]`);\n\t\t\tif (!elToPages) return;\n\n\t\t\tif (!isVisible(elToPages[0])) {\n\t\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, 'prev');\n\n\t\t\t\t// // не убирает кнопку \"Вперед\" в браузере\n\t\t\t\t// history.replaceState(null, '', hash);\n\t\t\t\t// toViewDirty(toView, 'prev');\n\n\t\t\t\t// // добавляет текущую страницу в историю браузера\n\t\t\t\thistorySetState(false, hash);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst $dialog = $(elDialog);\n\n\t\t$dialog.dialog('close');\n\t});\n\n\t/**\n\t * Все submit должны обрабатываться через js\n\t */\n\tdocument.addEventListener('submit', (e) => {\n\t\tconst elForm = e.target as HTMLElement;\n\n\t\tif (elForm.matches('.modal-body > form') || elForm.matches('.modal-layer-body > form')) {\n\t\t\te.preventDefault();\n\t\t}\n\t});\n\n\t/**\n\t * Выполнение действия по нажатию Enter\n\t *\n\t * @todo Убрать `.searcher`\n\t */\n\tdocument.addEventListener('keypress', (e) => {\n\t\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\tconst eventTarget = e.target;\n\n\t\tconst elModalBody = eventTarget.closest('.ui-dialog .modal-body');\n\t\tif (!elModalBody) return;\n\n\t\tconst isInput =\n\t\t\teventTarget.matches('input:not(.searcher), textarea:not(.searcher), select:not(.searcher), button:not(.searcher)')\n\t\t\t|| eventTarget.hasAttribute('contenteditable');\n\t\tif (!isInput) return;\n\n\t\t// if (e.keyCode !== 10 && e.key !== 'ENTER') return;\n\t\tif (e.key !== 'Enter') return;\n\n\t\t// не выполнять submit действий при работе с jquery autocomplete\n\t\tif (eventTarget.classList.contains('autocomplete')) {\n\t\t\te.preventDefault();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventTarget.tagName === 'TEXTAREA') {\n\t\t\tif (!e.ctrlKey && !e.metaKey) return;\n\n\t\t\tconst elForm = eventTarget.closest('form');\n\n\t\t\tif (elForm) {\n\t\t\t\t// Find visible submit buttons\n\t\t\t\tconst elSubmitButton = querySelectorAllArray(elForm, 'button[type=\"submit\"]')\n\t\t\t\t\t.concat(querySelectorAllArray(elForm, 'input[type=\"submit\"]'))\n\t\t\t\t\t.find((elSubmitButton) => {\n\t\t\t\t\t\treturn isVisible(elSubmitButton);\n\t\t\t\t\t});\n\n\t\t\t\telSubmitButton?.click();\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Закрытие диалога по клику вне окна\n\t */\n\tdocument.addEventListener('click', function (event) {\n\t\tif (!(event.target instanceof HTMLElement)) return;\n\n\t\tconst eventTarget = event.target;\n\n\t\tif (!eventTarget.classList.contains('ui-widget-overlay')) return;\n\n\t\tlet elDialogWrapperWithTopZIndex: ElTopDialogWrapper | undefined;\n\t\tlet topZIndex = 0;\n\n\t\tconst elDialogWrapperVisibles = querySelectorAllArray<ElTopDialogWrapper>(document, '.ui-dialog').filter((elDialogWrapper) => {\n\t\t\treturn isVisible(elDialogWrapper);\n\t\t});\n\n\t\telDialogWrapperVisibles.forEach((elDialogWrapper) => {\n\t\t\tconst zIndex = Number(window.getComputedStyle(elDialogWrapper).zIndex);\n\t\t\tif (zIndex < topZIndex) return;\n\n\t\t\telDialogWrapperWithTopZIndex = elDialogWrapper;\n\t\t\ttopZIndex = zIndex;\n\t\t});\n\n\t\tif (elDialogWrapperWithTopZIndex) {\n\t\t\tconst elDialog = elDialogWrapperWithTopZIndex.querySelector('.ui-dialog-content');\n\n\t\t\t$(elDialog).dialog('close');\n\t\t}\n\t});\n\n\twindow.addEventListener('resize', TopDialogUtils.recalcPositions);\n\tTopDialogUtils.recalcPositions();\n};\n","import 'jquery';\nimport { nextTick } from 'vue';\n\nimport Core from '@/core/core/core';\nimport { TopPopupWorker } from '@/components/popup/worker';\nimport { sleep, waitWhile } from '@/core/utils/system';\nimport { setHashs } from '@/core/utils/route';\nimport { connectScrollShadow } from '@/core/utils/scroll';\n\nimport type { ElTopDialog, ElTopDialogBody, ElTopDialogModalLayer, ElTopDialogPage, ElTopDialogWrapper, MoveDirection } from './types';\nimport { TopDialogWorker } from './worker';\nimport { initDialogGlobalEvents } from './utils.globalEvents';\nimport { getDialogWorker } from '../dialog/dialogs/dialogs.vue';\n\nimport css from '../dialog/style/dialog.css?inline';\nimport cssM from '../dialog/style/dialog.m.css?inline';\nimport cssPC from '../dialog/style/dialog.pc.css?inline';\nimport cssModern from '../dialog/style/modern/dialog.css?inline';\nimport cssModernPC from '../dialog/style/modern/dialog.pc.css?inline';\nimport { isVisible, querySelectorAllArray } from '@/core/utils/dom';\n\nCore.insertStyleToPage(css);\nCore.insertStyleToPage(cssM, 'm');\nCore.insertStyleToPage(cssPC, 'pc');\nCore.insertStyleToPage(cssModern);\nCore.insertStyleToPage(cssModernPC, 'pc');\n\nlet timerClearAnimation: NodeJS.Timeout;\nlet isInited = false;\n\n/**\n * Является ли элемент JQuery<HTMLElement>\n */\nconst isElJQuery = (el: JQuery<HTMLElement> | HTMLElement | HTMLElement[]) => {\n\treturn !!el && typeof el === 'object' && 'jquery' in el;\n};\n\nconst init = () => {\n\t$.extend($.ui.dialog.prototype.options, {\n\t\tfocus: (e: any) => {\n\t\t\te.target.focus();\n\n\t\t\t$('[autofocus]', e.target)[0]?.focus();\n\n\t\t\t// setTimeout(function () {\n\t\t\t// \tif ($('[autofocus]', e.target).length) return;\n\t\t\t// \t$('.modal-footer button:first, .modal-body :input:first', e.target).eq(0).focus();\n\t\t\t//\n\t\t\t// \t// fix пропадающего autocomplete при нажатии на scroll в autocomplete\n\t\t\t// \t$(e.target).add($(e.target).closest('.ui-dialog')).removeAttr('tabindex');\n\t\t\t// });\n\t\t},\n\t\tcreate: (e: any) => onCreate(e.target),\n\t\topen: (e: any) => onOpen(e.target),\n\t\tclose: (e: any) => onClose(e.target),\n\t\tmodal: true,\n\t\tresizable: false,\n\t\tcloseOnEscape: false,\n\t\twidth: 'auto',\n\t\tminHeight: 0,\n\t});\n\n\t$.ui.dialog.prototype._focusTabbable = $.noop;\n\n\t$.ui.dialog.prototype._moveToTopOriginal = $.ui.dialog.prototype._moveToTop;\n\t$.ui.dialog.prototype._moveToTop = function () {\n\t\tthis._moveToTopOriginal();\n\n\t\tconst $dialog = $(this.element);\n\t\t$dialog.trigger('dialogsMoveToTop', [$dialog]);\n\t};\n\n\tinitDialogGlobalEvents();\n\n\tisInited = true;\n};\n\n/**\n * Получить настройки диалогового окна из Vue компонента\n */\nconst genVueOptions = (elDialog: ElTopDialog) => {\n\tconst options: {\n\t\tmodal?: boolean,\n\t\tposition?: any,\n\t} = {};\n\n\tif (elDialog.dataset?.modal === 'false') options.modal = false;\n\tif (elDialog.dataset?.position) options.position = JSON.parse(elDialog.dataset.position);\n\n\treturn options;\n};\n\nconst getElDialogById = (id: string) => {\n\treturn <ElTopDialog | null>document.getElementById(id);\n};\n\n/**\n * Сменить состояние диалогового окна Vue\n */\nconst updatePageVue = async (dialogId: string, pageName?: string, pageNameNext?: string) => {\n\tif (!dialogId.startsWith('dialog_')) return;\n\n\tconst dialog = getDialogWorker(dialogId);\n\tif (!dialog) return;\n\n\tdialog.isOpened.value = true;\n\tif (pageName !== undefined) dialog.pageActive.value = pageName;\n\tif (pageNameNext !== undefined) dialog.pageActiveNext.value = pageNameNext;\n\n\tawait nextTick();\n\n\tif (pageNameNext) {\n\t\tconst elDialog = getElDialogById(dialogId);\n\t\tif (!elDialog) return;\n\n\t\tconst elNextpages = elDialog.querySelectorAll(`[data-view-page=\"${pageNameNext}\"]`);\n\n\t\tif (!elNextpages.length) {\n\t\t\tawait waitWhile(() => !elDialog.querySelectorAll(`[data-view-page=\"${pageNameNext}\"]`).length);\n\t\t}\n\t}\n};\n\n/**\n * Callback for jQuery dialog onCreate\n */\nconst onCreate = (elDialog: ElTopDialog) => {\n\tconst elDialogBody = elDialog.querySelector<ElTopDialogBody>('.modal-body');\n\tif (!elDialogBody) return;\n\n\tconnectScrollShadow(elDialogBody);\n\n\tTopDialogWorker.state.decoratorOnCreate?.(elDialog);\n\n\tinitPopup(elDialog);\n};\n\n/**\n * Инициирование событий TopPopup в диалоговом окне\n */\nconst initPopup = (elDialog: HTMLElement) => {\n\t$(elDialog).on('aftershow.top-menu-popup', '[data-top-popup]', (_e, $popup) => {\n\t\t// перенести popup в корневой элемент страницы диалогового окна\n\t\tconst elPopup = $popup[0];\n\n\t\t// перенести popup в корневой элемент страницы диалогового окна\n\t\tconst elPageContents = TopDialogWorker.getPairPage(elPopup);\n\t\telPageContents?.[1]?.prepend(elPopup);\n\t});\n};\n\n/**\n * Callback for jQuery dialog onOpen\n */\nconst onOpen = async (elDialog: ElTopDialog) => {\n\tconst pageName = elDialog.dataset.viewPageActive;\n\n\tconst w1 = window.innerWidth;\n\n\tCore.state.documentClassModificators.set('top-dialog', 'with_dialog');\n\n\tconst w2 = window.innerWidth;\n\n\tconst scrollBarWidth = w2 - w1;\n\tif (document.documentElement.scrollHeight > window.innerHeight) document.querySelector('html')!.style.marginRight = scrollBarWidth + 'px';\n\n\trecalcPositions();\n\n\tconst dialog = getDialogWorker(elDialog.getAttribute('id')!);\n\tdialog?.emit?.('open', pageName);\n};\n\n/**\n * Callback for jQuery dialog onClose\n */\nconst onClose = async (elDialog: ElTopDialog) => {\n\tconst viewName = elDialog.getAttribute('id');\n\tconst pageName = elDialog.dataset.viewPageActive;\n\n\tif (pageName) {\n\t\tconst hashData = {\n\t\t\tvpn: TopDialogWorker.state.viewPageN as number | null,\n\t\t\t['view-' + viewName]: null,\n\t\t};\n\t\thashData['view-' + viewName] = null;\n\n\t\tif (TopDialogWorker.state.viewPageN === 0 || TopDialogWorker.state.viewPageN === 1) {\n\t\t\thashData.vpn = null;\n\t\t}\n\n\t\tsetHashs(hashData, false);\n\t}\n\n\tconst elUiWidgetOverlayVisibles = querySelectorAllArray(document, '.ui-widget-overlay').filter((el) => {\n\t\treturn isVisible(el);\n\t});\n\n\tif (!elUiWidgetOverlayVisibles.length) {\n\t\tCore.state.documentClassModificators.delete('top-dialog');\n\n\t\tdocument.querySelector('html')!.style.marginRight = '';\n\t}\n\n\t$(elDialog).trigger('viewAfterClose', [$(elDialog)]);\n\n\tconst dialog = getDialogWorker(viewName);\n\n\tif (dialog) {\n\t\tdialog.isOpened.value = false;\n\t\tdialog.emit?.('close', pageName);\n\n\t\tif (dialog.onCloseOnce) {\n\t\t\tdialog.onCloseOnce(dialog.props, pageName);\n\t\t\tdialog.onCloseOnce = undefined;\n\t\t}\n\t}\n\n\t// после закрытия диалога может потребоваться пересчет позиций элементов\n\twindow.dispatchEvent(new Event('resize'));\n};\n\n/**\n * Пересчитать положения и размеры открытых диалоговых окон\n */\nconst recalcPositions = () => {\n\tconst elDialogVisibilityes = querySelectorAllArray(document, '.ui-dialog').filter((el) => {\n\t\treturn isVisible(el) && el.querySelector<ElTopDialog>(':scope > .ui-dialog-content');\n\t}).map((el) => {\n\t\treturn el.querySelector<ElTopDialog>(':scope > .ui-dialog-content')!;\n\t});\n\n\telDialogVisibilityes.forEach((elDialog) => {\n\t\tconst elDialogBody = elDialog.querySelector<ElTopDialogBody>('.modal-body');\n\t\tif (!elDialogBody) return;\n\n\t\tconst elDialogWrapper = elDialog.closest('.ui-dialog');\n\n\t\tconst options = genVueOptions(elDialog);\n\n\t\toptions.position ??= { of: window };\n\n\t\tconst $dialog = $(elDialog);\n\t\t$dialog.dialog('option', options);\n\n\t\telDialogWrapper.classList.remove('me-tightly');\n\t\tif ((elDialogWrapper.clientHeight ?? 0) > window.innerHeight) elDialogWrapper.classList.add('me-tightly');\n\t});\n};\n\n/**\n * Переход к view page по неразобранной ссылке в формате: {viewName}-{pageName}[:args]\n */\nconst toViewDirty = async (toViewPageName: string, moveDirection?: MoveDirection) => {\n\tconst regexp = /(\\w+)[=-]([\\w-]+)(?::([\\w.:-]+))?/g;\n\tconst toViewParts = regexp.exec(toViewPageName);\n\tif (toViewParts) {\n\t\tconst viewName = toViewParts[1];\n\t\tconst pageName = toViewParts[2];\n\t\tconst argsString = toViewParts[3];\n\n\t\tlet args: string[] = [];\n\t\tif (argsString) args = argsString.split(':');\n\n\t\tawait toView(viewName, pageName, args, moveDirection);\n\t}\n};\n\n/**\n * Открыть диалоговое окно, возможно указать нужную страницу\n * @param viewNameOrElDialog - id страницы окна или элемент окна\n * @param pageName - имя страницы\n * @param args - аргументы, набор проивзольных параметров, которые могут обрабатываться каждым окном по своему\n * @param moveDirection\n * @param callback - функция, которая будет запущена после октытия страницы\n */\nconst toView = async (\n\tviewNameOrElDialog: ElTopDialog | JQuery<ElTopDialog> | string,\n\tpageName?: string,\n\targs?: string[],\n\tmoveDirection?: MoveDirection,\n\tcallback?: Function,\n) => {\n\tif (!isInited) {\n\t\tawait new Promise<void>((resolve, _reject) => {\n\t\t\tconst timer = setInterval(() => {\n\t\t\t\tif (!isInited) return;\n\n\t\t\t\tclearInterval(timer);\n\n\t\t\t\tresolve();\n\t\t\t}, 10);\n\t\t});\n\t}\n\n\tawait nextTick();\n\n\tlet elDialog: ElTopDialog | null;\n\tif (typeof (viewNameOrElDialog) === 'object') {\n\t\tif (isElJQuery(viewNameOrElDialog)) viewNameOrElDialog = viewNameOrElDialog?.[0]; // todo: убрать после переписки jquery на сайте\n\n\t\telDialog = viewNameOrElDialog;\n\t} else {\n\t\telDialog = getElDialogById(viewNameOrElDialog);\n\t}\n\n\t// Диалоговое окно еще не загружено\n\tif (!elDialog && typeof viewNameOrElDialog === 'string' && TopDialogWorker.state.load) {\n\t\tawait TopDialogWorker.state.load(viewNameOrElDialog);\n\n\t\telDialog = getElDialogById(viewNameOrElDialog);\n\t\tif (!elDialog) {\n\t\t\tthrow new Error('Dialog no exists: ' + viewNameOrElDialog);\n\t\t}\n\t}\n\n\tif (!elDialog) return;\n\n\tawait toViewPage(elDialog, pageName, args, moveDirection);\n\n\tconst $dialog = $(elDialog);\n\n\tif (elDialog?.classList.contains('ui-dialog-content')) {\n\t\t// var zIndexMax = 0;\n\t\t// $.map($('.ui-dialog'), function (el) {\n\t\t// \tvar zIndex = $(el).css('z-index') * 1;\n\t\t// \tif (zIndex > zIndexMax) zIndexMax = zIndex;\n\t\t// });\n\t\t//\n\t\t// if ($dialog.is(':hidden')) $dialog.dialog('open');\n\t\t//\n\t\t// var $dialogWrapper = $dialog.parent();\n\t\t// var $dialogOverlay = $dialogWrapper.next();\n\t\t//\n\t\t// if ($dialogWrapper.css('z-index') * 1 < zIndexMax) {\n\t\t// \t$dialogWrapper.css('z-index', zIndexMax + 2);\n\t\t// \t$dialogOverlay.css('z-index', zIndexMax + 1);\n\t\t// }\n\n\t\t$dialog.dialog('open');\n\t} else {\n\t\tconst options = genVueOptions(elDialog);\n\n\t\t$dialog.dialog(options);\n\t}\n\n\tif (callback) callback($dialog);\n};\n\nconst toViewPage = async (elDialog: ElTopDialog | JQuery<ElTopDialog>, pageName?: string, args?: string[], moveDirection?: MoveDirection) => {\n\t// todo: убрать после переписки jquery на сайте\n\tif (isElJQuery(elDialog)) elDialog = elDialog?.[0];\n\n\tif (pageName === undefined) pageName = elDialog.dataset.viewPageActive;\n\n\tif (pageName !== elDialog.dataset.viewPageActive) {\n\t\tconst stopped = stopAnimations(elDialog);\n\t\tif (stopped) await sleep(100);\n\t}\n\n\tif (args === undefined) args = [];\n\n\tawait updatePageVue(elDialog.getAttribute('id') as string, undefined, pageName);\n\n\tconst elModalLayers = querySelectorAllArray<ElTopDialogModalLayer>(elDialog, '.modal-layer');\n\tconst elCurrentPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, elModalLayer) => {\n\t\tconst elCurrentPage = elModalLayer.querySelector<ElTopDialogPage>(':scope > .active');\n\t\tif (elCurrentPage) {\n\t\t\tacc.push(elCurrentPage);\n\t\t}\n\n\t\treturn acc;\n\t}, []);\n\n\tconst elNextPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, elModalLayer) => {\n\t\tconst elNextPage = elModalLayer.querySelector<ElTopDialogPage>(`:scope > [data-view-page=\"${pageName}\"]`);\n\t\tif (elNextPage) {\n\t\t\tacc.push(elNextPage);\n\t\t}\n\n\t\treturn acc;\n\t}, []);\n\n\tconst argsString = args.join(':');\n\n\tif (moveDirection === undefined) {\n\t\tmoveDirection = 'next';\n\t\tif ((elNextPages[0]?.dataset.order ?? 0) < (elCurrentPages[0]?.dataset.order ?? 0)) moveDirection = 'prev';\n\t}\n\n\tif (!elNextPages.length) return;\n\n\telDialog.dataset.viewPageActive = pageName;\n\n\t// запрашиваемая страница уже открыта\n\tif (elNextPages[0].classList.contains('active')) {\n\t\tif (elNextPages[0].dataset.viewPageArgs !== argsString) {\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\telNextPage.dataset.viewPageArgs = argsString;\n\t\t\t});\n\n\t\t\t// dialogs.beforeOpenViewPage($dialog, $nextPage, pageName, args);\n\t\t\t// dialogs.afterOpenViewPage($dialog, $nextPage, pageName, args);\n\t\t}\n\n\t\tbeforeOpenViewPage(elDialog, elNextPages, pageName, args);\n\t\tafterOpenViewPage(elDialog, elNextPages, pageName, args);\n\n\t\treturn;\n\t}\n\n\telNextPages.forEach((elNextPage) => {\n\t\telNextPage.dataset.viewPageArgs = argsString;\n\t});\n\n\telCurrentPages.forEach((elCurrentPage) => {\n\t\tif (elCurrentPage.querySelector('.top-popup-wrapper')) {\n\t\t\tTopPopupWorker.close(elCurrentPage.querySelector('.top-popup-wrapper')!);\n\t\t}\n\t});\n\n\tconst elDialogWrapper = elNextPages[0].closest<ElTopDialogWrapper>('.ui-dialog');\n\n\tif (elDialogWrapper && !isVisible(elDialogWrapper)) moveDirection = 'none';\n\tif (!elCurrentPages.length) moveDirection = 'none';\n\tif (isVisible(elNextPages[0])) moveDirection = 'none';\n\n\tswitch (moveDirection) {\n\t\tcase 'prev': {\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\tconst elActive = elNextPage.parentNode?.querySelector(':scope > .active');\n\t\t\t\tif (elActive) elNextPage.parentNode?.insertBefore(elNextPage, elActive);\n\t\t\t});\n\n\t\t\telCurrentPages.forEach((elCurrentPage) => {\n\t\t\t\telCurrentPage.classList.add('right-to-center', 'reverse');\n\t\t\t});\n\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\telNextPage.classList.add('center-to-left', 'reverse');\n\t\t\t});\n\n\t\t\tbreak;\n\t\t}\n\t\tcase 'next': {\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\tconst elActive = elNextPage.parentNode?.querySelector(':scope > .active');\n\t\t\t\tif (elActive) elNextPage.parentNode?.insertBefore(elNextPage, elActive.nextSibling);\n\t\t\t});\n\n\t\t\telCurrentPages.forEach((elCurrentPage) => {\n\t\t\t\telCurrentPage?.classList.add('center-to-left');\n\t\t\t});\n\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\telNextPage.classList.add('right-to-center');\n\t\t\t});\n\n\t\t\tbreak;\n\t\t}\n\t}\n\n\telDialog.setAttribute('view-page-active', pageName);\n\n\telCurrentPages.forEach((elCurrentPage) => {\n\t\telCurrentPage.classList.remove('active');\n\t});\n\n\telNextPages.forEach((elNextPage) => {\n\t\telNextPage.classList.add('active');\n\t});\n\n\tbeforeOpenViewPage(elDialog, elNextPages, pageName, args);\n\n\tif (moveDirection) {\n\t\telDialog.classList.add('i-change-page');\n\n\t\tconst delay = Number(window.getComputedStyle(elNextPages[0]).animationDuration.replace('s', '')) * 1000;\n\n\t\ttimerClearAnimation = setTimeout(function () {\n\t\t\tupdatePageVue(elDialog.getAttribute('id'), pageName, '');\n\t\t\tstopAnimations(elDialog);\n\t\t\tafterOpenViewPage(elDialog, elNextPages, pageName, args);\n\t\t}, delay);\n\t} else {\n\t\tawait updatePageVue(elDialog.getAttribute('id'), pageName, '');\n\t\tafterOpenViewPage(elDialog, elNextPages, pageName, args);\n\t}\n};\n\n/**\n * К предыдущему представлению\n */\nconst toPrevPage = (elDialog: ElTopDialog) => {\n\tconst elModalLayers = querySelectorAllArray<ElTopDialogModalLayer>(elDialog, '.modal-layer');\n\tconst elCurrentPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, elModalLayer) => {\n\t\tconst elCurrentPage = elModalLayer.querySelector<ElTopDialogPage>(':scope > .active');\n\n\t\tif (elCurrentPage) {\n\t\t\tacc.push(elCurrentPage);\n\t\t}\n\n\t\treturn acc;\n\t}, []);\n\n\tconst elPrevPages = elCurrentPages.reduce<ElTopDialogPage[]>((acc, elCurrentPage) => {\n\t\tlet elPrevPage = elCurrentPage.previousElementSibling as ElTopDialogPage | null;\n\t\twhile (elPrevPage && !elPrevPage.hasAttribute('data-view-page')) {\n\t\t\telPrevPage = elPrevPage.previousElementSibling as ElTopDialogPage | null;\n\t\t}\n\n\t\tif (elPrevPage) acc.push(elPrevPage);\n\n\t\treturn acc;\n\t}, []);\n\n\tconst prevPageName = (elPrevPages[0])?.dataset.viewPage;\n\n\tif (prevPageName) {\n\t\tvoid toViewPage(elDialog, prevPageName, undefined, 'prev');\n\t} else {\n\t\tconst $dialog = $(elDialog);\n\t\t$dialog.dialog('close');\n\t}\n};\n\n/**\n * Для обработки событий вне vue\n */\nconst beforeOpenViewPageTimers = new Set();\nconst beforeOpenViewPage = (elDialog: ElTopDialog, elPages: ElTopDialogPage[], pageName: string, args: string[]) => {\n\t// группировка цепочки событий\n\t// запрос на открытие страницы может выполняться несколько раз, чаще такое может быть при открытии, загрузке и переходе сразу к нужной странице\n\tconst eventKey = elDialog.getAttribute('id') + elPages[0].dataset.viewPage + pageName + args.join();\n\n\tif (beforeOpenViewPageTimers.has(eventKey)) return;\n\tbeforeOpenViewPageTimers.add(eventKey);\n\n\tsetTimeout(function () {\n\t\tbeforeOpenViewPageTimers.delete(eventKey);\n\n\t\t$(elDialog).trigger('viewBeforeOpen', [$(elDialog), $(elPages), pageName, args]);\n\t});\n};\n\n/**\n * Для обработки событий вне vue\n */\nconst afterOpenViewPage = (elDialog: ElTopDialog, elPages: ElTopDialogPage[], pageName: string, args: string[]) => {\n\tsetTimeout(function () {\n\t\t$(elDialog).trigger('viewAfterOpen', [$(elDialog), $(elPages), pageName, args]);\n\t});\n};\n\n/**\n * Получить состояние: Диалоговое окно находится в состоянии смены страницы\n */\nconst inAnimation = (elDialog: ElTopDialog | JQuery<ElTopDialog>) => {\n\tif (isElJQuery(elDialog)) elDialog = elDialog?.[0]; // todo: убрать после переписки jquery на сайте\n\n\treturn elDialog.classList.contains('i-change-page');\n};\n\n/**\n * Остановить анимацию смены страницы\n *\n * @returns Вернет true, если анимация производилась и была остановлена\n */\nconst stopAnimations = (elDialog: ElTopDialog) => {\n\tif (!inAnimation(elDialog)) return false;\n\n\tclearTimeout(timerClearAnimation);\n\n\tconst elModalLayers = querySelectorAllArray(elDialog, '.modal-layer');\n\n\tconst pageName = elDialog.dataset.viewPageActive;\n\telDialog.classList.remove('i-change-page');\n\n\telModalLayers.forEach((elModalLayer) => {\n\t\telModalLayer.querySelectorAll(':scope > [data-view-page]').forEach((el) => {\n\t\t\tel.classList.remove('center-to-left', 'right-to-center', 'reverse', 'active');\n\t\t});\n\t});\n\n\telModalLayers.forEach((elModalLayer) => {\n\t\telModalLayer.querySelector(`:scope > [data-view-page=\"${pageName}\"]`)?.classList.add('active');\n\t});\n\n\treturn true;\n};\n\n/**\n * Закрыть диалоговое окно\n */\nconst close = function (dialogId: string) {\n\tconst elDialog = getElDialogById(dialogId);\n\tif (!elDialog) return;\n\n\tconst $dialog = $(elDialog);\n\n\tif (!$dialog.dialog('instance')) return;\n\n\t$dialog.dialog('close');\n};\n\n/**\n * Управление props.isLoading\n */\nconst setLoading = (elPages: ElTopDialogPage[] | JQuery<ElTopDialogPage>, isLoading: boolean, duration?: number) => {\n\tif (isElJQuery(elPages)) elPages = elPages.toArray(); // todo: убрать после переписки jquery на сайте\n\n\tconst elPagesVisibleds = elPages.reduce<ElTopDialogPage[]>((acc, elPage) => {\n\t\tif (elPage.hasAttribute('data-view-page') && isVisible(elPage)) acc.push(elPage);\n\n\t\treturn acc;\n\t}, []);\n\n\tif (isLoading) {\n\t\tif (duration !== undefined) {\n\t\t\telPagesVisibleds.forEach((elPagesVisibled) => {\n\t\t\t\telPagesVisibled.style.setProperty('--dialog-loading-duration', duration + 's');\n\t\t\t});\n\t\t}\n\n\t\telPagesVisibleds.forEach((elPagesVisibled) => {\n\t\t\telPagesVisibled.classList.add('i-load-data');\n\t\t});\n\t} else {\n\t\telPagesVisibleds.forEach((elPagesVisibled) => {\n\t\t\telPagesVisibled.classList.remove('i-load-data');\n\t\t});\n\n\t\telPagesVisibleds.forEach((elPagesVisibled) => {\n\t\t\telPagesVisibled.style.setProperty('--dialog-loading-duration', '10s');\n\t\t});\n\t}\n};\n\nconst isLoading = (elPage: ElTopDialogPage | JQuery<ElTopDialogPage>) => {\n\tif (isElJQuery(elPage)) elPage = elPage?.[0]; // todo: убрать после переписки jquery на сайте\n\n\treturn elPage.classList.contains('i-load-data');\n};\n\nexport const TopDialogUtils = {\n\tgetElDialogById,\n\tupdatePageVue,\n\trecalcPositions,\n\ttoViewDirty,\n\ttoView,\n\ttoViewPage,\n\ttoPrevPage,\n\tsetLoading,\n\tisLoading,\n\tinAnimation,\n\tclose,\n};\n\ninit();\n"],"names":["inited","initDialogGlobalEvents","el","querySelectorVisible","elDialogs","querySelectorAllArray","elDialog","isVisible","toView","TopDialogUtils","viewNameAndPageLink","viewName","pageLink","elToPages","hash","TopDialogWorker","historySetState","elForm","eventTarget","elSubmitButton","event","elDialogWrapperWithTopZIndex","topZIndex","elDialogWrapper","zIndex","Core","css","cssM","cssPC","cssModern","cssModernPC","timerClearAnimation","isInited","isElJQuery","init","onCreate","onOpen","onClose","$dialog","genVueOptions","options","getElDialogById","id","updatePageVue","dialogId","pageName","pageNameNext","dialog","getDialogWorker","nextTick","waitWhile","elDialogBody","connectScrollShadow","initPopup","_e","$popup","elPopup","w1","scrollBarWidth","recalcPositions","hashData","setHashs","toViewDirty","toViewPageName","moveDirection","toViewParts","argsString","args","viewNameOrElDialog","callback","resolve","_reject","timer","toViewPage","stopAnimations","sleep","elModalLayers","elCurrentPages","acc","elModalLayer","elCurrentPage","elNextPages","elNextPage","beforeOpenViewPage","afterOpenViewPage","TopPopupWorker","elActive","delay","toPrevPage","prevPageName","elPrevPage","beforeOpenViewPageTimers","elPages","eventKey","inAnimation","close","setLoading","isLoading","duration","elPagesVisibleds","elPage","elPagesVisibled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils-DG_W0xvD.es.js","sources":["../../src/storybook/jquery.ts","../../src/components/dialog/lib/utils.globalEvents.ts","../../src/components/dialog/lib/utils.ts"],"sourcesContent":["/**\n * см. /.storybook/preview-head.html\n */\nexport default $;\n","import { TopDialogUtils } from './utils';\nimport { TopDialogWorker } from './worker';\nimport { isVisible, querySelectorAllArray, querySelectorVisible } from '@/core/utils/dom';\nimport { historySetState } from '@/core/utils/route';\nimport type { ElTopDialog, ElTopDialogWrapper } from '@/components/dialog/lib/types';\n\nlet inited = false;\n\n/**\n * Инициализация глобальных событий для диалоговых окон\n *\n * Производится один раз при подключении диалогового окна\n *\n * События не размонтируются\n */\nexport const initDialogGlobalEvents = () => {\n\tif (inited) return;\n\tinited = true;\n\n\t/**\n\t * Закрытие диалога по Esc\n\t */\n\tdocument.addEventListener('keydown', (e) => {\n\t\tif (e.key !== 'Escape') return;\n\t\tif (!e.target || !(e.target instanceof HTMLElement)) return;\n\n\t\tconst el = e.target;\n\n\t\t// событие произошло вне диалогового окна\n\t\tif (!el.closest('.ui-dialog')) return;\n\n\t\tif (el.contentEditable === 'true' || el.contentEditable === 'plaintext-only') return;\n\n\t\t// не закрывать окно при открытом TopPopup\n\t\tif (querySelectorVisible(document.documentElement, '.top-popup-wrapper')) return;\n\n\t\t// не закрывать окно при работе с jquery autocomplete\n\t\tif (el.classList.contains('autocomplete')) return;\n\n\t\t// не закрывать окно при открытом fancybox\n\t\tif (querySelectorVisible(document.documentElement, '.fancybox-container')) return;\n\n\t\tconst elDialogs = querySelectorAllArray<ElTopDialog>(document, '.ui-dialog-content').filter((elDialog) => {\n\t\t\treturn isVisible(elDialog);\n\t\t});\n\n\t\t$(elDialogs[elDialogs.length - 1]).dialog('close');\n\t});\n\n\t/**\n\t * Закрытие диалога по кнопке закрыть\n\t */\n\tdocument.addEventListener('click', (e) => {\n\t\t// // навигация без истории\n\t\t// var $dialog = $(this).closest('.ui-dialog-content');\n\t\t// var viewName = $dialog.attr('id');\n\t\t// var pageName = getHash('view-' + viewName);\n\t\t// if (!pageName) {\n\t\t// \ttoPrevPage($dialog);\n\t\t//\n\t\t// \treturn;\n\t\t// }\n\t\t//\n\t\t// // навигация по истории\n\t\t// if (Core.state.isMobile && history.length > 1 && $(this).closest('.modal-layer').length) {\n\t\t// \tvar href = location.href;\n\t\t//\n\t\t// \thistory.go(-1);\n\t\t//\n\t\t// \tsetTimeout(() => {\n\t\t// \t\t// это первая страница в истории вкладки браузера\n\t\t// \t\tif (href === location.href) $(e.target).closest('.ui-dialog-content').dialog('close');\n\t\t// \t});\n\t\t// } else {\n\t\t// \t$(this).closest('.ui-dialog-content').dialog('close');\n\t\t// }\n\n\t\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\tconst el = e.target.closest('[data-action=\"top-dialog-close\"]') as HTMLElement | null;\n\t\tif (!el) return;\n\n\t\te.preventDefault();\n\n\t\tconst elDialog = el.closest<ElTopDialog>('.ui-dialog-content');\n\t\tif (!elDialog) return;\n\n\t\t// если к кнопке привязана ссылка, диалоговое окно не нужно закрывать\n\t\tconst toView = el.dataset.toView;\n\n\t\tif (toView == 'toPrevPage()') {\n\t\t\tTopDialogUtils.toPrevPage(elDialog);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (toView) {\n\t\t\tconst viewNameAndPageLink = toView.split('-');\n\t\t\tconst viewName = viewNameAndPageLink.shift();\n\t\t\tconst pageLink = viewNameAndPageLink.join('-');\n\n\t\t\tif (!viewName) return;\n\n\t\t\tconst elDialog = TopDialogUtils.getElDialogById(viewName);\n\t\t\tif (!elDialog) return;\n\n\t\t\tconst elToPages = querySelectorAllArray(elDialog, `[data-view-page=\"${pageLink}\"]`);\n\t\t\tif (!elToPages) return;\n\n\t\t\tif (!isVisible(elToPages[0])) {\n\t\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, 'prev');\n\n\t\t\t\t// // не убирает кнопку \"Вперед\" в браузере\n\t\t\t\t// history.replaceState(null, '', hash);\n\t\t\t\t// toViewDirty(toView, 'prev');\n\n\t\t\t\t// // добавляет текущую страницу в историю браузера\n\t\t\t\thistorySetState(false, hash);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst $dialog = $(elDialog);\n\n\t\t$dialog.dialog('close');\n\t});\n\n\t/**\n\t * Все submit должны обрабатываться через js\n\t */\n\tdocument.addEventListener('submit', (e) => {\n\t\tconst elForm = e.target as HTMLElement;\n\n\t\tif (elForm.matches('.modal-body > form') || elForm.matches('.modal-layer-body > form')) {\n\t\t\te.preventDefault();\n\t\t}\n\t});\n\n\t/**\n\t * Выполнение действия по нажатию Enter\n\t *\n\t * @todo Убрать `.searcher`\n\t */\n\tdocument.addEventListener('keypress', (e) => {\n\t\tif (!(e.target instanceof HTMLElement)) return;\n\n\t\tconst eventTarget = e.target;\n\n\t\tconst elModalBody = eventTarget.closest('.ui-dialog .modal-body');\n\t\tif (!elModalBody) return;\n\n\t\tconst isInput =\n\t\t\teventTarget.matches('input:not(.searcher), textarea:not(.searcher), select:not(.searcher), button:not(.searcher)')\n\t\t\t|| eventTarget.hasAttribute('contenteditable');\n\t\tif (!isInput) return;\n\n\t\t// if (e.keyCode !== 10 && e.key !== 'ENTER') return;\n\t\tif (e.key !== 'Enter') return;\n\n\t\t// не выполнять submit действий при работе с jquery autocomplete\n\t\tif (eventTarget.classList.contains('autocomplete')) {\n\t\t\te.preventDefault();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventTarget.tagName === 'TEXTAREA') {\n\t\t\tif (!e.ctrlKey && !e.metaKey) return;\n\n\t\t\tconst elForm = eventTarget.closest('form');\n\n\t\t\tif (elForm) {\n\t\t\t\t// Find visible submit buttons\n\t\t\t\tconst elSubmitButton = querySelectorAllArray(elForm, 'button[type=\"submit\"]')\n\t\t\t\t\t.concat(querySelectorAllArray(elForm, 'input[type=\"submit\"]'))\n\t\t\t\t\t.find((elSubmitButton) => {\n\t\t\t\t\t\treturn isVisible(elSubmitButton);\n\t\t\t\t\t});\n\n\t\t\t\telSubmitButton?.click();\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Закрытие диалога по клику вне окна\n\t */\n\tdocument.addEventListener('click', function (event) {\n\t\tif (!(event.target instanceof HTMLElement)) return;\n\n\t\tconst eventTarget = event.target;\n\n\t\tif (!eventTarget.classList.contains('ui-widget-overlay')) return;\n\n\t\tlet elDialogWrapperWithTopZIndex: ElTopDialogWrapper | undefined;\n\t\tlet topZIndex = 0;\n\n\t\tconst elDialogWrapperVisibles = querySelectorAllArray<ElTopDialogWrapper>(document, '.ui-dialog').filter((elDialogWrapper) => {\n\t\t\treturn isVisible(elDialogWrapper);\n\t\t});\n\n\t\telDialogWrapperVisibles.forEach((elDialogWrapper) => {\n\t\t\tconst zIndex = Number(window.getComputedStyle(elDialogWrapper).zIndex);\n\t\t\tif (zIndex < topZIndex) return;\n\n\t\t\telDialogWrapperWithTopZIndex = elDialogWrapper;\n\t\t\ttopZIndex = zIndex;\n\t\t});\n\n\t\tif (elDialogWrapperWithTopZIndex) {\n\t\t\tconst elDialog = elDialogWrapperWithTopZIndex.querySelector('.ui-dialog-content');\n\n\t\t\t$(elDialog).dialog('close');\n\t\t}\n\t});\n\n\twindow.addEventListener('resize', TopDialogUtils.recalcPositions);\n\tTopDialogUtils.recalcPositions();\n};\n","import 'jquery';\nimport { nextTick } from 'vue';\n\nimport Core from '@/core/core/core';\nimport { TopPopupWorker } from '@/components/popup/worker';\nimport { sleep, waitWhile } from '@/core/utils/system';\nimport { setHashs } from '@/core/utils/route';\nimport { connectScrollShadow } from '@/core/utils/scroll';\n\nimport type { ElTopDialog, ElTopDialogBody, ElTopDialogModalLayer, ElTopDialogPage, ElTopDialogWrapper, MoveDirection } from './types';\nimport { TopDialogWorker } from './worker';\nimport { initDialogGlobalEvents } from './utils.globalEvents';\nimport { getDialogWorker } from '../dialog/dialogs/dialogs.vue';\n\nimport css from '../dialog/style/dialog.css?inline';\nimport cssM from '../dialog/style/dialog.m.css?inline';\nimport cssPC from '../dialog/style/dialog.pc.css?inline';\nimport cssModern from '../dialog/style/modern/dialog.css?inline';\nimport cssModernPC from '../dialog/style/modern/dialog.pc.css?inline';\nimport { isVisible, querySelectorAllArray } from '@/core/utils/dom';\n\nCore.insertStyleToPage(css);\nCore.insertStyleToPage(cssM, 'm');\nCore.insertStyleToPage(cssPC, 'pc');\nCore.insertStyleToPage(cssModern);\nCore.insertStyleToPage(cssModernPC, 'pc');\n\nlet timerClearAnimation: NodeJS.Timeout;\nlet isInited = false;\n\n/**\n * Является ли элемент JQuery<HTMLElement>\n */\nconst isElJQuery = (el: JQuery<HTMLElement> | HTMLElement | HTMLElement[]) => {\n\treturn !!el && typeof el === 'object' && 'jquery' in el;\n};\n\nconst init = () => {\n\t$.extend($.ui.dialog.prototype.options, {\n\t\tfocus: (e: any) => {\n\t\t\te.target.focus();\n\n\t\t\t$('[autofocus]', e.target)[0]?.focus();\n\n\t\t\t// setTimeout(function () {\n\t\t\t// \tif ($('[autofocus]', e.target).length) return;\n\t\t\t// \t$('.modal-footer button:first, .modal-body :input:first', e.target).eq(0).focus();\n\t\t\t//\n\t\t\t// \t// fix пропадающего autocomplete при нажатии на scroll в autocomplete\n\t\t\t// \t$(e.target).add($(e.target).closest('.ui-dialog')).removeAttr('tabindex');\n\t\t\t// });\n\t\t},\n\t\tcreate: (e: any) => onCreate(e.target),\n\t\topen: (e: any) => onOpen(e.target),\n\t\tclose: (e: any) => onClose(e.target),\n\t\tmodal: true,\n\t\tresizable: false,\n\t\tcloseOnEscape: false,\n\t\twidth: 'auto',\n\t\tminHeight: 0,\n\t});\n\n\t$.ui.dialog.prototype._focusTabbable = $.noop;\n\n\t$.ui.dialog.prototype._moveToTopOriginal = $.ui.dialog.prototype._moveToTop;\n\t$.ui.dialog.prototype._moveToTop = function () {\n\t\tthis._moveToTopOriginal();\n\n\t\tconst $dialog = $(this.element);\n\t\t$dialog.trigger('dialogsMoveToTop', [$dialog]);\n\t};\n\n\tinitDialogGlobalEvents();\n\n\tisInited = true;\n};\n\n/**\n * Получить настройки диалогового окна из Vue компонента\n */\nconst genVueOptions = (elDialog: ElTopDialog) => {\n\tconst options: {\n\t\tmodal?: boolean,\n\t\tposition?: any,\n\t} = {};\n\n\tif (elDialog.dataset?.modal === 'false') options.modal = false;\n\tif (elDialog.dataset?.position) options.position = JSON.parse(elDialog.dataset.position);\n\n\treturn options;\n};\n\nconst getElDialogById = (id: string) => {\n\treturn <ElTopDialog | null>document.getElementById(id);\n};\n\n/**\n * Сменить состояние диалогового окна Vue\n */\nconst updatePageVue = async (dialogId: string, pageName?: string, pageNameNext?: string) => {\n\tif (!dialogId.startsWith('dialog_')) return;\n\n\tconst dialog = getDialogWorker(dialogId);\n\tif (!dialog) return;\n\n\tdialog.isOpened.value = true;\n\tif (pageName !== undefined) dialog.pageActive.value = pageName;\n\tif (pageNameNext !== undefined) dialog.pageActiveNext.value = pageNameNext;\n\n\tawait nextTick();\n\n\tif (pageNameNext) {\n\t\tconst elDialog = getElDialogById(dialogId);\n\t\tif (!elDialog) return;\n\n\t\tconst elNextpages = elDialog.querySelectorAll(`[data-view-page=\"${pageNameNext}\"]`);\n\n\t\tif (!elNextpages.length) {\n\t\t\tawait waitWhile(() => !elDialog.querySelectorAll(`[data-view-page=\"${pageNameNext}\"]`).length);\n\t\t}\n\t}\n};\n\n/**\n * Callback for jQuery dialog onCreate\n */\nconst onCreate = (elDialog: ElTopDialog) => {\n\tconst elDialogBody = elDialog.querySelector<ElTopDialogBody>('.modal-body');\n\tif (!elDialogBody) return;\n\n\tconnectScrollShadow(elDialogBody);\n\n\tTopDialogWorker.state.decoratorOnCreate?.(elDialog);\n\n\tinitPopup(elDialog);\n};\n\n/**\n * Инициирование событий TopPopup в диалоговом окне\n */\nconst initPopup = (elDialog: HTMLElement) => {\n\t$(elDialog).on('aftershow.top-menu-popup', '[data-top-popup]', (_e, $popup) => {\n\t\t// перенести popup в корневой элемент страницы диалогового окна\n\t\tconst elPopup = $popup[0];\n\n\t\t// перенести popup в корневой элемент страницы диалогового окна\n\t\tconst elPageContents = TopDialogWorker.getPairPage(elPopup);\n\t\telPageContents?.[1]?.prepend(elPopup);\n\t});\n};\n\n/**\n * Callback for jQuery dialog onOpen\n */\nconst onOpen = async (elDialog: ElTopDialog) => {\n\tconst pageName = elDialog.dataset.viewPageActive;\n\n\tconst w1 = window.innerWidth;\n\n\tCore.state.documentClassModificators.set('top-dialog', 'with_dialog');\n\n\tconst w2 = window.innerWidth;\n\n\tconst scrollBarWidth = w2 - w1;\n\tif (document.documentElement.scrollHeight > window.innerHeight) document.querySelector('html')!.style.marginRight = scrollBarWidth + 'px';\n\n\trecalcPositions();\n\n\tconst dialog = getDialogWorker(elDialog.getAttribute('id')!);\n\tdialog?.emit?.('open', pageName);\n};\n\n/**\n * Callback for jQuery dialog onClose\n */\nconst onClose = async (elDialog: ElTopDialog) => {\n\tconst viewName = elDialog.getAttribute('id');\n\tconst pageName = elDialog.dataset.viewPageActive;\n\n\tif (pageName) {\n\t\tconst hashData = {\n\t\t\tvpn: TopDialogWorker.state.viewPageN as number | null,\n\t\t\t['view-' + viewName]: null,\n\t\t};\n\t\thashData['view-' + viewName] = null;\n\n\t\tif (TopDialogWorker.state.viewPageN === 0 || TopDialogWorker.state.viewPageN === 1) {\n\t\t\thashData.vpn = null;\n\t\t}\n\n\t\tsetHashs(hashData, false);\n\t}\n\n\tconst elUiWidgetOverlayVisibles = querySelectorAllArray(document, '.ui-widget-overlay').filter((el) => {\n\t\treturn isVisible(el);\n\t});\n\n\tif (!elUiWidgetOverlayVisibles.length) {\n\t\tCore.state.documentClassModificators.delete('top-dialog');\n\n\t\tdocument.querySelector('html')!.style.marginRight = '';\n\t}\n\n\t$(elDialog).trigger('viewAfterClose', [$(elDialog)]);\n\n\tconst dialog = getDialogWorker(viewName);\n\n\tif (dialog) {\n\t\tdialog.isOpened.value = false;\n\t\tdialog.emit?.('close', pageName);\n\n\t\tif (dialog.onCloseOnce) {\n\t\t\tdialog.onCloseOnce(dialog.props, pageName);\n\t\t\tdialog.onCloseOnce = undefined;\n\t\t}\n\t}\n\n\t// после закрытия диалога может потребоваться пересчет позиций элементов\n\twindow.dispatchEvent(new Event('resize'));\n};\n\n/**\n * Пересчитать положения и размеры открытых диалоговых окон\n */\nconst recalcPositions = () => {\n\tconst elDialogVisibilityes = querySelectorAllArray(document, '.ui-dialog').filter((el) => {\n\t\treturn isVisible(el) && el.querySelector<ElTopDialog>(':scope > .ui-dialog-content');\n\t}).map((el) => {\n\t\treturn el.querySelector<ElTopDialog>(':scope > .ui-dialog-content')!;\n\t});\n\n\telDialogVisibilityes.forEach((elDialog) => {\n\t\tconst elDialogBody = elDialog.querySelector<ElTopDialogBody>('.modal-body');\n\t\tif (!elDialogBody) return;\n\n\t\tconst elDialogWrapper = elDialog.closest('.ui-dialog');\n\n\t\tconst options = genVueOptions(elDialog);\n\n\t\toptions.position ??= { of: window };\n\n\t\tconst $dialog = $(elDialog);\n\t\t$dialog.dialog('option', options);\n\n\t\telDialogWrapper.classList.remove('me-tightly');\n\t\tif ((elDialogWrapper.clientHeight ?? 0) > window.innerHeight) elDialogWrapper.classList.add('me-tightly');\n\t});\n};\n\n/**\n * Переход к view page по неразобранной ссылке в формате: {viewName}-{pageName}[:args]\n */\nconst toViewDirty = async (toViewPageName: string, moveDirection?: MoveDirection) => {\n\tconst regexp = /(\\w+)[=-]([\\w-]+)(?::([\\w.:-]+))?/g;\n\tconst toViewParts = regexp.exec(toViewPageName);\n\tif (toViewParts) {\n\t\tconst viewName = toViewParts[1];\n\t\tconst pageName = toViewParts[2];\n\t\tconst argsString = toViewParts[3];\n\n\t\tlet args: string[] = [];\n\t\tif (argsString) args = argsString.split(':');\n\n\t\tawait toView(viewName, pageName, args, moveDirection);\n\t}\n};\n\n/**\n * Открыть диалоговое окно, возможно указать нужную страницу\n * @param viewNameOrElDialog - id страницы окна или элемент окна\n * @param pageName - имя страницы\n * @param args - аргументы, набор проивзольных параметров, которые могут обрабатываться каждым окном по своему\n * @param moveDirection\n * @param callback - функция, которая будет запущена после октытия страницы\n */\nconst toView = async (\n\tviewNameOrElDialog: ElTopDialog | JQuery<ElTopDialog> | string,\n\tpageName?: string,\n\targs?: string[],\n\tmoveDirection?: MoveDirection,\n\tcallback?: Function,\n) => {\n\tif (!isInited) {\n\t\tawait new Promise<void>((resolve, _reject) => {\n\t\t\tconst timer = setInterval(() => {\n\t\t\t\tif (!isInited) return;\n\n\t\t\t\tclearInterval(timer);\n\n\t\t\t\tresolve();\n\t\t\t}, 10);\n\t\t});\n\t}\n\n\tawait nextTick();\n\n\tlet elDialog: ElTopDialog | null;\n\tif (typeof (viewNameOrElDialog) === 'object') {\n\t\tif (isElJQuery(viewNameOrElDialog)) viewNameOrElDialog = viewNameOrElDialog?.[0]; // todo: убрать после переписки jquery на сайте\n\n\t\telDialog = viewNameOrElDialog;\n\t} else {\n\t\telDialog = getElDialogById(viewNameOrElDialog);\n\t}\n\n\t// Диалоговое окно еще не загружено\n\tif (!elDialog && typeof viewNameOrElDialog === 'string' && TopDialogWorker.state.load) {\n\t\tawait TopDialogWorker.state.load(viewNameOrElDialog);\n\n\t\telDialog = getElDialogById(viewNameOrElDialog);\n\t\tif (!elDialog) {\n\t\t\tthrow new Error('Dialog no exists: ' + viewNameOrElDialog);\n\t\t}\n\t}\n\n\tif (!elDialog) return;\n\n\tawait toViewPage(elDialog, pageName, args, moveDirection);\n\n\tconst $dialog = $(elDialog);\n\n\tif (elDialog?.classList.contains('ui-dialog-content')) {\n\t\t// var zIndexMax = 0;\n\t\t// $.map($('.ui-dialog'), function (el) {\n\t\t// \tvar zIndex = $(el).css('z-index') * 1;\n\t\t// \tif (zIndex > zIndexMax) zIndexMax = zIndex;\n\t\t// });\n\t\t//\n\t\t// if ($dialog.is(':hidden')) $dialog.dialog('open');\n\t\t//\n\t\t// var $dialogWrapper = $dialog.parent();\n\t\t// var $dialogOverlay = $dialogWrapper.next();\n\t\t//\n\t\t// if ($dialogWrapper.css('z-index') * 1 < zIndexMax) {\n\t\t// \t$dialogWrapper.css('z-index', zIndexMax + 2);\n\t\t// \t$dialogOverlay.css('z-index', zIndexMax + 1);\n\t\t// }\n\n\t\t$dialog.dialog('open');\n\t} else {\n\t\tconst options = genVueOptions(elDialog);\n\n\t\t$dialog.dialog(options);\n\t}\n\n\tif (callback) callback($dialog);\n};\n\nconst toViewPage = async (elDialog: ElTopDialog | JQuery<ElTopDialog>, pageName?: string, args?: string[], moveDirection?: MoveDirection) => {\n\t// todo: убрать после переписки jquery на сайте\n\tif (isElJQuery(elDialog)) elDialog = elDialog?.[0];\n\n\tif (pageName === undefined) pageName = elDialog.dataset.viewPageActive;\n\n\tif (pageName !== elDialog.dataset.viewPageActive) {\n\t\tconst stopped = stopAnimations(elDialog);\n\t\tif (stopped) await sleep(100);\n\t}\n\n\tif (args === undefined) args = [];\n\n\tawait updatePageVue(elDialog.getAttribute('id') as string, undefined, pageName);\n\n\tconst elModalLayers = querySelectorAllArray<ElTopDialogModalLayer>(elDialog, '.modal-layer');\n\tconst elCurrentPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, elModalLayer) => {\n\t\tconst elCurrentPage = elModalLayer.querySelector<ElTopDialogPage>(':scope > .active');\n\t\tif (elCurrentPage) {\n\t\t\tacc.push(elCurrentPage);\n\t\t}\n\n\t\treturn acc;\n\t}, []);\n\n\tconst elNextPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, elModalLayer) => {\n\t\tconst elNextPage = elModalLayer.querySelector<ElTopDialogPage>(`:scope > [data-view-page=\"${pageName}\"]`);\n\t\tif (elNextPage) {\n\t\t\tacc.push(elNextPage);\n\t\t}\n\n\t\treturn acc;\n\t}, []);\n\n\tconst argsString = args.join(':');\n\n\tif (moveDirection === undefined) {\n\t\tmoveDirection = 'next';\n\t\tif ((elNextPages[0]?.dataset.order ?? 0) < (elCurrentPages[0]?.dataset.order ?? 0)) moveDirection = 'prev';\n\t}\n\n\tif (!elNextPages.length) return;\n\n\telDialog.dataset.viewPageActive = pageName;\n\n\t// запрашиваемая страница уже открыта\n\tif (elNextPages[0].classList.contains('active')) {\n\t\tif (elNextPages[0].dataset.viewPageArgs !== argsString) {\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\telNextPage.dataset.viewPageArgs = argsString;\n\t\t\t});\n\n\t\t\t// dialogs.beforeOpenViewPage($dialog, $nextPage, pageName, args);\n\t\t\t// dialogs.afterOpenViewPage($dialog, $nextPage, pageName, args);\n\t\t}\n\n\t\tbeforeOpenViewPage(elDialog, elNextPages, pageName, args);\n\t\tafterOpenViewPage(elDialog, elNextPages, pageName, args);\n\n\t\treturn;\n\t}\n\n\telNextPages.forEach((elNextPage) => {\n\t\telNextPage.dataset.viewPageArgs = argsString;\n\t});\n\n\telCurrentPages.forEach((elCurrentPage) => {\n\t\tif (elCurrentPage.querySelector('.top-popup-wrapper')) {\n\t\t\tTopPopupWorker.close(elCurrentPage.querySelector('.top-popup-wrapper')!);\n\t\t}\n\t});\n\n\tconst elDialogWrapper = elNextPages[0].closest<ElTopDialogWrapper>('.ui-dialog');\n\n\tif (elDialogWrapper && !isVisible(elDialogWrapper)) moveDirection = 'none';\n\tif (!elCurrentPages.length) moveDirection = 'none';\n\tif (isVisible(elNextPages[0])) moveDirection = 'none';\n\n\tswitch (moveDirection) {\n\t\tcase 'prev': {\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\tconst elActive = elNextPage.parentNode?.querySelector(':scope > .active');\n\t\t\t\tif (elActive) elNextPage.parentNode?.insertBefore(elNextPage, elActive);\n\t\t\t});\n\n\t\t\telCurrentPages.forEach((elCurrentPage) => {\n\t\t\t\telCurrentPage.classList.add('right-to-center', 'reverse');\n\t\t\t});\n\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\telNextPage.classList.add('center-to-left', 'reverse');\n\t\t\t});\n\n\t\t\tbreak;\n\t\t}\n\t\tcase 'next': {\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\tconst elActive = elNextPage.parentNode?.querySelector(':scope > .active');\n\t\t\t\tif (elActive) elNextPage.parentNode?.insertBefore(elNextPage, elActive.nextSibling);\n\t\t\t});\n\n\t\t\telCurrentPages.forEach((elCurrentPage) => {\n\t\t\t\telCurrentPage?.classList.add('center-to-left');\n\t\t\t});\n\n\t\t\telNextPages.forEach((elNextPage) => {\n\t\t\t\telNextPage.classList.add('right-to-center');\n\t\t\t});\n\n\t\t\tbreak;\n\t\t}\n\t}\n\n\telDialog.setAttribute('view-page-active', pageName);\n\n\telCurrentPages.forEach((elCurrentPage) => {\n\t\telCurrentPage.classList.remove('active');\n\t});\n\n\telNextPages.forEach((elNextPage) => {\n\t\telNextPage.classList.add('active');\n\t});\n\n\tbeforeOpenViewPage(elDialog, elNextPages, pageName, args);\n\n\tif (moveDirection) {\n\t\telDialog.classList.add('i-change-page');\n\n\t\tconst delay = Number(window.getComputedStyle(elNextPages[0]).animationDuration.replace('s', '')) * 1000;\n\n\t\ttimerClearAnimation = setTimeout(function () {\n\t\t\tupdatePageVue(elDialog.getAttribute('id'), pageName, '');\n\t\t\tstopAnimations(elDialog);\n\t\t\tafterOpenViewPage(elDialog, elNextPages, pageName, args);\n\t\t}, delay);\n\t} else {\n\t\tawait updatePageVue(elDialog.getAttribute('id'), pageName, '');\n\t\tafterOpenViewPage(elDialog, elNextPages, pageName, args);\n\t}\n};\n\n/**\n * К предыдущему представлению\n */\nconst toPrevPage = (elDialog: ElTopDialog) => {\n\tconst elModalLayers = querySelectorAllArray<ElTopDialogModalLayer>(elDialog, '.modal-layer');\n\tconst elCurrentPages = elModalLayers.reduce<ElTopDialogPage[]>((acc, elModalLayer) => {\n\t\tconst elCurrentPage = elModalLayer.querySelector<ElTopDialogPage>(':scope > .active');\n\n\t\tif (elCurrentPage) {\n\t\t\tacc.push(elCurrentPage);\n\t\t}\n\n\t\treturn acc;\n\t}, []);\n\n\tconst elPrevPages = elCurrentPages.reduce<ElTopDialogPage[]>((acc, elCurrentPage) => {\n\t\tlet elPrevPage = elCurrentPage.previousElementSibling as ElTopDialogPage | null;\n\t\twhile (elPrevPage && !elPrevPage.hasAttribute('data-view-page')) {\n\t\t\telPrevPage = elPrevPage.previousElementSibling as ElTopDialogPage | null;\n\t\t}\n\n\t\tif (elPrevPage) acc.push(elPrevPage);\n\n\t\treturn acc;\n\t}, []);\n\n\tconst prevPageName = (elPrevPages[0])?.dataset.viewPage;\n\n\tif (prevPageName) {\n\t\tvoid toViewPage(elDialog, prevPageName, undefined, 'prev');\n\t} else {\n\t\tconst $dialog = $(elDialog);\n\t\t$dialog.dialog('close');\n\t}\n};\n\n/**\n * Для обработки событий вне vue\n */\nconst beforeOpenViewPageTimers = new Set();\nconst beforeOpenViewPage = (elDialog: ElTopDialog, elPages: ElTopDialogPage[], pageName: string, args: string[]) => {\n\t// группировка цепочки событий\n\t// запрос на открытие страницы может выполняться несколько раз, чаще такое может быть при открытии, загрузке и переходе сразу к нужной странице\n\tconst eventKey = elDialog.getAttribute('id') + elPages[0].dataset.viewPage + pageName + args.join();\n\n\tif (beforeOpenViewPageTimers.has(eventKey)) return;\n\tbeforeOpenViewPageTimers.add(eventKey);\n\n\tsetTimeout(function () {\n\t\tbeforeOpenViewPageTimers.delete(eventKey);\n\n\t\t$(elDialog).trigger('viewBeforeOpen', [$(elDialog), $(elPages), pageName, args]);\n\t});\n};\n\n/**\n * Для обработки событий вне vue\n */\nconst afterOpenViewPage = (elDialog: ElTopDialog, elPages: ElTopDialogPage[], pageName: string, args: string[]) => {\n\tsetTimeout(function () {\n\t\t$(elDialog).trigger('viewAfterOpen', [$(elDialog), $(elPages), pageName, args]);\n\t});\n};\n\n/**\n * Получить состояние: Диалоговое окно находится в состоянии смены страницы\n */\nconst inAnimation = (elDialog: ElTopDialog | JQuery<ElTopDialog>) => {\n\tif (isElJQuery(elDialog)) elDialog = elDialog?.[0]; // todo: убрать после переписки jquery на сайте\n\n\treturn elDialog.classList.contains('i-change-page');\n};\n\n/**\n * Остановить анимацию смены страницы\n *\n * @returns Вернет true, если анимация производилась и была остановлена\n */\nconst stopAnimations = (elDialog: ElTopDialog) => {\n\tif (!inAnimation(elDialog)) return false;\n\n\tclearTimeout(timerClearAnimation);\n\n\tconst elModalLayers = querySelectorAllArray(elDialog, '.modal-layer');\n\n\tconst pageName = elDialog.dataset.viewPageActive;\n\telDialog.classList.remove('i-change-page');\n\n\telModalLayers.forEach((elModalLayer) => {\n\t\telModalLayer.querySelectorAll(':scope > [data-view-page]').forEach((el) => {\n\t\t\tel.classList.remove('center-to-left', 'right-to-center', 'reverse', 'active');\n\t\t});\n\t});\n\n\telModalLayers.forEach((elModalLayer) => {\n\t\telModalLayer.querySelector(`:scope > [data-view-page=\"${pageName}\"]`)?.classList.add('active');\n\t});\n\n\treturn true;\n};\n\n/**\n * Закрыть диалоговое окно\n */\nconst close = function (dialogId: string) {\n\tconst elDialog = getElDialogById(dialogId);\n\tif (!elDialog) return;\n\n\tconst $dialog = $(elDialog);\n\n\tif (!$dialog.dialog('instance')) return;\n\n\t$dialog.dialog('close');\n};\n\n/**\n * Управление props.isLoading\n */\nconst setLoading = (elPages: ElTopDialogPage[] | JQuery<ElTopDialogPage>, isLoading: boolean, duration?: number) => {\n\tif (isElJQuery(elPages)) elPages = elPages.toArray(); // todo: убрать после переписки jquery на сайте\n\n\tconst elPagesVisibleds = elPages.reduce<ElTopDialogPage[]>((acc, elPage) => {\n\t\tif (elPage.hasAttribute('data-view-page') && isVisible(elPage)) acc.push(elPage);\n\n\t\treturn acc;\n\t}, []);\n\n\tif (isLoading) {\n\t\tif (duration !== undefined) {\n\t\t\telPagesVisibleds.forEach((elPagesVisibled) => {\n\t\t\t\telPagesVisibled.style.setProperty('--dialog-loading-duration', duration + 's');\n\t\t\t});\n\t\t}\n\n\t\telPagesVisibleds.forEach((elPagesVisibled) => {\n\t\t\telPagesVisibled.classList.add('i-load-data');\n\t\t});\n\t} else {\n\t\telPagesVisibleds.forEach((elPagesVisibled) => {\n\t\t\telPagesVisibled.classList.remove('i-load-data');\n\t\t});\n\n\t\telPagesVisibleds.forEach((elPagesVisibled) => {\n\t\t\telPagesVisibled.style.setProperty('--dialog-loading-duration', '10s');\n\t\t});\n\t}\n};\n\nconst isLoading = (elPage: ElTopDialogPage | JQuery<ElTopDialogPage>) => {\n\tif (isElJQuery(elPage)) elPage = elPage?.[0]; // todo: убрать после переписки jquery на сайте\n\n\treturn elPage.classList.contains('i-load-data');\n};\n\nexport const TopDialogUtils = {\n\tgetElDialogById,\n\tupdatePageVue,\n\trecalcPositions,\n\ttoViewDirty,\n\ttoView,\n\ttoViewPage,\n\ttoPrevPage,\n\tsetLoading,\n\tisLoading,\n\tinAnimation,\n\tclose,\n};\n\ninit();\n"],"names":["inited","initDialogGlobalEvents","el","querySelectorVisible","elDialogs","querySelectorAllArray","elDialog","isVisible","toView","TopDialogUtils","viewNameAndPageLink","viewName","pageLink","elToPages","hash","TopDialogWorker","historySetState","elForm","eventTarget","elSubmitButton","event","elDialogWrapperWithTopZIndex","topZIndex","elDialogWrapper","zIndex","Core","css","cssM","cssPC","cssModern","cssModernPC","timerClearAnimation","isInited","isElJQuery","init","onCreate","onOpen","onClose","$dialog","genVueOptions","options","getElDialogById","id","updatePageVue","dialogId","pageName","pageNameNext","dialog","getDialogWorker","nextTick","waitWhile","elDialogBody","connectScrollShadow","initPopup","_e","$popup","elPopup","w1","scrollBarWidth","recalcPositions","hashData","setHashs","toViewDirty","toViewPageName","moveDirection","toViewParts","argsString","args","viewNameOrElDialog","callback","resolve","_reject","timer","toViewPage","stopAnimations","sleep","elModalLayers","elCurrentPages","acc","elModalLayer","elCurrentPage","elNextPages","elNextPage","beforeOpenViewPage","afterOpenViewPage","TopPopupWorker","elActive","delay","toPrevPage","prevPageName","elPrevPage","beforeOpenViewPageTimers","elPages","eventKey","inAnimation","close","setLoading","isLoading","duration","elPagesVisibleds","elPage","elPagesVisibled"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as n, mergeModels as d, useModel as p, createBlock as i, openBlock as r, mergeProps as m } from "vue";
|
|
2
|
-
import { _ as u } from "./forms-
|
|
2
|
+
import { _ as u } from "./forms-BAUgA7Ct.es.js";
|
|
3
3
|
const f = /* @__PURE__ */ n({
|
|
4
4
|
__name: "widgetInput",
|
|
5
5
|
props: /* @__PURE__ */ d({
|
|
@@ -36,4 +36,4 @@ const f = /* @__PURE__ */ n({
|
|
|
36
36
|
export {
|
|
37
37
|
f as _
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=widgetInput.vue_vue_type_script_setup_true_lang-
|
|
39
|
+
//# sourceMappingURL=widgetInput.vue_vue_type_script_setup_true_lang-Brs-RxDI.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgetInput.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"widgetInput.vue_vue_type_script_setup_true_lang-Brs-RxDI.es.js","sources":["../../src/components/popup/popup/widgetInput/widgetInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ModelRef } from 'vue';\nimport type { Props } from '@/components/forms/input/types';\nimport TopInput from '@/components/forms/input/input.vue';\n\nwithDefaults(defineProps<Props>(), {\n\taddCleaner: true,\n});\n\nconst model: ModelRef<string> = defineModel({\n\tdefault: '',\n});\n</script>\n\n<template>\n\t<TopInput\n\t\t:=\"$props\"\n\t\tmodificator=\"popupWidgetInput\"\n\t\tv-model=\"model\"\n\t/>\n</template>\n\n<style>\n.top-input-popupWidgetInput {\n\t--top-loadbar-color: var(--color-line-2);\n\n\twidth: 100%;\n}\n\n.top-input_input-popupWidgetInput {\n\tborder: none;\n\tbackground: var(--color-layer-1);\n}\n\n.top-input_input-popupWidgetInput:hover {\n\tbackground: var(--color-layer-2);\n}\n\n.top-input_input-popupWidgetInput:focus {\n\tbackground: var(--color-layer-1);\n\toutline: unset;\n}\n</style>\n"],"names":["model","_useModel","_createBlock","TopInput","_mergeProps","_ctx","$event"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAMA,IAA0BC,iBAE/B;2BAIAC,EAIEC,GAJFC,EAIEC,EAAA,QAHQ;AAAA,MACT,aAAY;AAAA,kBACHL,EAAA;AAAA,oDAAAA,EAAK,QAAAM;AAAA,IAAA;;;"}
|
package/charts/charts.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
_autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
|
|
5
5
|
|
|
6
6
|
import { defineComponent as T, mergeModels as $, useModel as _, computed as C, createElementBlock as s, openBlock as i, normalizeClass as f, createElementVNode as r, createCommentVNode as H, toDisplayString as g, Fragment as I, renderList as k, normalizeStyle as B, unref as S, ref as V, watch as w, onMounted as E, onUnmounted as F, renderSlot as P, createBlock as R, Teleport as z } from "vue";
|
|
7
|
-
import { c as G } from "../.chunks/forms-
|
|
7
|
+
import { c as G } from "../.chunks/forms-BAUgA7Ct.es.js";
|
|
8
8
|
import { percentOfNumber as D } from "../utils/number.js";
|
|
9
9
|
const N = 90, x = 10, O = ["data-top-icon"], X = { class: "top-miniChart_chart" }, A = ["onMouseenter"], U = { class: "top-miniChart_data" }, W = { class: "top-miniChart_dataValue" }, Y = ["innerHTML"], Z = /* @__PURE__ */ T({
|
|
10
10
|
__name: "miniChart",
|
package/core/app.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-B_v2vU59.amd","../.chunks/core-
|
|
1
|
+
define(["require","exports","../.chunks/forms-B_v2vU59.amd","../.chunks/core-DJS4o9Vt.amd","vue","../utils/clipboard.amd","../utils/string.amd","../utils/route.amd","../.chunks/utils-DNzj9OOY.amd","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-B3hYoW1m.amd"],(function(E,n,r,g,c,p,f,d,u,m){"use strict";if(typeof c>"u")var c=window.Vue;class S{#s;#t;#e;#a;#c;#i=[];#o=[];#n=[];#r=[];constructor(t){this.#t=t.store,this.#s=this.#t.$id,this.#e=t.options.Page,this.#a=t.options.user,this.#c=t.options.Api,this.#i=t.options.tpaNamesUrlHash||[],this.#o=t.options.tpaNamesStorage||[],this.#n=t.options.tpaNamesStorageLocal||[],this.#r=t.options.tpaNamesGuestLink||[],t.store.genGuestLink=(s,a)=>this.genGuestLink(s,a),this.#a.guest_data?.data||(this.#u(),this.#u(!0),this.#f()),this.#S(),this.#k();const e=r.debounce(()=>{this.#m(),this.#l(),this.#l(!0)});t.store.$subscribe(e)}async genGuestLink(t,e){const s=this.#g();e=Object.assign(e,Object.fromEntries(s));const a=await this.#c.gen(t).setParams(e).call();if(a?.errors)return;const i=a.result;await p.guestLinkToClipboard(i)}#g(){const t=new Map;return this.#r.forEach(e=>{const s=f.camelToSnakeCase(e);t.set(s,this.#t[e])}),t}#h(t){t.forEach((e,s)=>{const a=this.#t[s];if(e!=null&&a!==void 0&&e?.constructor&&e.constructor===a.constructor){if(s.indexOf("date")===0&&!Array.isArray(e)){if(typeof e=="string"&&!/\d\d\d\d-\d\d-\d\d/.test(e))return}this.#t[s]=e}})}#p(t){const e=new Map;return t.forEach((s,a)=>{s!==null&&(s=JSON.stringify(s),e.set(a,s))}),e}#d(t){const e=new Map;return t.forEach((s,a)=>{if(!(s==null||s==="false")){try{if(typeof s=="string"&&!/^\d\d\d\d-\d\d-\d\d$/.test(s)&&(s=JSON.parse(s)),s==null||s==="false")return}catch{}e.set(a,s)}}),e}#f(){let t;try{t=JSON.parse(d.getHash(this.#s))}catch{}if(!t)return;const e=new Map;this.#i.forEach(s=>{const a=t[s];a&&e.set(s,a)}),this.#h(e)}#m(){const t=new Map;this.#i.forEach(a=>{const i=this.#t[a];t.set(a,i)});const e=Object.fromEntries(t),s=JSON.stringify(e);d.setHash(this.#s,s)}#u(t=!1){const e=new Map;let s=this.#o,a="state:"+this.#s;t&&(s=this.#n,a="state:"+this.#s+":"+location.pathname),s.forEach(o=>{const h=localStorage.getItem(a+":"+o);e.set(o,h)});const i=this.#d(e);this.#h(i)}#l(t=!1){const e=new Map;let s=this.#o,a="state:"+this.#s;t&&(s=this.#n,a="state:"+this.#s+":"+location.pathname),s.forEach(o=>{const h=this.#t[o];e.set(o,h)});const i=this.#p(e);s.forEach(o=>{const h=i.get(o);localStorage.setItem(a+":"+o,h)})}#S(){const t=this.#a?.guest_data?.data;if(!t)return;this.#a.id===-1&&(this.#a.positionsReverseDates=t.positionsReverseDates);const e=new Map;this.#r.forEach(i=>{const o=t[i];e.set(i,o)});const s=this.#d(e);this.#h(s);const a=$(".mod_guest_title");if(this.#t.competitorsIds?.length===1&&this.#e.page.data.competitors){let i=this.#e.page.data.competitors.filter(o=>o.id===t.competitorsIds[0]);i.length&&($("a",a).attr("href","http://"+i[0].url),$("a",a).text(i[0].name))}}#k(){this.#t.regionsIndexes&&c.watch(this.#t.regionsIndexes,t=>{if(!t.length)return;t.forEach((a,i)=>t[i]=a);const e=TplProjectSelectorRegion.genSearchersMap(),s=[];e.forEach(a=>{a.regions.forEach(i=>{i.index!==-1&&s.push(i.index)})}),this.#t.regionsIndexes=t.filter(a=>s.includes(a))},{immediate:!0}),this.#t.competitorsIds&&c.watch(this.#t.competitorsIds,t=>{if(!t.length)return;t.forEach((s,a)=>t[a]=s);const e=[this.#e.page.data.project.id];this.#e.page.data.project.competitors.forEach(s=>{s.on>=0&&e.push(s.id)}),this.#t.competitorsIds=t.filter(s=>e.includes(s))},{immediate:!0})}}const k=l=>{const t=l;!t.options.tpaNamesUrlHash?.length&&!t.options.tpaNamesStorage?.length&&!t.options.tpaNamesStorageLocal?.length&&!t.options.tpaNamesGuestLink?.length||new S(t)};n.Core=r.Core,n.i18nPlugin=r.i18n,n.useI18n=r.useI18n,n.useI18nLang=r.useI18nLang,n.corePlugin=g.core,n.useAsyncTopDialog=u.useAsyncTopDialog,n.useTopDialog=u.useTopDialog,n.TopDialogWorker=m.TopDialogWorker,n.piniaTPAPlugin=k,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=app.amd.js.map
|
package/core/app.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { d as c } from "../.chunks/forms-
|
|
2
|
-
import { C as O, i as P, u as I, a as T } from "../.chunks/forms-
|
|
3
|
-
import { c as y } from "../.chunks/core-
|
|
1
|
+
import { d as c } from "../.chunks/forms-BAUgA7Ct.es.js";
|
|
2
|
+
import { C as O, i as P, u as I, a as T } from "../.chunks/forms-BAUgA7Ct.es.js";
|
|
3
|
+
import { c as y } from "../.chunks/core-BE_-rKvW.es.js";
|
|
4
4
|
import { watch as h } from "vue";
|
|
5
5
|
import { guestLinkToClipboard as p } from "../utils/clipboard.js";
|
|
6
6
|
import { camelToSnakeCase as d } from "../utils/string.js";
|
|
7
7
|
import { getHash as f, setHash as g } from "../utils/route.js";
|
|
8
|
-
import { u as G, a as M } from "../.chunks/utils-
|
|
9
|
-
import { T as D } from "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-
|
|
8
|
+
import { u as G, a as M } from "../.chunks/utils-BYaZxGC1.es.js";
|
|
9
|
+
import { T as D } from "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-DMhcuiHP.es.js";
|
|
10
10
|
class l {
|
|
11
11
|
#s;
|
|
12
12
|
#t;
|
package/dialog/dialog.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _ as k, a as B } from "../.chunks/page.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as k, a as B } from "../.chunks/page.vue_vue_type_script_setup_true_lang-BMTt9SU8.es.js";
|
|
2
2
|
import { defineComponent as l, ref as i, onUpdated as u, createBlock as t, openBlock as m, KeepAlive as c, createCommentVNode as s, unref as d, resolveDynamicComponent as g, mergeProps as f } from "vue";
|
|
3
|
-
import { b as v } from "../.chunks/utils-
|
|
3
|
+
import { b as v } from "../.chunks/utils-BYaZxGC1.es.js";
|
|
4
4
|
const C = {
|
|
5
5
|
name: {
|
|
6
6
|
type: String,
|
package/forms/forms.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m as p, e as T, Q as s, h as t, n as e, f as r, _ as n, o as i, p as l, T as u, s as b, j as c, q as d, r as h, g as x } from "../.chunks/forms-BAUgA7Ct.es.js";
|
|
2
2
|
export {
|
|
3
3
|
p as TopAvatar,
|
|
4
4
|
T as TopButton,
|
|
@@ -7,8 +7,8 @@ export {
|
|
|
7
7
|
e as TopControlLabel,
|
|
8
8
|
r as TopHint,
|
|
9
9
|
n as TopInput,
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
i as TopInputDate,
|
|
11
|
+
l as TopInputRange,
|
|
12
12
|
u as TopLoadbar,
|
|
13
13
|
b as TopPreloader,
|
|
14
14
|
c as TopRadio,
|
package/formsExt/formsExt.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","../.chunks/forms-B_v2vU59.amd","../.chunks/policy.vue_vue_type_style_index_0_lang-Dgb5Q7Hx.amd"],(function(z,d,e,m,f){"use strict";if(typeof e>"u")var e=window.Vue;const y={class:"top-editArea_footer"},k=e.defineComponent({__name:"editArea",props:{defaultValue:{default:""},title:{},cancelText:{default:"Cancel"},submitText:{default:"Send"},closeText:{default:"Close"},isFocused:{type:Boolean},forceShowCloseBtn:{type:Boolean},attachToKeyboard:{type:Boolean},modelValue:{},name:{},placeholder:{},styling:{},rows:{},minHeight:{},expandable:{type:Boolean,default:!0},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{},maxLength:{}},emits:["submit","close","clickOnTitle"],setup(t,{emit:o}){const l=t,n=o,i=e.ref(l.defaultValue),
|
|
1
|
+
define(["require","exports","vue","../.chunks/forms-B_v2vU59.amd","../.chunks/policy.vue_vue_type_style_index_0_lang-Dgb5Q7Hx.amd"],(function(z,d,e,m,f){"use strict";if(typeof e>"u")var e=window.Vue;const y={class:"top-editArea_footer"},k=e.defineComponent({__name:"editArea",props:{defaultValue:{default:""},title:{},cancelText:{default:"Cancel"},submitText:{default:"Send"},closeText:{default:"Close"},isFocused:{type:Boolean},forceShowCloseBtn:{type:Boolean},attachToKeyboard:{type:Boolean},modelValue:{},name:{},placeholder:{},styling:{},rows:{},minHeight:{},expandable:{type:Boolean,default:!0},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{},maxLength:{}},emits:["submit","close","clickOnTitle"],setup(t,{emit:o}){const l=t,n=o,i=e.ref(l.defaultValue),s=e.ref(l.isFocused),r=e.computed(()=>i.value!==l.defaultValue),a=p=>{n("submit",p),i.value=l.defaultValue},c=()=>{if(l.forceShowCloseBtn&&!r.value){n("close");return}i.value=l.defaultValue},N=()=>{l.attachToKeyboard&&n("clickOnTitle")};return(p,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-editArea":!0,"top-editArea-attachedToKeyboard":t.attachToKeyboard})},[t.title||p.$slots.caption?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-editArea_caption",onClick:u[0]||(u[0]=v=>N())},[e.renderSlot(p.$slots,"caption",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass({"top-editArea_form":!0,"top-forms-focusable":!0,"top-as-input":!0,"top-error":t.isError,"top-focus":s.value})},[e.createVNode(m._sfc_main$3,{modelValue:i.value,"onUpdate:modelValue":u[1]||(u[1]=v=>i.value=v),name:t.name,placeholder:t.placeholder,rows:t.rows,minHeight:t.minHeight,expandable:t.expandable,disabled:t.disabled,readonly:t.readonly,isError:t.isError,hint:t.hint,class:"top-editArea_element",onFocus:u[2]||(u[2]=()=>s.value=!0),onBlur:u[3]||(u[3]=()=>s.value=!1),onKeyup:[e.withKeys(c,["esc"]),u[4]||(u[4]=e.withKeys(e.withModifiers(v=>a(i.value),["ctrl"]),["enter"]))]},null,8,["modelValue","name","placeholder","rows","minHeight","expandable","disabled","readonly","isError","hint"]),e.createElementVNode("div",y,[r.value||t.forceShowCloseBtn?(e.openBlock(),e.createBlock(m._sfc_main$1,{key:0,icon:p.$core.state.isMobile?"":"",class:"top-editArea_button",color:"theme",styling:"soft",onClick:c},e.createSlots({_:2},[p.$core.state.isMobile?void 0:{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelText),1)]),key:"0"}]),1032,["icon"])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(m._sfc_main$1,{key:1,class:"top-editArea_button",icon:p.$core.state.isMobile?"":"",onClick:u[5]||(u[5]=v=>a(i.value))},e.createSlots({_:2},[p.$core.state.isMobile?void 0:{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.submitText),1)]),key:"0"}]),1032,["icon"])):e.createCommentVNode("",!0)])],2)],2))}}),B={class:"top-editInput"},h=e.defineComponent({__name:"editInput",props:{modelValue:{},input:{},button:{}},emits:["update:modelValue"],setup(t,{emit:o}){const l=t,n=e.ref(l.modelValue);e.watch(e.toRef(l.modelValue),()=>{n.value=l.modelValue});const i=o,s=()=>{i("update:modelValue",n.value)};return(r,a)=>(e.openBlock(),e.createElementBlock("div",B,[e.createVNode(m._sfc_main,e.mergeProps(t.input,{onKeydownCapture:a[0]||(a[0]=e.withKeys(e.withModifiers(c=>n.value=t.modelValue,["stop"]),["esc"])),onKeydown:e.withKeys(e.withModifiers(s,["stop"]),["enter"]),modelValue:n.value,"onUpdate:modelValue":a[1]||(a[1]=c=>n.value=c)}),e.createSlots({_:2},[r.$slots.caption?{name:"caption",fn:e.withCtx(()=>[e.renderSlot(r.$slots,"caption")]),key:"0"}:void 0]),1040,["onKeydown","modelValue"]),n.value!==t.modelValue?(e.openBlock(),e.createBlock(m._sfc_main$1,e.mergeProps({key:0,icon:"",styling:"soft"},t.button,{onClick:s}),null,16)):e.createCommentVNode("",!0)]))}}),V=e.defineComponent({__name:"optionGroup",props:e.mergeModels({modelValue:{},items:{},size:{default:"s"},showIndicator:{type:Boolean},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=e.useModel(t,"modelValue"),l=t,n=e.ref(null);e.watch(o,()=>{const s=l.items.map(r=>r.value);Array.isArray(o.value)?o.value.find(a=>!s.includes(a))&&(o.value=o.value.filter(a=>s.includes(a))):s.includes(o.value)||(o.value=s[0]??""),n.value?.querySelector(".radioGroup_item-selected")?.scrollIntoView()},{immediate:!0});const i="optionGroup-"+Math.random();return(s,r)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"elRef",ref:n,class:e.normalizeClass({"top-optionGroup":!0,["top-optionGroup-showIndicator_"+Number(t.showIndicator)]:!0,"top-scrollBarXHidding":!0,["top-size_"+t.size]:!!t.size,"top-error":t.isError})},[Array.isArray(o.value)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.items,a=>(e.openBlock(),e.createBlock(m._sfc_main$4,{class:e.normalizeClass({"top-optionGroup_item-selected":o.value.includes(a.value),"top-optionGroup_item":!0}),modelValue:o.value,"onUpdate:modelValue":r[0]||(r[0]=c=>o.value=c),value:a.value,title:a.title,disabled:a.disabled,isError:t.isError,"data-top-icon":a.icon},e.createSlots({_:2},[a.label?{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.label),1)]),key:"0"}:void 0]),1032,["class","modelValue","value","title","disabled","isError","data-top-icon"]))),256)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(t.items,a=>(e.openBlock(),e.createBlock(m._sfc_main$5,{class:e.normalizeClass({"top-optionGroup_item-selected":a.value===o.value,"top-optionGroup_item":!0}),modelValue:o.value,"onUpdate:modelValue":r[1]||(r[1]=c=>o.value=c),name:i,value:a.value,title:a.title,disabled:a.disabled,isError:t.isError,"data-top-icon":a.icon},e.createSlots({_:2},[a.label?{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.label),1)]),key:"0"}:void 0]),1032,["class","modelValue","value","title","disabled","isError","data-top-icon"]))),256))],2))}}),b=e.defineComponent({__name:"radioGroup",props:e.mergeModels({modelValue:{},items:{},size:{},showIndicator:{type:Boolean},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=e.useModel(t,"modelValue");return(l,n)=>(e.openBlock(),e.createBlock(V,{class:"top-radioGroup",modelValue:o.value,"onUpdate:modelValue":n[0]||(n[0]=i=>o.value=i),items:l.$props.items,size:l.$props.size,showIndicator:l.$props.showIndicator,isError:l.$props.isError},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["modelValue","items","size","showIndicator","isError"]))}}),$=e.defineComponent({__name:"checkboxGroup",props:e.mergeModels({modelValue:{},items:{},size:{},showIndicator:{type:Boolean},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=e.useModel(t,"modelValue");return(l,n)=>(e.openBlock(),e.createBlock(V,{class:"top-checkboxGroup",modelValue:o.value,"onUpdate:modelValue":n[0]||(n[0]=i=>o.value=i),items:l.$props.items,size:l.$props.size,showIndicator:l.$props.showIndicator,isError:l.$props.isError},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["modelValue","items","size","showIndicator","isError"]))}}),E=["data-top-icon"],w={class:"top-info_text"},C={key:0,class:"top-info_value"},T=e.defineComponent({__name:"info",props:{icon:{},styling:{default:"default"},size:{default:"default"}},setup(t){return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-info":!0,["top-size_"+t.size]:!0,["top-info-styling_"+t.styling]:!0}),"data-top-icon":t.icon},[e.createElementVNode("div",w,[e.renderSlot(o.$slots,"default")]),o.$slots.additional?(e.openBlock(),e.createElementBlock("span",C,[e.renderSlot(o.$slots,"additional")])):e.createCommentVNode("",!0)],10,E))}}),S={key:0,class:"top-policy"},g={class:"top-policy_title"},I=["innerHTML"],M=e.defineComponent({__name:"policy",props:{title:{},description:{},acceptText:{}},emits:["accept"],setup(t,{emit:o}){const l=o,n=e.ref(!0),i=()=>{n.value=!1,l("accept")};return(s,r)=>n.value?(e.openBlock(),e.createElementBlock("div",S,[e.createElementVNode("div",g,e.toDisplayString(t.title),1),e.createElementVNode("div",{class:"top-policy_description",innerHTML:t.description},null,8,I),e.createVNode(e.unref(m._sfc_main$1),{size:"m",onClick:i},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.acceptText),1)]),_:1})])):e.createCommentVNode("",!0)}});d.ITEM_ID_ALL=f.ITEM_ID_ALL,d.ITEM_ID_NEW=f.ITEM_ID_NEW,d.TopMenu=f._sfc_main$1,d.TopSelector2=f._sfc_main,d.apiSetSearchParamsFilter=f.apiSetSearchParamsFilter,d.TopCheckboxGroup=$,d.TopEditArea=k,d.TopEditInput=h,d.TopInfo=T,d.TopPolicy=M,d.TopRadioGroup=b,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=formsExt.amd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formsExt.amd.js","sources":["../../src/components/formsExt/editArea/editArea.vue","../../src/components/formsExt/editInput/editInput.vue","../../src/components/formsExt/libs/optionGroup/optionGroup.vue","../../src/components/formsExt/radioGroup/radioGroup.vue","../../src/components/formsExt/checkboxGroup/checkboxGroup.vue","../../src/components/formsExt/info/info.vue","../../src/components/formsExt/policy/policy.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport Button from '@/components/forms/button/button.vue';\nimport type { Emits, Props, Slots } from './types';\nimport Textarea from '@/components/forms/textarea/textarea.vue';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tdefaultValue: '',\n\tcancelText: 'Cancel',\n\tsubmitText: 'Send',\n\tcloseText: 'Close',\n\texpandable: true,\n});\n\ndefineSlots<Slots>();\nconst emit = defineEmits<Emits>();\n\nconst localValue = ref(props.defaultValue);\n\nconst isFocused = ref(props.isFocused);\n\nconst isChanged = computed(() => localValue.value !== props.defaultValue);\n\nconst submit = (value: string) => {\n\temit('submit', value);\n\n\tlocalValue.value = props.defaultValue;\n};\n\nconst cancel = () => {\n\tif (props.forceShowCloseBtn && !isChanged.value) {\n\t\temit('close');\n\n\t\treturn;\n\t}\n\n\tlocalValue.value = props.defaultValue;\n};\n\nconst clickOnTitle = () => {\n\tif (props.attachToKeyboard) emit('clickOnTitle');\n};\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-editArea': true,\n\t\t\t'top-editArea-attachedToKeyboard': attachToKeyboard,\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tv-if=\"title || $slots.caption\"\n\t\t\tclass=\"top-editArea_caption\"\n\t\t\t@click=\"clickOnTitle()\"\n\t\t>\n\t\t\t<slot name=\"caption\">\n\t\t\t\t{{ title }}\n\t\t\t</slot>\n\t\t</div>\n\n\t\t<div\n\t\t\t:class=\"{\n\t\t\t\t'top-editArea_form': true,\n\t\t\t\t'top-forms-focusable': true,\n\t\t\t\t'top-as-input': true,\n\t\t\t\t'top-error': isError,\n\t\t\t\t'top-focus': isFocused,\n\t\t\t}\"\n\t\t>\n\t\t\t<Textarea\n\t\t\t\tv-model=\"localValue\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:rows=\"rows\"\n\t\t\t\t:minHeight=\"minHeight\"\n\t\t\t\t:expandable=\"expandable\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:isError=\"isError\"\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-editArea_element\"\n\t\t\t\t@focus=\"() => isFocused = true\"\n\t\t\t\t@blur=\"() => isFocused = false\"\n\t\t\t\t@keyup.esc=\"cancel\"\n\t\t\t\t@keyup.ctrl.enter=\"submit(localValue)\"\n\t\t\t/>\n\n\t\t\t<div class=\"top-editArea_footer\">\n\t\t\t\t<Button\n\t\t\t\t\tv-if=\"isChanged || forceShowCloseBtn\"\n\t\t\t\t\t:icon=\"$core.state.isMobile ? '': ''\"\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\tstyling=\"soft\"\n\t\t\t\t\t@click=\"cancel\"\n\t\t\t\t>\n\t\t\t\t\t<template\n\t\t\t\t\t\t#default\n\t\t\t\t\t\tv-if=\"!$core.state.isMobile\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ cancelText }}\n\t\t\t\t\t</template>\n\t\t\t\t</Button>\n\n\t\t\t\t<Button\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\tv-if=\"isChanged\"\n\t\t\t\t\t:icon=\"$core.state.isMobile ? '': ''\"\n\t\t\t\t\t@click=\"submit(localValue)\"\n\t\t\t\t>\n\t\t\t\t\t<template\n\t\t\t\t\t\t#default\n\t\t\t\t\t\tv-if=\"!$core.state.isMobile\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ submitText }}\n\t\t\t\t\t</template>\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n.top-editArea {\n\t--top-editArea-bottom: env(keyboard-inset-height, 0px);\n\t--top-editArea-offset-bottom: 0px;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n.top-editArea_caption {\n\tfont-size: 12px;\n}\n\n.top-editArea_form {\n\tflex-direction: column;\n}\n\n/* textarea в EditArea */\n.top-textarea {\n\twidth: 100%;\n}\n\n.top-editArea_element.top-textarea_textarea {\n\t--top-forms-border-width: 0px;\n\n\toutline: none;\n\tanimation: none;\n}\n\n/* footer */\n.top-editArea_footer {\n\tpadding: var(--top-forms-padding);\n\tdisplay: flex;\n\tmin-height: 32px;\n\talign-self: flex-end;\n\tjustify-content: flex-end;\n\tgap: var(--top-forms-padding);\n}\n\n/* attachedToKeyboard */\n.top-editArea-attachedToKeyboard {\n\tbackground: var(--top-forms-background-color);\n\tposition: fixed;\n\tbottom: calc(var(--top-editArea-offset-bottom) + var(--top-editArea-bottom));\n\tright: 0;\n\tleft: 0;\n\tz-index: 2;\n\tgap: 0;\n\ttransition: bottom var(--transition-fast);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_form {\n\tborder-radius: 0;\n\tborder: none;\n\tborder-top: 1px solid var(--top-forms-border-color);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_title {\n\tcursor: pointer;\n\tborder-top: 1px solid var(--color-line-2-opacity);\n\tpadding: var(--top-forms-padding);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_footer > [data-top-icon] {\n\tborder-radius: 100%;\n}\n\n@media screen and (max-width: 900px) {\n\t.top-editArea_form {\n\t\tflex-direction: row;\n\t}\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, toRef, watch } from 'vue';\nimport type { Emits, Props } from './types';\nimport TopInput from '@/components/forms/input/input.vue';\nimport TopButton from '@/components/forms/button/button.vue';\n\nconst props = defineProps<Props>();\n\nconst intermediateValue = ref(props.modelValue);\n\nwatch(toRef(props.modelValue), () => {\n\tintermediateValue.value = props.modelValue;\n});\n\nconst emit = defineEmits<Emits>();\n\nconst submit = () => {\n\temit('update:modelValue', intermediateValue.value);\n};\n</script>\n\n<template>\n\t<div class=\"top-editInput\">\n\t\t<TopInput\n\t\t\t:=\"input\"\n\t\t\t@keydown.esc.capture.stop=\"intermediateValue = modelValue\"\n\t\t\t@keydown.enter.stop=\"submit\"\n\t\t\tv-model=\"intermediateValue\"\n\t\t/>\n\n\t\t<TopButton\n\t\t\tv-if=\"intermediateValue !== modelValue\"\n\t\t\ticon=\"\"\n\t\t\tstyling=\"soft\"\n\t\t\t:=\"button\"\n\t\t\t@click=\"submit\"\n\t\t/>\n\t</div>\n</template>\n\n<style>\n.top-editInput {\n\twidth: 220px;\n\tflex-grow: 1;\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: var(--top-gap-1);\n}\n\n.top-editInput .top-input {\n\twidth: unset;\n\tflex-grow: 1;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport type { Props } from './types';\nimport TopCheckbox from '@/components/forms/checkbox/checkbox.vue';\nimport TopRadio from '@/components/forms/radio/radio.vue';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n\tsize: 's',\n});\n\nconst elRef = ref<HTMLElement | null>(null);\n\nwatch(model, () => {\n\tconst valuesAvailable = props.items.map(item => item.value);\n\n\tif (Array.isArray(model.value)) {\n\t\t// есть ли неподдерживаемые значения\n\t\tconst valueIsWrong = model.value.find((value) => {\n\t\t\treturn !valuesAvailable.includes(value);\n\t\t});\n\n\t\tif (valueIsWrong) {\n\t\t\t// оставить только поддерживаемые значения\n\t\t\tmodel.value = model.value.filter((value) => {\n\t\t\t\treturn valuesAvailable.includes(value);\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif (!valuesAvailable.includes(model.value)) {\n\t\t\tmodel.value = valuesAvailable[0] ?? '';\n\t\t}\n\t}\n\n\telRef.value?.querySelector('.radioGroup_item-selected')?.scrollIntoView();\n}, { immediate: true });\n\nconst name = 'optionGroup-' + Math.random();\n</script>\n\n<template>\n\t<div\n\t\tref=\"elRef\"\n\t\t:class=\"{\n\t\t\t['top-optionGroup']: true,\n\t\t\t['top-optionGroup-showIndicator_' + Number(showIndicator)]: true,\n\t\t\t['top-scrollBarXHidding']: true,\n\t\t\t['top-size_' + size]: !!size,\n\t\t\t['top-error']: isError,\n\t\t}\"\n\t>\n\t\t<template v-if=\"Array.isArray(model)\">\n\t\t\t<TopCheckbox\n\t\t\t\t:class=\"{\n\t\t\t\t\t['top-optionGroup_item-selected']: model.includes(item.value),\n\t\t\t\t\t['top-optionGroup_item']: true,\n\t\t\t\t}\"\n\t\t\t\tv-for=\"item of items\"\n\t\t\t\tv-model=\"model\"\n\t\t\t\t:value=\"item.value\"\n\t\t\t\t:title=\"item.title\"\n\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t:isError\n\t\t\t\t:data-top-icon=\"item.icon\"\n\t\t\t>\n\t\t\t\t<template #default v-if=\"item.label\">\n\t\t\t\t\t{{ item.label }}\n\t\t\t\t</template>\n\t\t\t</TopCheckbox>\n\t\t</template>\n\n\t\t<template v-else>\n\t\t\t<TopRadio\n\t\t\t\t:class=\"{\n\t\t\t\t\t['top-optionGroup_item-selected']: item.value === model,\n\t\t\t\t\t['top-optionGroup_item']: true,\n\t\t\t\t}\"\n\t\t\t\tv-for=\"item of items\"\n\t\t\t\tv-model=\"model\"\n\t\t\t\t:name\n\t\t\t\t:value=\"item.value\"\n\t\t\t\t:title=\"item.title\"\n\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t:isError\n\t\t\t\t:data-top-icon=\"item.icon\"\n\t\t\t>\n\t\t\t\t<template #default v-if=\"item.label\">\n\t\t\t\t\t{{ item.label }}\n\t\t\t\t</template>\n\t\t\t</TopRadio>\n\t\t</template>\n\t</div>\n</template>\n\n<style>\n.top-optionGroup {\n\tuser-select: none;\n\tbox-sizing: border-box;\n\tborder-radius: 8px;\n\tbackground-color: var(--color-layout-middle);\n\theight: var(--top-forms-base-height);\n\tpadding: 2px;\n\tgap: 2px;\n\tdisplay: flex;\n\talign-items: flex-start;\n}\n\n.top-optionGroup_item {\n\tcursor: pointer;\n\tbox-sizing: border-box;\n\tborder-radius: 6px;\n\theight: calc(var(--top-forms-base-height) - 4px);\n\tpadding: 1px var(--top-padding-2);\n\tcolor: var(--color-text-2);\n\tfont-weight: 400;\n\twhite-space: nowrap;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-grow: 1;\n\tgap: var(--top-gap-1);\n}\n\n.top-optionGroup_item:hover {\n\tbackground-color: var(--color-layout-front-1);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n.top-optionGroup_item-selected {\n\tcolor: var(--color-text-1);\n\tbackground-color: var(--color-bg-lightning-1);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n.top-optionGroup_item > .top-forms-optionLabel {\n\tflex-grow: 0;\n}\n\n/* indicator */\n.top-optionGroup-showIndicator_0 > .top-optionGroup_item {\n\tjustify-content: center;\n}\n\n.top-optionGroup-showIndicator_0 > .top-optionGroup_item:has(:focus-visible) {\n\toutline: 2px solid var(--color-bg-primary-2);\n\toutline-offset: -1px;\n}\n\n.top-optionGroup-showIndicator_1 > .top-optionGroup_item {\n\tpadding: 1px 3px;\n\tjustify-content: flex-start;\n}\n\n.top-optionGroup-showIndicator_0 > .top-optionGroup_item > .top-forms-option {\n\topacity: 0;\n\twidth: 0;\n\theight: 0;\n\tposition: absolute;\n}\n\n.top-optionGroup_item > .top-forms-option {\n\torder: -1;\n}\n</style>\n","<script setup lang=\"ts\">\nimport OptionGroup from '../libs/optionGroup/optionGroup.vue';\n\nimport type { Props } from './types';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\ndefineProps<Props>();\n</script>\n\n<template>\n\t<OptionGroup\n\t\tclass=\"top-radioGroup\"\n\t\tv-model=\"model\"\n\t\t:items=\"$props.items\"\n\t\t:size=\"$props.size\"\n\t\t:showIndicator=\"$props.showIndicator\"\n\t\t:isError=\"$props.isError\"\n\t>\n\t\t<slot/>\n\t</OptionGroup>\n</template>\n","<script setup lang=\"ts\">\nimport OptionGroup from '../libs/optionGroup/optionGroup.vue';\n\nimport type { Props } from './types';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\ndefineProps<Props>();\n</script>\n\n<template>\n\t<OptionGroup\n\t\tclass=\"top-checkboxGroup\"\n\t\tv-model=\"model\"\n\t\t:items=\"$props.items\"\n\t\t:size=\"$props.size\"\n\t\t:showIndicator=\"$props.showIndicator\"\n\t\t:isError=\"$props.isError\"\n\t>\n\t\t<slot/>\n\t</OptionGroup>\n</template>\n","<script lang=\"ts\" setup>\nimport type { Props, Slots } from './types';\n\nwithDefaults(defineProps<Props>(), {\n\tstyling: 'default',\n\tsize: 'default',\n});\n\ndefineSlots<Slots>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-info']: true,\n\t\t\t['top-size_' + size]: true,\n\t\t\t['top-info-styling_' + styling]: true,\n\t\t}\"\n\t\t:data-top-icon=\"icon\"\n\t>\n\t\t<div class=\"top-info_text\">\n\t\t\t<slot></slot>\n\t\t</div>\n\n\t\t<span v-if=\"$slots.additional\" class=\"top-info_value\">\n\t\t\t<slot name=\"additional\"></slot>\n\t\t</span>\n\t</div>\n</template>\n\n<style>\n.top-info {\n\t--top-icon-width: var(--top-icon-size);\n\n\tborder-radius: var(--top-forms-radius);\n\tbox-sizing: border-box;\n\tmin-height: var(--top-forms-base-height);\n\tpadding: var(--top-padding-1) var(--top-padding-2);\n\tflex-grow: 5;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: var(--top-gap-2);\n}\n\n.top-info_text {\n\tflex-grow: 1;\n}\n\n.top-info_value {\n\tfont-weight: bold;\n}\n\n/* size */\n.top-info.top-size_default {\n\tborder-radius: var(--top-radius-3);\n\tpadding: var(--top-padding-4);\n}\n\n/* styling */\n.top-info-styling_default {\n\t--top-icon-color: var(--color-text-2);\n\n\tbackground: var(--color-layer-1);\n}\n\n.top-info-styling_info {\n\t--top-icon-color: var(--color-text-primary);\n\n\tbackground: var(--color-layer-primary-1);\n}\n\n.top-info-styling_warning {\n\t--top-icon-color: var(--color-text-warning);\n\n\tbackground: var(--color-layer-warning-1);\n}\n\n.top-info-styling_negative {\n\t--top-icon-color: var(--color-text-negative);\n\n\tbackground: var(--color-layer-negative-1);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TopButton } from '@/components/forms/forms';\nimport type { Emits, Props } from '@/components/formsExt/policy/types';\n\ndefineProps<Props>();\nconst emits = defineEmits<Emits>();\n\nconst isVisible = ref(true);\n\nconst onAccept = () => {\n\tisVisible.value = false;\n\n\temits('accept');\n};\n</script>\n\n<template>\n\t<div\n\t\tv-if=\"isVisible\"\n\t\tclass=\"top-policy\"\n\t>\n\t\t<div class=\"top-policy_title\">\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div\n\t\t\tclass=\"top-policy_description\"\n\t\t\tv-html=\"description\"\n\t\t></div>\n\n\t\t<TopButton\n\t\t\tsize=\"m\"\n\t\t\t@click=\"onAccept\"\n\t\t>\n\t\t\t{{ acceptText }}\n\t\t</TopButton>\n\t</div>\n</template>\n\n<style>\n.top-policy {\n\tbox-sizing: border-box;\n\tbox-shadow: var(--top-shadow-b);\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-bg-lightning-1);\n\twidth: 600px;\n\tpadding: var(--top-padding-4);\n\tposition: fixed;\n\tright: var(--top-gap-10);\n\tbottom: var(--top-gap-10);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-4);\n\tz-index: 10000;\n}\n\n.top-policy_title {\n\tfont-size: 24px;\n\tfont-weight: 700;\n}\n\n.top-policy_description {\n\tfont-size: 14px;\n}\n\n@media screen and (max-width: 900px) {\n\t.top-policy {\n\t\twidth: 100%;\n\t\tright: 0;\n\t\tbottom: calc(var(--top-gap-5) + var(--toolbar-height, 0px));\n\t}\n}\n</style>\n"],"names":["isChanged","vue","localValue","props","submit","value","emit","_cache","$event","clickOnTitle","__props","isFocused","cancel","forms","_ctx","intermediateValue","elRef","model","valuesAvailable","item","name","isVisible","_hoisted_2","_hoisted_3","onAccept"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"formsExt.amd.js","sources":["../../src/components/formsExt/editArea/editArea.vue","../../src/components/formsExt/editInput/editInput.vue","../../src/components/formsExt/libs/optionGroup/optionGroup.vue","../../src/components/formsExt/radioGroup/radioGroup.vue","../../src/components/formsExt/checkboxGroup/checkboxGroup.vue","../../src/components/formsExt/info/info.vue","../../src/components/formsExt/policy/policy.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport Button from '@/components/forms/button/button.vue';\nimport type { Emits, Props, Slots } from './types';\nimport Textarea from '@/components/forms/textarea/textarea.vue';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tdefaultValue: '',\n\tcancelText: 'Cancel',\n\tsubmitText: 'Send',\n\tcloseText: 'Close',\n\texpandable: true,\n});\n\ndefineSlots<Slots>();\nconst emit = defineEmits<Emits>();\n\nconst localValue = ref(props.defaultValue);\n\nconst isFocused = ref(props.isFocused);\n\nconst isChanged = computed(() => localValue.value !== props.defaultValue);\n\nconst submit = (value: string) => {\n\temit('submit', value);\n\n\tlocalValue.value = props.defaultValue;\n};\n\nconst cancel = () => {\n\tif (props.forceShowCloseBtn && !isChanged.value) {\n\t\temit('close');\n\n\t\treturn;\n\t}\n\n\tlocalValue.value = props.defaultValue;\n};\n\nconst clickOnTitle = () => {\n\tif (props.attachToKeyboard) emit('clickOnTitle');\n};\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-editArea': true,\n\t\t\t'top-editArea-attachedToKeyboard': attachToKeyboard,\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tv-if=\"title || $slots.caption\"\n\t\t\tclass=\"top-editArea_caption\"\n\t\t\t@click=\"clickOnTitle()\"\n\t\t>\n\t\t\t<slot name=\"caption\">\n\t\t\t\t{{ title }}\n\t\t\t</slot>\n\t\t</div>\n\n\t\t<div\n\t\t\t:class=\"{\n\t\t\t\t'top-editArea_form': true,\n\t\t\t\t'top-forms-focusable': true,\n\t\t\t\t'top-as-input': true,\n\t\t\t\t'top-error': isError,\n\t\t\t\t'top-focus': isFocused,\n\t\t\t}\"\n\t\t>\n\t\t\t<Textarea\n\t\t\t\tv-model=\"localValue\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:rows=\"rows\"\n\t\t\t\t:minHeight=\"minHeight\"\n\t\t\t\t:expandable=\"expandable\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:isError=\"isError\"\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-editArea_element\"\n\t\t\t\t@focus=\"() => isFocused = true\"\n\t\t\t\t@blur=\"() => isFocused = false\"\n\t\t\t\t@keyup.esc=\"cancel\"\n\t\t\t\t@keyup.ctrl.enter=\"submit(localValue)\"\n\t\t\t/>\n\n\t\t\t<div class=\"top-editArea_footer\">\n\t\t\t\t<Button\n\t\t\t\t\tv-if=\"isChanged || forceShowCloseBtn\"\n\t\t\t\t\t:icon=\"$core.state.isMobile ? '': ''\"\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\tstyling=\"soft\"\n\t\t\t\t\t@click=\"cancel\"\n\t\t\t\t>\n\t\t\t\t\t<template\n\t\t\t\t\t\t#default\n\t\t\t\t\t\tv-if=\"!$core.state.isMobile\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ cancelText }}\n\t\t\t\t\t</template>\n\t\t\t\t</Button>\n\n\t\t\t\t<Button\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\tv-if=\"isChanged\"\n\t\t\t\t\t:icon=\"$core.state.isMobile ? '': ''\"\n\t\t\t\t\t@click=\"submit(localValue)\"\n\t\t\t\t>\n\t\t\t\t\t<template\n\t\t\t\t\t\t#default\n\t\t\t\t\t\tv-if=\"!$core.state.isMobile\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ submitText }}\n\t\t\t\t\t</template>\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n.top-editArea {\n\t--top-editArea-bottom: env(keyboard-inset-height, 0px);\n\t--top-editArea-offset-bottom: 0px;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n.top-editArea_caption {\n\tfont-size: 12px;\n}\n\n.top-editArea_form {\n\tflex-direction: column;\n}\n\n/* textarea в EditArea */\n.top-textarea {\n\twidth: 100%;\n}\n\n.top-editArea_element.top-textarea_textarea {\n\t--top-forms-border-width: 0px;\n\n\toutline: none;\n\tanimation: none;\n}\n\n/* footer */\n.top-editArea_footer {\n\tpadding: var(--top-forms-padding);\n\tdisplay: flex;\n\tmin-height: 32px;\n\talign-self: flex-end;\n\tjustify-content: flex-end;\n\tgap: var(--top-forms-padding);\n}\n\n/* attachedToKeyboard */\n.top-editArea-attachedToKeyboard {\n\tbackground: var(--top-forms-background-color);\n\tposition: fixed;\n\tbottom: calc(var(--top-editArea-offset-bottom) + var(--top-editArea-bottom));\n\tright: 0;\n\tleft: 0;\n\tz-index: 2;\n\tgap: 0;\n\ttransition: bottom var(--transition-fast);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_form {\n\tborder-radius: 0;\n\tborder: none;\n\tborder-top: 1px solid var(--top-forms-border-color);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_title {\n\tcursor: pointer;\n\tborder-top: 1px solid var(--color-line-2-opacity);\n\tpadding: var(--top-forms-padding);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_footer > [data-top-icon] {\n\tborder-radius: 100%;\n}\n\n@media screen and (max-width: 900px) {\n\t.top-editArea_form {\n\t\tflex-direction: row;\n\t}\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, toRef, watch } from 'vue';\nimport type { Emits, Props } from './types';\nimport TopInput from '@/components/forms/input/input.vue';\nimport TopButton from '@/components/forms/button/button.vue';\n\nconst props = defineProps<Props>();\n\nconst intermediateValue = ref(props.modelValue);\n\nwatch(toRef(props.modelValue), () => {\n\tintermediateValue.value = props.modelValue;\n});\n\nconst emit = defineEmits<Emits>();\n\nconst submit = () => {\n\temit('update:modelValue', intermediateValue.value);\n};\n</script>\n\n<template>\n\t<div class=\"top-editInput\">\n\t\t<TopInput\n\t\t\t:=\"input\"\n\t\t\t@keydown.esc.capture.stop=\"intermediateValue = modelValue\"\n\t\t\t@keydown.enter.stop=\"submit\"\n\t\t\tv-model=\"intermediateValue\"\n\t\t>\n\t\t\t<template #caption v-if=\"$slots.caption\">\n\t\t\t\t<slot name=\"caption\"></slot>\n\t\t\t</template>\n\t\t</TopInput>\n\n\t\t<TopButton\n\t\t\tv-if=\"intermediateValue !== modelValue\"\n\t\t\ticon=\"\"\n\t\t\tstyling=\"soft\"\n\t\t\t:=\"button\"\n\t\t\t@click=\"submit\"\n\t\t/>\n\t</div>\n</template>\n\n<style>\n.top-editInput {\n\twidth: 220px;\n\tflex-grow: 1;\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: var(--top-gap-1);\n}\n\n.top-editInput .top-input {\n\twidth: unset;\n\tflex-grow: 1;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport type { Props } from './types';\nimport TopCheckbox from '@/components/forms/checkbox/checkbox.vue';\nimport TopRadio from '@/components/forms/radio/radio.vue';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n\tsize: 's',\n});\n\nconst elRef = ref<HTMLElement | null>(null);\n\nwatch(model, () => {\n\tconst valuesAvailable = props.items.map(item => item.value);\n\n\tif (Array.isArray(model.value)) {\n\t\t// есть ли неподдерживаемые значения\n\t\tconst valueIsWrong = model.value.find((value) => {\n\t\t\treturn !valuesAvailable.includes(value);\n\t\t});\n\n\t\tif (valueIsWrong) {\n\t\t\t// оставить только поддерживаемые значения\n\t\t\tmodel.value = model.value.filter((value) => {\n\t\t\t\treturn valuesAvailable.includes(value);\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif (!valuesAvailable.includes(model.value)) {\n\t\t\tmodel.value = valuesAvailable[0] ?? '';\n\t\t}\n\t}\n\n\telRef.value?.querySelector('.radioGroup_item-selected')?.scrollIntoView();\n}, { immediate: true });\n\nconst name = 'optionGroup-' + Math.random();\n</script>\n\n<template>\n\t<div\n\t\tref=\"elRef\"\n\t\t:class=\"{\n\t\t\t['top-optionGroup']: true,\n\t\t\t['top-optionGroup-showIndicator_' + Number(showIndicator)]: true,\n\t\t\t['top-scrollBarXHidding']: true,\n\t\t\t['top-size_' + size]: !!size,\n\t\t\t['top-error']: isError,\n\t\t}\"\n\t>\n\t\t<template v-if=\"Array.isArray(model)\">\n\t\t\t<TopCheckbox\n\t\t\t\t:class=\"{\n\t\t\t\t\t['top-optionGroup_item-selected']: model.includes(item.value),\n\t\t\t\t\t['top-optionGroup_item']: true,\n\t\t\t\t}\"\n\t\t\t\tv-for=\"item of items\"\n\t\t\t\tv-model=\"model\"\n\t\t\t\t:value=\"item.value\"\n\t\t\t\t:title=\"item.title\"\n\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t:isError\n\t\t\t\t:data-top-icon=\"item.icon\"\n\t\t\t>\n\t\t\t\t<template #default v-if=\"item.label\">\n\t\t\t\t\t{{ item.label }}\n\t\t\t\t</template>\n\t\t\t</TopCheckbox>\n\t\t</template>\n\n\t\t<template v-else>\n\t\t\t<TopRadio\n\t\t\t\t:class=\"{\n\t\t\t\t\t['top-optionGroup_item-selected']: item.value === model,\n\t\t\t\t\t['top-optionGroup_item']: true,\n\t\t\t\t}\"\n\t\t\t\tv-for=\"item of items\"\n\t\t\t\tv-model=\"model\"\n\t\t\t\t:name\n\t\t\t\t:value=\"item.value\"\n\t\t\t\t:title=\"item.title\"\n\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t:isError\n\t\t\t\t:data-top-icon=\"item.icon\"\n\t\t\t>\n\t\t\t\t<template #default v-if=\"item.label\">\n\t\t\t\t\t{{ item.label }}\n\t\t\t\t</template>\n\t\t\t</TopRadio>\n\t\t</template>\n\t</div>\n</template>\n\n<style>\n.top-optionGroup {\n\tuser-select: none;\n\tbox-sizing: border-box;\n\tborder-radius: 8px;\n\tbackground-color: var(--color-layout-middle);\n\theight: var(--top-forms-base-height);\n\tpadding: 2px;\n\tgap: 2px;\n\tdisplay: flex;\n\talign-items: flex-start;\n}\n\n.top-optionGroup_item {\n\tcursor: pointer;\n\tbox-sizing: border-box;\n\tborder-radius: 6px;\n\theight: calc(var(--top-forms-base-height) - 4px);\n\tpadding: 1px var(--top-padding-2);\n\tcolor: var(--color-text-2);\n\tfont-weight: 400;\n\twhite-space: nowrap;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-grow: 1;\n\tgap: var(--top-gap-1);\n}\n\n.top-optionGroup_item:hover {\n\tbackground-color: var(--color-layout-front-1);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n.top-optionGroup_item-selected {\n\tcolor: var(--color-text-1);\n\tbackground-color: var(--color-bg-lightning-1);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n.top-optionGroup_item > .top-forms-optionLabel {\n\tflex-grow: 0;\n}\n\n/* indicator */\n.top-optionGroup-showIndicator_0 > .top-optionGroup_item {\n\tjustify-content: center;\n}\n\n.top-optionGroup-showIndicator_0 > .top-optionGroup_item:has(:focus-visible) {\n\toutline: 2px solid var(--color-bg-primary-2);\n\toutline-offset: -1px;\n}\n\n.top-optionGroup-showIndicator_1 > .top-optionGroup_item {\n\tpadding: 1px 3px;\n\tjustify-content: flex-start;\n}\n\n.top-optionGroup-showIndicator_0 > .top-optionGroup_item > .top-forms-option {\n\topacity: 0;\n\twidth: 0;\n\theight: 0;\n\tposition: absolute;\n}\n\n.top-optionGroup_item > .top-forms-option {\n\torder: -1;\n}\n</style>\n","<script setup lang=\"ts\">\nimport OptionGroup from '../libs/optionGroup/optionGroup.vue';\n\nimport type { Props } from './types';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\ndefineProps<Props>();\n</script>\n\n<template>\n\t<OptionGroup\n\t\tclass=\"top-radioGroup\"\n\t\tv-model=\"model\"\n\t\t:items=\"$props.items\"\n\t\t:size=\"$props.size\"\n\t\t:showIndicator=\"$props.showIndicator\"\n\t\t:isError=\"$props.isError\"\n\t>\n\t\t<slot/>\n\t</OptionGroup>\n</template>\n","<script setup lang=\"ts\">\nimport OptionGroup from '../libs/optionGroup/optionGroup.vue';\n\nimport type { Props } from './types';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\ndefineProps<Props>();\n</script>\n\n<template>\n\t<OptionGroup\n\t\tclass=\"top-checkboxGroup\"\n\t\tv-model=\"model\"\n\t\t:items=\"$props.items\"\n\t\t:size=\"$props.size\"\n\t\t:showIndicator=\"$props.showIndicator\"\n\t\t:isError=\"$props.isError\"\n\t>\n\t\t<slot/>\n\t</OptionGroup>\n</template>\n","<script lang=\"ts\" setup>\nimport type { Props, Slots } from './types';\n\nwithDefaults(defineProps<Props>(), {\n\tstyling: 'default',\n\tsize: 'default',\n});\n\ndefineSlots<Slots>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-info']: true,\n\t\t\t['top-size_' + size]: true,\n\t\t\t['top-info-styling_' + styling]: true,\n\t\t}\"\n\t\t:data-top-icon=\"icon\"\n\t>\n\t\t<div class=\"top-info_text\">\n\t\t\t<slot></slot>\n\t\t</div>\n\n\t\t<span v-if=\"$slots.additional\" class=\"top-info_value\">\n\t\t\t<slot name=\"additional\"></slot>\n\t\t</span>\n\t</div>\n</template>\n\n<style>\n.top-info {\n\t--top-icon-width: var(--top-icon-size);\n\n\tborder-radius: var(--top-forms-radius);\n\tbox-sizing: border-box;\n\tmin-height: var(--top-forms-base-height);\n\tpadding: var(--top-padding-1) var(--top-padding-2);\n\tflex-grow: 5;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: var(--top-gap-2);\n}\n\n.top-info_text {\n\tflex-grow: 1;\n}\n\n.top-info_value {\n\tfont-weight: bold;\n}\n\n/* size */\n.top-info.top-size_default {\n\tborder-radius: var(--top-radius-3);\n\tpadding: var(--top-padding-4);\n}\n\n/* styling */\n.top-info-styling_default {\n\t--top-icon-color: var(--color-text-2);\n\n\tbackground: var(--color-layer-1);\n}\n\n.top-info-styling_info {\n\t--top-icon-color: var(--color-text-primary);\n\n\tbackground: var(--color-layer-primary-1);\n}\n\n.top-info-styling_warning {\n\t--top-icon-color: var(--color-text-warning);\n\n\tbackground: var(--color-layer-warning-1);\n}\n\n.top-info-styling_negative {\n\t--top-icon-color: var(--color-text-negative);\n\n\tbackground: var(--color-layer-negative-1);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TopButton } from '@/components/forms/forms';\nimport type { Emits, Props } from '@/components/formsExt/policy/types';\n\ndefineProps<Props>();\nconst emits = defineEmits<Emits>();\n\nconst isVisible = ref(true);\n\nconst onAccept = () => {\n\tisVisible.value = false;\n\n\temits('accept');\n};\n</script>\n\n<template>\n\t<div\n\t\tv-if=\"isVisible\"\n\t\tclass=\"top-policy\"\n\t>\n\t\t<div class=\"top-policy_title\">\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div\n\t\t\tclass=\"top-policy_description\"\n\t\t\tv-html=\"description\"\n\t\t></div>\n\n\t\t<TopButton\n\t\t\tsize=\"m\"\n\t\t\t@click=\"onAccept\"\n\t\t>\n\t\t\t{{ acceptText }}\n\t\t</TopButton>\n\t</div>\n</template>\n\n<style>\n.top-policy {\n\tbox-sizing: border-box;\n\tbox-shadow: var(--top-shadow-b);\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-bg-lightning-1);\n\twidth: 600px;\n\tpadding: var(--top-padding-4);\n\tposition: fixed;\n\tright: var(--top-gap-10);\n\tbottom: var(--top-gap-10);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-4);\n\tz-index: 10000;\n}\n\n.top-policy_title {\n\tfont-size: 24px;\n\tfont-weight: 700;\n}\n\n.top-policy_description {\n\tfont-size: 14px;\n}\n\n@media screen and (max-width: 900px) {\n\t.top-policy {\n\t\twidth: 100%;\n\t\tright: 0;\n\t\tbottom: calc(var(--top-gap-5) + var(--toolbar-height, 0px));\n\t}\n}\n</style>\n"],"names":["isChanged","vue","localValue","props","submit","value","emit","_cache","$event","clickOnTitle","__props","isFocused","cancel","forms","_ctx","intermediateValue","elRef","model","valuesAvailable","item","name","isVisible","_hoisted_2","_hoisted_3","onAccept"],"mappings":"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"}
|