@topvisor/ui 1.0.18-ux-5 → 1.0.18
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/{datepicker-QG5NqyHa.amd.js → datepicker-DKvr3NYw.amd.js} +2 -2
- package/.chunks/{datepicker-QG5NqyHa.amd.js.map → datepicker-DKvr3NYw.amd.js.map} +1 -1
- package/.chunks/{datepicker-C-QFv8Wm.es.js → datepicker-EJRX31J1.es.js} +2 -2
- package/.chunks/{datepicker-C-QFv8Wm.es.js.map → datepicker-EJRX31J1.es.js.map} +1 -1
- package/.chunks/{forms-DYuU936i.amd.js → forms-CmlWMEyk.amd.js} +3 -3
- package/.chunks/{forms-DYuU936i.amd.js.map → forms-CmlWMEyk.amd.js.map} +1 -1
- package/.chunks/{forms-BeCSWhdZ.es.js → forms-DDIlFXbF.es.js} +748 -799
- package/.chunks/{forms-BeCSWhdZ.es.js.map → forms-DDIlFXbF.es.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-DN-pHrhc.es.js → listItem.vue_vue_type_script_setup_true_lang-3UaZvDrd.es.js} +10 -10
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-DN-pHrhc.es.js.map → listItem.vue_vue_type_script_setup_true_lang-3UaZvDrd.es.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-BC88J71B.amd.js → listItem.vue_vue_type_script_setup_true_lang-CnEbgJbu.amd.js} +2 -2
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CnEbgJbu.amd.js.map +1 -0
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-BNzX8C8v.es.js → menu.vue_vue_type_style_index_0_lang-C4q81rOQ.es.js} +24 -24
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-BNzX8C8v.es.js.map → menu.vue_vue_type_style_index_0_lang-C4q81rOQ.es.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-RE6Dl4Gd.amd.js → menu.vue_vue_type_style_index_0_lang-DcFQyQgs.amd.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-RE6Dl4Gd.amd.js.map → menu.vue_vue_type_style_index_0_lang-DcFQyQgs.amd.js.map} +1 -1
- package/.chunks/{notice-D41sY-7B.amd.js → notice-CYeec0mu.amd.js} +2 -2
- package/.chunks/{notice-D41sY-7B.amd.js.map → notice-CYeec0mu.amd.js.map} +1 -1
- package/.chunks/{notice-zqNsNusv.es.js → notice-CtXmQ8xM.es.js} +2 -2
- package/.chunks/{notice-zqNsNusv.es.js.map → notice-CtXmQ8xM.es.js.map} +1 -1
- package/.chunks/{popup-CnEewIWQ.amd.js → popup-38TbXxcV.amd.js} +2 -2
- package/.chunks/{popup-CnEewIWQ.amd.js.map → popup-38TbXxcV.amd.js.map} +1 -1
- package/.chunks/{popup-CYjUUTBV.es.js → popup-BzCXSDdA.es.js} +2 -2
- package/.chunks/{popup-CYjUUTBV.es.js.map → popup-BzCXSDdA.es.js.map} +1 -1
- package/.chunks/punycode.es6-C2yitnNb.amd.js.map +1 -1
- package/.chunks/punycode.es6-CNI-zL6U.es.js.map +1 -1
- package/.chunks/store-CX_6ZXhO.es.js.map +1 -1
- package/.chunks/store-esTid5oI.amd.js.map +1 -1
- package/.chunks/{utils-Cbdb1gth.es.js → utils-CFCfvsI8.es.js} +61 -61
- package/.chunks/{utils-Cbdb1gth.es.js.map → utils-CFCfvsI8.es.js.map} +1 -1
- package/.chunks/{utils-BBVRN-KU.amd.js → utils-CI9JyH64.amd.js} +2 -2
- package/.chunks/{utils-BBVRN-KU.amd.js.map → utils-CI9JyH64.amd.js.map} +1 -1
- package/.chunks/{utils-DFkcW3nI.es.js → utils-DXI6F7F9.es.js} +78 -78
- package/.chunks/{utils-DFkcW3nI.es.js.map → utils-DXI6F7F9.es.js.map} +1 -1
- package/.chunks/{utils-ByeZ1FPX.amd.js → utils-lvXB5hbW.amd.js} +2 -2
- package/.chunks/{utils-ByeZ1FPX.amd.js.map → utils-lvXB5hbW.amd.js.map} +1 -1
- package/assets/core.css +1 -1
- package/assets/forms.css +1 -1
- package/assets/formsExt.css +1 -1
- package/assets/layout.css +1 -1
- package/charts/charts.amd.js +1 -1
- package/charts/charts.amd.js.map +1 -1
- package/charts/charts.js +1 -1
- package/components/charts/miniChart/miniChart.vue.d.ts +5 -5
- package/components/charts/miniCharts/miniCharts.vue.d.ts +6 -9
- package/components/core/notice/item/item.vue.d.ts +1 -1
- package/components/dialog/dialog/dialog.vue.d.ts +2 -3
- package/components/dialog/dialog/dialogs/dialogs.vue.d.ts +1 -1
- package/components/dialog/dialog/page/page.vue.d.ts +1 -2
- package/components/forms/avatar/avatar.vue.d.ts +1 -1
- package/components/forms/button/button.vue.d.ts +1 -2
- package/components/forms/checkbox/checkbox.vue.d.ts +6 -7
- package/components/forms/controlLabel/controlLabel.vue.d.ts +2 -3
- package/components/forms/hint/hint.vue.d.ts +1 -1
- package/components/forms/input/input.vue.d.ts +1 -2
- package/components/forms/inputDate/inputDate.vue.d.ts +1 -3
- package/components/forms/inputRange/inputRange.vue.d.ts +2 -3
- package/components/forms/loadbar/loadbar.vue.d.ts +1 -1
- package/components/forms/radio/radio.vue.d.ts +2 -3
- package/components/forms/select/select.vue.d.ts +5 -5
- package/components/forms/switcher/switcher.vue.d.ts +2 -3
- package/components/formsExt/editArea/editArea.vue.d.ts +1 -1
- package/components/formsExt/editInput/editInput.vue.d.ts +1 -1
- package/components/formsExt/formsExt.d.ts +0 -2
- package/components/formsExt/info/info.d.ts +20 -0
- package/components/formsExt/menu/menu.vue.d.ts +5 -7
- package/components/formsExt/radioGroup/radioGroup.vue.d.ts +5 -7
- package/components/formsExt/selector2/itemMulti.vue.d.ts +1 -1
- package/components/formsExt/selector2/selector2.vue.d.ts +8 -98
- package/components/layout/islandRows/islandRows.vue.d.ts +2 -3
- package/components/layout/islandRows/islandRowsRow/islandRowsRow.vue.d.ts +2 -3
- package/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue.d.ts +2 -3
- package/components/layout/rows/rows.vue.d.ts +2 -3
- package/components/popup/alert/alert.vue.d.ts +1 -2
- package/components/popup/confirm/confirm.vue.d.ts +1 -2
- package/components/popup/popup/listItem.vue.d.ts +1 -2
- package/components/popup/popup/opener.vue.d.ts +1 -2
- package/components/popup/popup/popup.vue.d.ts +1 -2
- package/components/popup/popup/widgetInput.vue.d.ts +4 -4
- package/components/popup/prompt/prompt.vue.d.ts +1 -2
- package/components/project/selectorCompetitors/selectorCompetitors.vue.d.ts +5 -5
- package/components/project/selectorRegion/selectorRegion.vue.d.ts +7 -7
- package/components/project/tagSelector/popupListItem/tagPopupListItem.vue.d.ts +3 -5
- package/components/project/tagSelector/popupOpener/popupOpener.vue.d.ts +5 -6
- package/components/project/tagSelector/tagIcon/tagIcon.vue.d.ts +1 -1
- package/components/project/tagSelector/tagSelector.vue.d.ts +6 -6
- package/components/tabs/tabs/content.vue.d.ts +2 -3
- package/components/tabs/tabs/tab.vue.d.ts +1 -2
- package/components/tabs/tabs/tabs.vue.d.ts +2 -3
- package/components/tabsView/tabsView/menu.vue.d.ts +6 -9
- package/components/tabsView/tabsView/menuDelimeter.vue.d.ts +1 -1
- package/components/tabsView/tabsView/menuItem.vue.d.ts +1 -2
- package/components/tabsView/tabsView/menuTitle.vue.d.ts +1 -2
- package/components/tabsView/tabsView/store.d.ts +5 -5
- package/components/tabsView/tabsView/tabsView.vue.d.ts +6 -9
- package/core/app.amd.js +1 -1
- package/core/app.amd.js.map +1 -1
- package/core/app.js +127 -148
- package/core/app.js.map +1 -1
- package/core/directives/focus.d.ts +1 -3
- package/core/directives/scrollShadow.d.ts +2 -2
- package/core/utils/scroll.d.ts +0 -18
- package/dialog/dialog.amd.js +1 -1
- package/dialog/dialog.amd.js.map +1 -1
- package/dialog/dialog.js +2 -2
- package/dialog/dialog.js.map +1 -1
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +1 -1
- package/forms/helpers.amd.js.map +1 -1
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +300 -340
- package/formsExt/formsExt.js.map +1 -1
- package/layout/layout.amd.js +1 -1
- package/layout/layout.amd.js.map +1 -1
- package/layout/layout.js +26 -27
- package/layout/layout.js.map +1 -1
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.amd.js.map +1 -1
- package/popup/popup.js +17 -17
- package/popup/worker.amd.js +1 -1
- package/popup/worker.amd.js.map +1 -1
- package/popup/worker.js +2 -2
- package/popup/worker.js.map +1 -1
- package/project/project.amd.js +1 -1
- package/project/project.amd.js.map +1 -1
- package/project/project.js +307 -307
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.amd.js.map +1 -1
- package/tabsView/tabsView.js +37 -37
- package/utils/check.amd.js.map +1 -1
- package/utils/check.js.map +1 -1
- package/utils/clipboard.amd.js +1 -1
- package/utils/clipboard.amd.js.map +1 -1
- package/utils/clipboard.js +1 -1
- package/utils/clipboard.js.map +1 -1
- package/utils/date.amd.js +1 -1
- package/utils/date.js +1 -1
- package/utils/device.amd.js +1 -1
- package/utils/device.js +1 -1
- package/utils/dom.amd.js +1 -1
- package/utils/dom.amd.js.map +1 -1
- package/utils/dom.js +30 -30
- package/utils/dom.js.map +1 -1
- package/utils/image.amd.js.map +1 -1
- package/utils/keyboard.amd.js.map +1 -1
- package/utils/lodash.amd.js +1 -1
- package/utils/lodash.js +5 -5
- package/utils/number.amd.js.map +1 -1
- package/utils/price.amd.js +1 -1
- package/utils/price.amd.js.map +1 -1
- package/utils/price.js +1 -1
- package/utils/price.js.map +1 -1
- package/utils/route.amd.js +1 -1
- package/utils/route.amd.js.map +1 -1
- package/utils/route.js +5 -5
- package/utils/route.js.map +1 -1
- package/utils/scroll.amd.js +1 -1
- package/utils/scroll.amd.js.map +1 -1
- package/utils/scroll.js +7 -39
- package/utils/scroll.js.map +1 -1
- package/utils/searchers.amd.js.map +1 -1
- package/utils/searchers.js.map +1 -1
- package/utils/string.amd.js +1 -1
- package/utils/string.amd.js.map +1 -1
- package/utils/string.js +29 -29
- package/utils/string.js.map +1 -1
- package/utils/system.amd.js.map +1 -1
- package/utils/system.js.map +1 -1
- package/utils/url.amd.js.map +1 -1
- package/utils/url.js.map +1 -1
- package/web-types.json +0 -28
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-BC88J71B.amd.js.map +0 -1
- package/components/formsExt/info/info.vue.d.ts +0 -20
- package/components/formsExt/info/types.d.ts +0 -21
- package/core/directives/scrollIntoView.d.ts +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-DFkcW3nI.es.js","sources":["../../src/components/dialog/lib/worker.ts","../../src/components/dialog/dialog/composables/dialogHandle.ts","../../src/components/dialog/dialog/dialogs/dialogs.vue","../../src/components/dialog/dialog/composables/asyncDialogHandle.ts","../../src/components/dialog/dialog/composables/utils.ts"],"sourcesContent":["import { genHash, getHash, historySetState } from '@/core/utils/route';\nimport type { MoveDirection, TopDialogOptions } from './types';\nimport type { $el } from '@/components/types';\n\nexport abstract class TopDialogWorker {\n\tstatic state = {\n\t\tload: undefined as TopDialogOptions['load'] | undefined,\n\t\tdecoratorOnCreate: undefined as TopDialogOptions['decoratorOnCreate'] | undefined,\n\n\t\t/**\n\t\t * Порядковай номер перехода в диалоговых окнах\n\t\t *\n\t\t * Для расчета направления Вперед / Назад\n\t\t */\n\t\tviewPageN: 0,\n\t\tlocationHashPrev: '',\n\t};\n\n\tprivate static inited = false;\n\n\t/**\n\t * Инициировать события слежения за парамтерами url\n\t *\n\t * Если в параметрах есть запрос на открытие диалогового окна, TopDialog будет автоматически подключен на страницу\n\t */\n\tstatic init(options?: TopDialogOptions) {\n\t\tif (this.inited) return;\n\t\tthis.inited = true;\n\n\t\tthis.state.load = options?.load;\n\t\tthis.state.decoratorOnCreate = options?.decoratorOnCreate;\n\n\t\tconst autoInitDelay = options?.autoInitDelay ?? 5000;\n\n\t\t$(window).on('hashchange.dialogs', () => {\n\t\t\tconst dialogsStateChanged = this.compareStates(location.hash, this.state.locationHashPrev);\n\t\t\tif (dialogsStateChanged) this.opendDialogsFromUrl();\n\t\t});\n\n\t\t$(window).trigger('hashchange.dialogs');\n\n\t\t/**\n\t\t * Сгенерировать ссылку для перехода к странице диалогового окна\n\t\t */\n\t\t$(document).on('mousedown', 'a[data-to-view]', async (e) => {\n\t\t\tconst el = e.target.closest('[data-to-view]');\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\t\t\tconst $toDialog = $('#' + viewName);\n\t\t\tconst $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\t// const $currentPage = $('> .active', $modalLayers);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\t// /**\n\t\t\t// * Данный алгоритм определения направления работает не корректно, так как для чтения свойства order менят состояние через getDialogsUtils()\n\t\t\t// */\n\t\t\t// if ($currentPage.length) {\n\t\t\t// \tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t//\n\t\t\t// \tconst TopDialogUtils = await this.getDialogsUtils();\n\t\t\t//\n\t\t\t// \tawait TopDialogUtils.updatePageVue(viewName, undefined, pageName);\n\t\t\t//\n\t\t\t// \tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t// \tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t// }\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tel.href = TopDialogWorker.genViewPageHash(el.dataset.toView, moveDirection);\n\t\t});\n\n\t\t/**\n\t\t * Осуществить переход по ссылке с учетом historyType\n\t\t */\n\t\t$(document).on('click', '[data-to-view]', async (e) => {\n\t\t\tconst el = e.target.closest('[data-to-view]');\n\n\t\t\t// Подождать генерацию ссылки\n\t\t\tif (el.href === '.') {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tel.mousedown();\n\n\t\t\t\tsetTimeout(() => el.click());\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\t\t\tconst $toDialog = $('#' + viewName);\n\t\t\tconst $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\tconst $currentPage = $('> .active', $modalLayers);\n\n\t\t\tconst replaceHistory = !!$toDialog.data('data-to-view-replace');\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\t\t\tif ($currentPage.length) {\n\t\t\t\tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t\tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t\tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t}\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, moveDirection);\n\n\t\t\tif (el.tagName === 'A') {\n\t\t\t\t// диалоговое окно еще не открыто, произвести переход по ссылке\n\t\t\t\tif (!$toDialog.is(':visible')) return;\n\n\t\t\t\t// в адресе уже указана эта страница, необходимсо явно запросить ее открытие\n\t\t\t\tif (location.hash.indexOf(toView.replace('-', '=')) !== -1) {\n\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (replaceHistory) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\thistorySetState(true, hash);\n\n\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\tif (moveDirection == 'next') {\n\t\t\t\t\tTopDialogWorker.state.viewPageN++;\n\t\t\t\t} else {\n\t\t\t\t\tTopDialogWorker.state.viewPageN--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (el.tagName !== 'A') {\n\t\t\t\t\tif (this.compareStates(hash, location.hash)) {\n\t\t\t\t\t\tlocation.hash = hash;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetTimeout(() => this.getDialogsUtils(), autoInitDelay);\n\t}\n\n\tstatic async getDialogsUtils() {\n\t\tconst { TopDialogUtils } = await import('./utils');\n\n\t\treturn TopDialogUtils;\n\t}\n\n\tstatic get$dialog($el: $el) {\n\t\treturn $el.closest('.ui-dialog-content');\n\t};\n\n\tstatic get$page($el: $el) {\n\t\treturn $el.closest('[data-view-page]');\n\t};\n\n\t/**\n\t * Получить элементы страницы в шапке и в контенте\n\t */\n\tstatic get$pairPage($el: $el) {\n\t\tconst $dialog = TopDialogWorker.get$dialog($el);\n\n\t\tconst $page = TopDialogWorker.get$page($el);\n\t\tconst pageName = $page.data('view-page');\n\n\t\treturn $('[data-view-page=\"' + pageName + '\"]', $dialog);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t */\n\tstatic close(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif (!$dialog.dialog('instance')) return;\n\n\t\t$dialog.dialog('close');\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tstatic destroy(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif (!$dialog.dialog('instance')) return;\n\n\t\t$dialog.dialog('close');\n\t\t$dialog.dialog('destroy');\n\t};\n\n\t/**\n\t * Сгенерировать ссылку на страницу в диалоговом окне\n\t * @param toView - указатель в формате: dialog_{{ dialogId }}={{ pageName }}:{{ args }}\n\t * @param moveDirection\n\t */\n\tstatic genViewPageHash(toView: string, moveDirection: MoveDirection = 'next') {\n\t\tvar toViewPageN = this.state.viewPageN;\n\t\tif (moveDirection == 'prev') {\n\t\t\ttoViewPageN--;\n\t\t} else {\n\t\t\ttoViewPageN++;\n\t\t}\n\n\t\tvar viewNameAndPageLink = toView.split('-');\n\t\tvar viewName = viewNameAndPageLink.shift();\n\t\tvar pageLink = viewNameAndPageLink.join('-');\n\t\tvar hash = genHash('vpn', toViewPageN);\n\t\tvar hash = genHash('view-' + viewName, pageLink, hash);\n\n\t\treturn hash;\n\t};\n\n\t/**\n\t * Сравнить версию открытых диалоговых окон\n\t * @returns вернет true, если состояния открытых окон изменилось\n\t */\n\tstatic compareStates(hash: string, hash2: string) {\n\t\tconst mathes = hash.match(/[#&]view-[^&]+/g) || [];\n\t\tconst mathes2 = hash2.match(/[#&]view-[^&]+/g) || [];\n\n\t\tif (mathes.length !== mathes2.length) return true;\n\n\t\tconst mathesChanged = mathes.filter((math, n) => {\n\t\t\tconst math2 = mathes2[n] || '';\n\n\t\t\treturn math !== math2;\n\t\t});\n\n\t\tif (mathesChanged.length) return true;\n\n\t\treturn false;\n\t};\n\n\tstatic opendDialogsFromUrl = async () => {\n\t\tconst toViewPageN = Number(getHash('vpn')) || 0;\n\n\t\tthis.state.locationHashPrev = location.hash;\n\n\t\t// Открыть диалоговое окно\n\t\tlet view: RegExpExecArray | null;\n\t\t// const regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)' + '(' + Math.random() + ')?', 'g'); // fix babel minify regexp\n\t\tconst regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)', 'g');\n\t\twhile (view = regexp.exec(location.hash)) {\n\t\t\tvar moveDirection: MoveDirection = 'next';\n\t\t\tif (toViewPageN < this.state.viewPageN) moveDirection = 'prev';\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\treturn TopDialogUtils.toViewDirty(view[1], moveDirection);\n\t\t}\n\n\t\t// Закрыть ненужные view\n\t\t$('.ui-dialog-content[data-view-page-active]:visible').each((_index: number, dialog: HTMLElement) => {\n\t\t\tvar $dialog = $(dialog);\n\n\t\t\tvar viewName = $dialog.attr('id');\n\t\t\tvar pageName = getHash('view-' + viewName);\n\t\t\tif (!pageName) $dialog.dialog('close');\n\t\t});\n\n\t\tthis.state.viewPageN = toViewPageN;\n\n\t\treturn true;\n\t};\n}\n","import { type ComponentInstance, type ComponentInternalInstance, markRaw, ref } from 'vue';\nimport { waitWhile } from '@/core/utils/system';\nimport TopDialog from '../dialog.vue';\nimport { TopDialogWorker } from '@/components/dialog/lib/worker';\nimport type { MoveDirection } from '@/components/dialog/lib/types';\nimport type { TopDialogComponent } from './types';\n\n/**\n * Объект для работы с диалоговым окном\n *\n * Каждое окно уникально и может быть открыто одновременно только один раз\n *\n * Можно определить много окон, после чего с ними можно вести работу в любой части приложения\n */\nexport class TopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Индентификатор, определяется на уровне компонента TopDialogComponent\n\t *\n\t * Может использоваться в навигации для открытия нужных окон с нужными настройками\n\t */\n\tid: string;\n\n\t/**\n\t * ID, используемый в верстке диалогового окна\n\t */\n\tidAttr: string;\n\n\t/**\n\t * Пользовательский компонент диалогового окна\n\t */\n\tComponent: T;\n\n\t/**\n\t * Компонент инициирован\n\t *\n\t * Устанавливается после первого вызова useTopDialog()\n\t */\n\tisMounted = ref(false);\n\n\t/**\n\t * Компонент готов к использованию\n\t *\n\t * Используется для внутренних преобразований после отрисовки\n\t */\n\tisReady = ref(false);\n\n\t/**\n\t * Диалоговое окно открыто\n\t */\n\tisOpened = ref(false);\n\n\t/**\n\t * Имя активной страницы дилогового окна\n\t */\n\tpageActive = ref('');\n\n\t/**\n\t * Диалоговое окно находится в состоянии загрузки своей страницы\n\t */\n\tisLoadingPage = ref(false);\n\n\t/**\n\t * Следующая активная страница\n\t *\n\t * В один момент времени может потребоваться отобразить две страницы, чтобы воспроизвести анимацию\n\t */\n\tpageActiveNext = ref('');\n\n\t/**\n\t * props компонента, доступны после инициализации\n\t */\n\tprops?: ComponentInstance<T>['$props'];\n\n\t/**\n\t * emit базового компонента `TopDialog`\n\t */\n\temit?: ComponentInstance<typeof TopDialog>['$emit'];\n\n\t/**\n\t * Одноразовое событие на закрытие диалогового окна\n\t *\n\t * Используется для привязки окна к сценариям использования\n\t */\n\tonCloseOnce?: (props: typeof this.props, pageName: string) => void;\n\n\tconstructor(TopDialogComponent: T) {\n\t\tthis.id = TopDialogComponent.id!;\n\t\tthis.idAttr = 'dialog_' + TopDialogComponent.id;\n\t\tthis.Component = markRaw(TopDialogComponent);\n\t}\n\n\t/**\n\t * Событие - компонент инициирован\n\t */\n\tonMounted(topDialogComponent: ComponentInternalInstance, topDialogBaseComponent: ComponentInternalInstance) {\n\t\tthis.isMounted.value = true;\n\t\tthis.props = topDialogComponent.props;\n\t\tthis.emit = topDialogBaseComponent.emit;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t *\n\t * Учтите, что props в диалоговом окне будут доступны не сразу, а только после инициализации vue компонента\n\t */\n\tasync open(pageName: string = 'main', props?: {}, args: [] = [], onCloseOnce?: typeof this.onCloseOnce, moveDirection?: MoveDirection) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst TopDialogUtils = await TopDialogWorker.getDialogsUtils();\n\n\t\tawait TopDialogUtils.toView(this.idAttr, pageName, args, moveDirection);\n\t};\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Диалоговые окна загружаются по имени, см. настройку плагина Core topDialogLoader\n\t */\n\tasync openAsLink(\n\t\tpageName: string = 'main',\n\t\tprops?: {},\n\t\t_args: string[] = [],\n\t\tonCloseOnce?: typeof this.onCloseOnce,\n\t\tmoveDirection?: MoveDirection,\n\t) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst viewName = this.idAttr + '-' + pageName;\n\n\t\tlocation.hash = TopDialogWorker.genViewPageHash(viewName, moveDirection);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close() {\n\t\tTopDialogWorker.close(this.idAttr);\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tasync destroy() {\n\t\tTopDialogWorker.destroy(this.idAttr);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(props: ComponentInstance<T>['$props'] = {}) {\n\t\t// ожидание инициализации компонента\n\t\tif (!this.isMounted) {\n\t\t\tawait waitWhile(() => !this.props);\n\t\t}\n\n\t\tfor (const name in this.props) {\n\t\t\tthis.props[name] = props[name];\n\t\t}\n\t}\n\n\t/**\n\t * Проверить, есть ли необходимость отрисовки страницы диалогового окна\n\t */\n\tneedShowPage(pageName: string): boolean {\n\t\tif (!this.isOpened.value) return false;\n\n\t\treturn this.pageActive.value === pageName || this.pageActiveNext.value === pageName;\n\t}\n}\n","<script lang=\"ts\">\nimport { shallowReactive } from 'vue';\nimport { TopDialogHandle } from '@/components/dialog/dialog/composables/dialogHandle';\nimport type { TopDialogComponent } from '@/components/dialog/dialog/composables/types';\n\n/**\n * Словарь всех используемых диалоговых окон\n *\n * В других компонентах не использовать\n */\nconst dialogsWorkers = shallowReactive(new Map<string, TopDialogHandle<TopDialogComponent>>());\n\nexport const getDialogWorker = (id: string) => {\n\tid = id.replace(/^dialog_/, '');\n\n\treturn dialogsWorkers.get(id);\n};\n\n/**\n * Добавить компонент диалогового окна для использования\n */\nexport const addDialogWorker = <T extends TopDialogComponent>(TopDialogComponent: T): TopDialogHandle<T> => {\n\tif (!TopDialogComponent?.id) {\n\t\tconsole.log({ TopDialogComponent: TopDialogComponent });\n\n\t\tthrow new Error('Expected TopDialogComponent');\n\t}\n\n\tif (!dialogsWorkers.has(TopDialogComponent.id)) {\n\t\tdialogsWorkers.set(TopDialogComponent.id, new TopDialogHandle(TopDialogComponent));\n\t}\n\n\treturn dialogsWorkers.get(TopDialogComponent.id) as TopDialogHandle<T>;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { onUnmounted } from 'vue';\n\ndefineOptions({\n\tname: 'DialogWrapper',\n});\n\nonUnmounted(() => {\n\tdialogsWorkers.forEach(dialog => dialog.destroy());\n\tdialogsWorkers.clear();\n});\n</script>\n\n<template>\n\t<div class=\"top-dialogs\" style=\"display: none;\">\n\t\t<component\n\t\t\tv-for=\"[dialogId, dialog] in dialogsWorkers\"\n\t\t\t:is=\"dialog.Component\"\n\t\t\t:key=\"dialogId\"\n\t\t/>\n\t</div>\n</template>\n","import type { Ref } from 'vue';\nimport { ref } from 'vue';\nimport { useTopDialog } from './utils';\nimport { waitWhile } from '@/core/utils/system';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { TopDialogHandle } from './dialogHandle';\n\n/**\n * Объект для работы с асинхронным диалоговым окном\n *\n * Является прослойкой для доступа к TopDialogHandle\n */\nexport class AsyncTopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Функция, определяющая компонент TopDialogComponent\n\t */\n\treadonly resolve: AsyncTopDialogComponentLoader<T>;\n\n\t/**\n\t * Реактивная Сссылка на объект worker,\n\t *\n\t * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено\n\t */\n\treadonly worker: Ref<TopDialogHandle<T> | null> = ref(null);\n\n\tconstructor(resolve: AsyncTopDialogComponentLoader<T>) {\n\t\tthis.resolve = resolve;\n\t}\n\n\t/**\n\t * Получить доступ к TopDialogHandle\n\t */\n\tasync get() {\n\t\tif (this.worker.value) return this.worker.value;\n\n\t\tconst result = await this.resolve();\n\t\tconst TopDialogComponent = result.default;\n\n\t\tthis.worker.value = useTopDialog(TopDialogComponent);\n\n\t\tconst worker = this.worker.value;\n\n\t\tawait waitWhile(() => !worker.isMounted);\n\n\t\treturn worker;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t */\n\tasync open(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.open(...args);\n\t}\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Только общедоступные диалоговые окна, расположенные в @/dialogs\n\t */\n\tasync openAsLink(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tvoid worker.openAsLink(...args);\n\t}\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.close(...args);\n\t}\n\n\t/**\n\t * Размонтировать виджет диалогового окна\n\t */\n\tasync destroy(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.destroy(...args);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(...args: Parameters<TopDialogHandle<T>['setProps']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.setProps(...args);\n\t}\n}\n","import { getCurrentInstance, inject } from 'vue';\nimport { TopDialogHandle } from './dialogHandle';\nimport { AsyncTopDialogHandle } from './asyncDialogHandle';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { addDialogWorker, getDialogWorker } from '../dialogs/dialogs.vue';\n\n/**\n * Получить объект управленя текущим диалоговым окном\n */\nexport const useTopDialogSelf = () => {\n\t// вызов из пользовтаельского компонента диалога\n\tconst topDialogComponent = getCurrentInstance() as any;\n\tif (topDialogComponent?.type?.id) {\n\t\tconst dialogWorker = getDialogWorker(topDialogComponent.type.id);\n\t\tif (dialogWorker) return dialogWorker;\n\t}\n\n\treturn inject('dialogWorker') as TopDialogHandle<TopDialogComponent>;\n};\n\n/**\n * Получить объект управленя диалоговым окном\n *\n * При первом вызове компонент диалогового окна будет внедрен в компонент DialogWrapper\n */\nexport const useTopDialog = <T extends TopDialogComponent>(DialogComponent: T): TopDialogHandle<T> => {\n\treturn addDialogWorker(DialogComponent);\n};\n\n/**\n * Получить объект управленя асинхронным диалоговым окном\n *\n * Компонент диалогового окна будет загружен и инициирован при первом взаимодействии с объектом\n *\n * Использует useTopDialog()\n */\nexport const useAsyncTopDialog = <T extends TopDialogComponent>(resolve: AsyncTopDialogComponentLoader<T>): AsyncTopDialogHandle<T> => {\n\treturn new AsyncTopDialogHandle(resolve);\n};\n"],"names":["TopDialogWorker","options","autoInitDelay","e","el","viewName","$toDialog","moveDirection","TopDialogUtils","toView","$modalLayers","$currentPage","replaceHistory","pageName","hash","historySetState","$el","$dialog","dialogId","toViewPageN","viewNameAndPageLink","pageLink","genHash","hash2","mathes","mathes2","math","math2","getHash","view","regexp","_index","dialog","TopDialogHandle","ref","TopDialogComponent","markRaw","topDialogComponent","topDialogBaseComponent","props","args","onCloseOnce","_args","waitWhile","name","dialogsWorkers","shallowReactive","getDialogWorker","id","addDialogWorker","onUnmounted","AsyncTopDialogHandle","resolve","useTopDialog","worker","useTopDialogSelf","getCurrentInstance","_a","dialogWorker","inject","DialogComponent","useAsyncTopDialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils-DXI6F7F9.es.js","sources":["../../src/components/dialog/lib/worker.ts","../../src/components/dialog/dialog/composables/dialogHandle.ts","../../src/components/dialog/dialog/dialogs/dialogs.vue","../../src/components/dialog/dialog/composables/asyncDialogHandle.ts","../../src/components/dialog/dialog/composables/utils.ts"],"sourcesContent":["import { genHash, getHash, historySetState } from '@/core/utils/route';\nimport type { MoveDirection, TopDialogOptions } from './types';\nimport type { $el } from '@/components/types';\n\nexport abstract class TopDialogWorker {\n\tstatic state = {\n\t\tload: undefined as TopDialogOptions['load'] | undefined,\n\t\tdecoratorOnCreate: undefined as TopDialogOptions['decoratorOnCreate'] | undefined,\n\n\t\t/**\n\t\t * Порядковай номер перехода в диалоговых окнах\n\t\t *\n\t\t * Для расчета направления Вперед / Назад\n\t\t */\n\t\tviewPageN: 0,\n\t\tlocationHashPrev: '',\n\t};\n\n\tprivate static inited = false;\n\n\t/**\n\t * Инициировать события слежения за парамтерами url\n\t *\n\t * Если в параметрах есть запрос на открытие диалогового окна, TopDialog будет автоматически подключен на страницу\n\t */\n\tstatic init(options?: TopDialogOptions) {\n\t\tif (this.inited) return;\n\t\tthis.inited = true;\n\n\t\tthis.state.load = options?.load;\n\t\tthis.state.decoratorOnCreate = options?.decoratorOnCreate;\n\n\t\tconst autoInitDelay = options?.autoInitDelay ?? 5000;\n\n\t\t$(window).on('hashchange.dialogs', () => {\n\t\t\tconst dialogsStateChanged = this.compareStates(location.hash, this.state.locationHashPrev);\n\t\t\tif (dialogsStateChanged) this.opendDialogsFromUrl();\n\t\t});\n\n\t\t$(window).trigger('hashchange.dialogs');\n\n\t\t/**\n\t\t * Сгенерировать ссылку для перехода к странице диалогового окна\n\t\t */\n\t\t$(document).on('mousedown', 'a[data-to-view]', async (e) => {\n\t\t\tconst el = e.target.closest('[data-to-view]');\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\t\t\tconst $toDialog = $('#' + viewName);\n\t\t\tconst $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\t// const $currentPage = $('> .active', $modalLayers);\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\n\t\t\t// /**\n\t\t\t// * Данный алгоритм определения направления работает не корректно, так как для чтения свойства order менят состояние через getDialogsUtils()\n\t\t\t// */\n\t\t\t// if ($currentPage.length) {\n\t\t\t// \tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t//\n\t\t\t// \tconst TopDialogUtils = await this.getDialogsUtils();\n\t\t\t//\n\t\t\t// \tawait TopDialogUtils.updatePageVue(viewName, undefined, pageName);\n\t\t\t//\n\t\t\t// \tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t// \tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t// }\n\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tel.href = TopDialogWorker.genViewPageHash(el.dataset.toView, moveDirection);\n\t\t});\n\n\t\t/**\n\t\t * Осуществить переход по ссылке с учетом historyType\n\t\t */\n\t\t$(document).on('click', '[data-to-view]', async (e) => {\n\t\t\tconst el = e.target.closest('[data-to-view]');\n\n\t\t\t// Подождать генерацию ссылки\n\t\t\tif (el.href === '.') {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tel.mousedown();\n\n\t\t\t\tsetTimeout(() => el.click());\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\tconst toView = el.dataset.toView;\n\t\t\tconst viewName = toView.split('-')[0];\n\t\t\tconst $toDialog = $('#' + viewName);\n\t\t\tconst $modalLayers = $('> .modal-layer', $toDialog);\n\t\t\tconst $currentPage = $('> .active', $modalLayers);\n\n\t\t\tconst replaceHistory = !!$toDialog.data('data-to-view-replace');\n\n\t\t\tlet moveDirection: MoveDirection = 'next';\n\t\t\tif ($currentPage.length) {\n\t\t\t\tconst pageName = toView.split('-')[1].split(':')[0];\n\t\t\t\tconst $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\t\t\t\tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t\t\t}\n\t\t\tif (el.dataset.action === 'top-dialog-close') moveDirection = 'prev';\n\n\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, moveDirection);\n\n\t\t\tif (el.tagName === 'A') {\n\t\t\t\t// диалоговое окно еще не открыто, произвести переход по ссылке\n\t\t\t\tif (!$toDialog.is(':visible')) return;\n\n\t\t\t\t// в адресе уже указана эта страница, необходимсо явно запросить ее открытие\n\t\t\t\tif (location.hash.indexOf(toView.replace('-', '=')) !== -1) {\n\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (replaceHistory) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\thistorySetState(true, hash);\n\n\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\n\t\t\t\tif (moveDirection == 'next') {\n\t\t\t\t\tTopDialogWorker.state.viewPageN++;\n\t\t\t\t} else {\n\t\t\t\t\tTopDialogWorker.state.viewPageN--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (el.tagName !== 'A') {\n\t\t\t\t\tif (this.compareStates(hash, location.hash)) {\n\t\t\t\t\t\tlocation.hash = hash;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait TopDialogUtils.toViewDirty(toView);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetTimeout(() => this.getDialogsUtils(), autoInitDelay);\n\t}\n\n\tstatic async getDialogsUtils() {\n\t\tconst { TopDialogUtils } = await import('./utils');\n\n\t\treturn TopDialogUtils;\n\t}\n\n\tstatic get$dialog($el: $el) {\n\t\treturn $el.closest('.ui-dialog-content');\n\t};\n\n\tstatic get$page($el: $el) {\n\t\treturn $el.closest('[data-view-page]');\n\t};\n\n\t/**\n\t * Получить элементы страницы в шапке и в контенте\n\t */\n\tstatic get$pairPage($el: $el) {\n\t\tconst $dialog = TopDialogWorker.get$dialog($el);\n\n\t\tconst $page = TopDialogWorker.get$page($el);\n\t\tconst pageName = $page.data('view-page');\n\n\t\treturn $('[data-view-page=\"' + pageName + '\"]', $dialog);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t */\n\tstatic close(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif (!$dialog.dialog('instance')) return;\n\n\t\t$dialog.dialog('close');\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tstatic destroy(dialogId: string) {\n\t\tconst $dialog = $('#' + dialogId);\n\n\t\tif (!$dialog.dialog('instance')) return;\n\n\t\t$dialog.dialog('close');\n\t\t$dialog.dialog('destroy');\n\t};\n\n\t/**\n\t * Сгенерировать ссылку на страницу в диалоговом окне\n\t * @param toView - указатель в формате: dialog_{{ dialogId }}={{ pageName }}:{{ args }}\n\t * @param moveDirection\n\t */\n\tstatic genViewPageHash(toView: string, moveDirection: MoveDirection = 'next') {\n\t\tvar toViewPageN = this.state.viewPageN;\n\t\tif (moveDirection == 'prev') {\n\t\t\ttoViewPageN--;\n\t\t} else {\n\t\t\ttoViewPageN++;\n\t\t}\n\n\t\tvar viewNameAndPageLink = toView.split('-');\n\t\tvar viewName = viewNameAndPageLink.shift();\n\t\tvar pageLink = viewNameAndPageLink.join('-');\n\t\tvar hash = genHash('vpn', toViewPageN);\n\t\tvar hash = genHash('view-' + viewName, pageLink, hash);\n\n\t\treturn hash;\n\t};\n\n\t/**\n\t * Сравнить версию открытых диалоговых окон\n\t * @returns вернет true, если состояния открытых окон изменилось\n\t */\n\tstatic compareStates(hash: string, hash2: string) {\n\t\tconst mathes = hash.match(/[#&]view-[^&]+/g) || [];\n\t\tconst mathes2 = hash2.match(/[#&]view-[^&]+/g) || [];\n\n\t\tif (mathes.length !== mathes2.length) return true;\n\n\t\tconst mathesChanged = mathes.filter((math, n) => {\n\t\t\tconst math2 = mathes2[n] || '';\n\n\t\t\treturn math !== math2;\n\t\t});\n\n\t\tif (mathesChanged.length) return true;\n\n\t\treturn false;\n\t};\n\n\tstatic opendDialogsFromUrl = async () => {\n\t\tconst toViewPageN = Number(getHash('vpn')) || 0;\n\n\t\tthis.state.locationHashPrev = location.hash;\n\n\t\t// Открыть диалоговое окно\n\t\tlet view: RegExpExecArray | null;\n\t\t// const regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)' + '(' + Math.random() + ')?', 'g'); // fix babel minify regexp\n\t\tconst regexp = new RegExp('view-((\\\\w+)=([\\\\w-]+)(?::([\\\\w.:-]+))?)', 'g');\n\t\twhile (view = regexp.exec(location.hash)) {\n\t\t\tvar moveDirection: MoveDirection = 'next';\n\t\t\tif (toViewPageN < this.state.viewPageN) moveDirection = 'prev';\n\n\t\t\tconst TopDialogUtils = await this.getDialogsUtils();\n\n\t\t\treturn TopDialogUtils.toViewDirty(view[1], moveDirection);\n\t\t}\n\n\t\t// Закрыть ненужные view\n\t\t$('.ui-dialog-content[data-view-page-active]:visible').each((_index: number, dialog: HTMLElement) => {\n\t\t\tvar $dialog = $(dialog);\n\n\t\t\tvar viewName = $dialog.attr('id');\n\t\t\tvar pageName = getHash('view-' + viewName);\n\t\t\tif (!pageName) $dialog.dialog('close');\n\t\t});\n\n\t\tthis.state.viewPageN = toViewPageN;\n\n\t\treturn true;\n\t};\n}\n","import { type ComponentInstance, type ComponentInternalInstance, markRaw, ref } from 'vue';\nimport { waitWhile } from '@/core/utils/system';\nimport TopDialog from '../dialog.vue';\nimport { TopDialogWorker } from '@/components/dialog/lib/worker';\nimport type { MoveDirection } from '@/components/dialog/lib/types';\nimport type { TopDialogComponent } from './types';\n\n/**\n * Объект для работы с диалоговым окном\n *\n * Каждое окно уникально и может быть открыто одновременно только один раз\n *\n * Можно определить много окон, после чего с ними можно вести работу в любой части приложения\n */\nexport class TopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Индентификатор, определяется на уровне компонента TopDialogComponent\n\t *\n\t * Может использоваться в навигации для открытия нужных окон с нужными настройками\n\t */\n\tid: string;\n\n\t/**\n\t * ID, используемый в верстке диалогового окна\n\t */\n\tidAttr: string;\n\n\t/**\n\t * Пользовательский компонент диалогового окна\n\t */\n\tComponent: T;\n\n\t/**\n\t * Компонент инициирован\n\t *\n\t * Устанавливается после первого вызова useTopDialog()\n\t */\n\tisMounted = ref(false);\n\n\t/**\n\t * Компонент готов к использованию\n\t *\n\t * Используется для внутренних преобразований после отрисовки\n\t */\n\tisReady = ref(false);\n\n\t/**\n\t * Диалоговое окно открыто\n\t */\n\tisOpened = ref(false);\n\n\t/**\n\t * Имя активной страницы дилогового окна\n\t */\n\tpageActive = ref('');\n\n\t/**\n\t * Диалоговое окно находится в состоянии загрузки своей страницы\n\t */\n\tisLoadingPage = ref(false);\n\n\t/**\n\t * Следующая активная страница\n\t *\n\t * В один момент времени может потребоваться отобразить две страницы, чтобы воспроизвести анимацию\n\t */\n\tpageActiveNext = ref('');\n\n\t/**\n\t * props компонента, доступны после инициализации\n\t */\n\tprops?: ComponentInstance<T>['$props'];\n\n\t/**\n\t * emit базового компонента `TopDialog`\n\t */\n\temit?: ComponentInstance<typeof TopDialog>['$emit'];\n\n\t/**\n\t * Одноразовое событие на закрытие диалогового окна\n\t *\n\t * Используется для привязки окна к сценариям использования\n\t */\n\tonCloseOnce?: (props: typeof this.props, pageName: string) => void;\n\n\tconstructor(TopDialogComponent: T) {\n\t\tthis.id = TopDialogComponent.id!;\n\t\tthis.idAttr = 'dialog_' + TopDialogComponent.id;\n\t\tthis.Component = markRaw(TopDialogComponent);\n\t}\n\n\t/**\n\t * Событие - компонент инициирован\n\t */\n\tonMounted(topDialogComponent: ComponentInternalInstance, topDialogBaseComponent: ComponentInternalInstance) {\n\t\tthis.isMounted.value = true;\n\t\tthis.props = topDialogComponent.props;\n\t\tthis.emit = topDialogBaseComponent.emit;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t *\n\t * Учтите, что props в диалоговом окне будут доступны не сразу, а только после инициализации vue компонента\n\t */\n\tasync open(pageName: string = 'main', props?: {}, args: [] = [], onCloseOnce?: typeof this.onCloseOnce, moveDirection?: MoveDirection) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst TopDialogUtils = await TopDialogWorker.getDialogsUtils();\n\n\t\tawait TopDialogUtils.toView(this.idAttr, pageName, args, moveDirection);\n\t};\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Диалоговые окна загружаются по имени, см. настройку плагина Core topDialogLoader\n\t */\n\tasync openAsLink(\n\t\tpageName: string = 'main',\n\t\tprops?: {},\n\t\t_args: string[] = [],\n\t\tonCloseOnce?: typeof this.onCloseOnce,\n\t\tmoveDirection?: MoveDirection,\n\t) {\n\t\tif (props) await this.setProps(props);\n\t\tif (onCloseOnce) this.onCloseOnce = onCloseOnce;\n\n\t\tconst viewName = this.idAttr + '-' + pageName;\n\n\t\tlocation.hash = TopDialogWorker.genViewPageHash(viewName, moveDirection);\n\t};\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close() {\n\t\tTopDialogWorker.close(this.idAttr);\n\t};\n\n\t/**\n\t * Размонтировать $.dialog\n\t */\n\tasync destroy() {\n\t\tTopDialogWorker.destroy(this.idAttr);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(props: ComponentInstance<T>['$props'] = {}) {\n\t\t// ожидание инициализации компонента\n\t\tif (!this.isMounted) {\n\t\t\tawait waitWhile(() => !this.props);\n\t\t}\n\n\t\tfor (const name in this.props) {\n\t\t\tthis.props[name] = props[name];\n\t\t}\n\t}\n\n\t/**\n\t * Проверить, есть ли необходимость отрисовки страницы диалогового окна\n\t */\n\tneedShowPage(pageName: string): boolean {\n\t\tif (!this.isOpened.value) return false;\n\n\t\treturn this.pageActive.value === pageName || this.pageActiveNext.value === pageName;\n\t}\n}\n","<script lang=\"ts\">\nimport { shallowReactive } from 'vue';\nimport { TopDialogHandle } from '@/components/dialog/dialog/composables/dialogHandle';\nimport type { TopDialogComponent } from '@/components/dialog/dialog/composables/types';\n\n/**\n * Словарь всех используемых диалоговых окон\n *\n * В других компонентах не использовать\n */\nconst dialogsWorkers = shallowReactive(new Map<string, TopDialogHandle<TopDialogComponent>>());\n\nexport const getDialogWorker = (id: string) => {\n\tid = id.replace(/^dialog_/, '');\n\n\treturn dialogsWorkers.get(id);\n};\n\n/**\n * Добавить компонент диалогового окна для использования\n */\nexport const addDialogWorker = <T extends TopDialogComponent>(TopDialogComponent: T): TopDialogHandle<T> => {\n\tif (!TopDialogComponent?.id) {\n\t\tconsole.log({ TopDialogComponent: TopDialogComponent });\n\n\t\tthrow new Error('Expected TopDialogComponent');\n\t}\n\n\tif (!dialogsWorkers.has(TopDialogComponent.id)) {\n\t\tdialogsWorkers.set(TopDialogComponent.id, new TopDialogHandle(TopDialogComponent));\n\t}\n\n\treturn dialogsWorkers.get(TopDialogComponent.id) as TopDialogHandle<T>;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { onUnmounted } from 'vue';\n\ndefineOptions({\n\tname: 'DialogWrapper',\n});\n\nonUnmounted(() => {\n\tdialogsWorkers.forEach(dialog => dialog.destroy());\n\tdialogsWorkers.clear();\n});\n</script>\n\n<template>\n\t<div class=\"top-dialogs\" style=\"display: none;\">\n\t\t<component\n\t\t\tv-for=\"[dialogId, dialog] in dialogsWorkers\"\n\t\t\t:is=\"dialog.Component\"\n\t\t\t:key=\"dialogId\"\n\t\t/>\n\t</div>\n</template>\n","import type { Ref } from 'vue';\nimport { ref } from 'vue';\nimport { useTopDialog } from './utils';\nimport { waitWhile } from '@/core/utils/system';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { TopDialogHandle } from './dialogHandle';\n\n/**\n * Объект для работы с асинхронным диалоговым окном\n *\n * Является прослойкой для доступа к TopDialogHandle\n */\nexport class AsyncTopDialogHandle<T extends TopDialogComponent> {\n\n\t/**\n\t * Функция, определяющая компонент TopDialogComponent\n\t */\n\treadonly resolve: AsyncTopDialogComponentLoader<T>;\n\n\t/**\n\t * Реактивная Сссылка на объект worker,\n\t *\n\t * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено\n\t */\n\treadonly worker: Ref<TopDialogHandle<T> | null> = ref(null);\n\n\tconstructor(resolve: AsyncTopDialogComponentLoader<T>) {\n\t\tthis.resolve = resolve;\n\t}\n\n\t/**\n\t * Получить доступ к TopDialogHandle\n\t */\n\tasync get() {\n\t\tif (this.worker.value) return this.worker.value;\n\n\t\tconst result = await this.resolve();\n\t\tconst TopDialogComponent = result.default;\n\n\t\tthis.worker.value = useTopDialog(TopDialogComponent);\n\n\t\tconst worker = this.worker.value;\n\n\t\tawait waitWhile(() => !worker.isMounted);\n\n\t\treturn worker;\n\t}\n\n\t/**\n\t * Открыть диалоговое окно\n\t */\n\tasync open(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.open(...args);\n\t}\n\n\t/**\n\t * Открыть диалоговое окно как ссылку, для хеш-навигации\n\t *\n\t * Только общедоступные диалоговые окна, расположенные в @/dialogs\n\t */\n\tasync openAsLink(...args: Parameters<TopDialogHandle<T>['open']>) {\n\t\tconst worker = await this.get();\n\n\t\tvoid worker.openAsLink(...args);\n\t}\n\n\t/**\n\t * Закрыть диалоговое окно\n\t *\n\t * Не меняет состояние компонента диалогового окна\n\t */\n\tasync close(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.close(...args);\n\t}\n\n\t/**\n\t * Размонтировать виджет диалогового окна\n\t */\n\tasync destroy(...args: Parameters<TopDialogHandle<T>['close']>) {\n\t\tconst worker = await this.get();\n\n\t\tworker.destroy(...args);\n\t}\n\n\t/**\n\t * Устанвоить props\n\t *\n\t * Полностью сбрасывается состояние props\n\t */\n\tasync setProps(...args: Parameters<TopDialogHandle<T>['setProps']>) {\n\t\tconst worker = await this.get();\n\n\t\tawait worker.setProps(...args);\n\t}\n}\n","import { getCurrentInstance, inject } from 'vue';\nimport { TopDialogHandle } from './dialogHandle';\nimport { AsyncTopDialogHandle } from './asyncDialogHandle';\nimport type { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';\nimport { addDialogWorker, getDialogWorker } from '../dialogs/dialogs.vue';\n\n/**\n * Получить объект управленя текущим диалоговым окном\n */\nexport const useTopDialogSelf = () => {\n\t// вызов из пользовтаельского компонента диалога\n\tconst topDialogComponent = getCurrentInstance() as any;\n\tif (topDialogComponent?.type?.id) {\n\t\tconst dialogWorker = getDialogWorker(topDialogComponent.type.id);\n\t\tif (dialogWorker) return dialogWorker;\n\t}\n\n\treturn inject('dialogWorker') as TopDialogHandle<TopDialogComponent>;\n};\n\n/**\n * Получить объект управленя диалоговым окном\n *\n * При первом вызове компонент диалогового окна будет внедрен в компонент DialogWrapper\n */\nexport const useTopDialog = <T extends TopDialogComponent>(DialogComponent: T): TopDialogHandle<T> => {\n\treturn addDialogWorker(DialogComponent);\n};\n\n/**\n * Получить объект управленя асинхронным диалоговым окном\n *\n * Компонент диалогового окна будет загружен и инициирован при первом взаимодействии с объектом\n *\n * Использует useTopDialog()\n */\nexport const useAsyncTopDialog = <T extends TopDialogComponent>(resolve: AsyncTopDialogComponentLoader<T>): AsyncTopDialogHandle<T> => {\n\treturn new AsyncTopDialogHandle(resolve);\n};\n"],"names":["TopDialogWorker","options","autoInitDelay","e","el","viewName","$toDialog","moveDirection","TopDialogUtils","toView","$modalLayers","$currentPage","replaceHistory","pageName","hash","historySetState","$el","$dialog","dialogId","toViewPageN","viewNameAndPageLink","pageLink","genHash","hash2","mathes","mathes2","math","math2","getHash","view","regexp","_index","dialog","TopDialogHandle","ref","TopDialogComponent","markRaw","topDialogComponent","topDialogBaseComponent","props","args","onCloseOnce","_args","waitWhile","name","dialogsWorkers","shallowReactive","getDialogWorker","id","addDialogWorker","onUnmounted","AsyncTopDialogHandle","resolve","useTopDialog","worker","useTopDialogSelf","getCurrentInstance","_a","dialogWorker","inject","DialogComponent","useAsyncTopDialog"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","./forms-DYuU936i.amd","../popup/worker.amd","../utils/system.amd","../utils/route.amd","./utils-BBVRN-KU.amd","../utils/dom.amd"],function(X,_,h,p,O,k,f,l,P){"use strict";if(typeof h>"u")var h=window.Vue;$;let T=!1;const j=()=>{T||(T=!0,document.addEventListener("keydown",e=>{if(e.key!=="Escape"||!e.target)return;const t=e.target;t.closest(".ui-dialog")&&(t.contentEditable==="true"||t.contentEditable==="plaintext-only"||P.querySelectorVisible(document.documentElement,".top-popup-wrapper")||t.classList.contains("autocomplete")||P.querySelectorVisible(document.documentElement,".fancybox-container")||$(".ui-dialog-content:visible:last").dialog("close"))}),$(document).on("click",'[data-action="top-dialog-close"]',e=>{e.preventDefault();const t=e.target.closest('[data-action="top-dialog-close"]'),a=t.closest(".ui-dialog-content");if(!a)return;const o=$(a),i=t.dataset.toView;if(i=="toPrevPage()"){u.toPrevPage(o);return}if(i){var r=i.split("-"),d=r.shift(),n=r.join("-"),s=$("#"+d),g=$('[data-view-page="'+n+'"]',s);if(!g.is(":visible")){const c=l.TopDialogWorker.genViewPageHash(i,"prev");location.hash=c;return}}o.dialog("close")}),$(document).on("submit",".modal-body > form, .modal-layer-body > form",function(e){e.preventDefault()}),$(document).on("keypress",".ui-dialog .modal-body :input:not(.searcher), .ui-dialog .modal-body [contenteditable]",function(e){if(e.key==="ENTER"){if(e.target.classList.contains("autocomplete")){e.preventDefault();return}if(e.target.tagName==="TEXTAREA"){if(!e.ctrlKey&&!e.metaKey)return;const t=e.target.closest("form");if(t){let a=$(":submit:visible",t)[0];a||(a=$(":submit:visible",t)[0]),a==null||a.click()}}}}),$(document).on("click",".ui-widget-overlay",function(){let e,t=0;$(".ui-dialog:visible").each((a,o)=>{const i=Number($(o).css("z-index"));i<t||(e=$(o),t=i)}),e&&$(".ui-dialog-content",e).dialog("close")}),$(window).on("resize",u.recalcPositions),u.recalcPositions())},A=':root{--dialog-border-color: var(--color-line-1);--dialog-loading-duration: 10s}html.with_dialog{overflow:hidden!important}a[data-to-view]{cursor:pointer}.ui-widget-overlay{background:#040404;opacity:.5;filter:Alpha(Opacity=50)}.ui-dialog{border-radius:8px;border:none;padding:0}.ui-dialog.ui-widget{border:none}.ui-dialog-titlebar{display:none}.ui-dialog .ui-dialog-content{padding:0;overflow:visible}.ui-dialog .project_name{word-break:break-all}.ui-dialog-content{--dialog-header-height: 50px;--dialog-layer-pageSelector: 0px;--dialog-footer-height: 50px}.ui-dialog-content-withPageSelector{--dialog-layer-pageSelector: 42px}.modal-header,.modal-body,.modal-footer{font-size:14px;position:relative}.modal-body{padding:var(--padding-default)}.modal-header{border-bottom:1px solid var(--dialog-border-color);height:var(--dialog-header-height);padding:0 var(--padding-default);display:flex;justify-content:space-between;align-items:center;gap:16px}.modal-header>*{padding:10px 0;font-size:16px}.modal-header>.top-title{margin:0;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;order:50;display:flex;align-items:center}.modal-header>.top-title>div[class*=icon]{display:none}.modal-header>div:not(.top-title){order:60}.modal-header>div.close{--top-icon-color: var(--color-text-3);cursor:pointer;background:var(--color-layout-front-1);font-size:16px;order:100;animation-name:none!important}.modal-header>div.close:hover{--top-icon-color: var(--color-text-1)}.modal-header .links_icons{position:absolute;right:50px}.modal-header .links_icons [class*=icon-]{width:auto;height:auto;padding:0 5px;color:#d6dee0}.modal-header .links_icons [class*=icon-].active{color:var(--color-bg-warning-1)}.modal-layer-pageSelector{padding:0 10px!important}.modal-body{max-height:calc(var(--100vh) - var(--dialog-header-height) - 1px - var(--dialog-layer-pageSelector) - var(--top-dialog-footer-height, var(--dialog-footer-height)) - 1px);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;flex-grow:1}.modal-body hr{margin:16px -15px}.modal-body h4{padding:0;margin:0 0 10px;line-height:normal}.modal-body .inner{padding:var(--padding-default);margin:0 calc(0px - var(--padding-default));position:relative}.modal-body .inner .bt{border-top:1px dashed var(--color-layout-front-primary-3);position:absolute;top:0;right:0;left:0}.modal-body .inner .bb{border-bottom:1px dashed var(--color-layout-front-primary-3);position:absolute;right:0;bottom:0;left:0}.modal-body .inner.color-1{background:var(--color-layout-front-primary-3);color:var(--color-text-1)}.modal-body .inner strong{color:var(--color-text-1)}.modal-body .comment{line-height:18px}.modal-footer{min-height:var(--top-dialog-footer-height, var(--dialog-footer-height));display:flex;flex-shrink:0;align-items:center;justify-content:flex-end}.modal-footer>*:not(.btn):not(.top-button){padding:10px}.modal-footer .btn{min-width:90px;margin:18px 18px 18px 0}.modal-footer .btn:first-child:last-child{margin-left:18px}.modal-footer .modal-footer-btn-left{margin-left:8px;margin-right:auto}.modal-footer>.btn.full_width,.modal-footer>.top-button.full_width{border-radius:0;padding:9px 0;margin:0!important;flex-grow:1;align-self:flex-end}.modal-footer>.top-button{margin-right:8px}.ui-dialog-content>.modal-layer>[data-view-page]>input[type=submit]{position:absolute;visibility:hidden}.help_popup .modal-header{display:none}.help_popup .modal-header a{top:2px;z-index:10}.help_popup .modal-header .top-title{display:none}.modal-layer{overflow:hidden}.modal-layer a[data-top-icon]:empty{color:var(--color-text-4);text-decoration:none}.modal-layer>[data-view-page]>div>div.buttons{display:flex;white-space:nowrap}.modal-layer>[data-view-page]>div>div.buttons:empty{display:none}.modal-layer>[data-view-page]>div>div.buttons>div,.modal-layer>[data-view-page]>div>div.buttons>a{cursor:pointer;width:auto;height:auto;min-width:auto;min-height:auto;padding:10px 9px;color:var(--color-text-4)}.modal-layer>[data-view-page]>div>div.buttons>div:hover{color:var(--color-text-2)}.modal-layer>[data-view-page]>div>div.buttons>div.hidden{display:none!important}.ui-dialog-content[data-view-page-active]{display:flex!important;flex-direction:column;justify-items:stretch}.ui-dialog-content>.modal-layer{display:flex!important;align-items:stretch;position:relative}.ui-dialog-content.i-change-page>.modal-layer{overflow:hidden}.ui-dialog-content>.modal-layer>[data-view-page]{width:100%;position:relative;display:none;flex-direction:column;justify-content:space-between;animation:.3s cubic-bezier(.4,0,.2,1) forwards}.ui-dialog-content>.modal-layer>[data-view-page].active{display:flex}.ui-dialog-content>.modal-layer>[data-view-page].reverse{animation-direction:reverse}.ui-dialog-content>.modal-layer>[data-view-page].center-to-left,.ui-dialog-content>.modal-layer>[data-view-page].right-to-center{display:flex;position:absolute;inset:0}.ui-dialog-content>.modal-layer>[data-view-page].center-to-left>div,.ui-dialog-content>.modal-layer>[data-view-page].right-to-center>div{overflow:hidden}.ui-dialog-content>.modal-layer-header{border-bottom:1px solid var(--dialog-border-color);min-height:var(--dialog-header-height)}.ui-dialog-content>.modal-layer-header>[data-view-page]>.modal-header{border:none;background:none}.ui-dialog-content>.modal-layer-header>[data-view-page]>.modal-header>*{animation:.3s cubic-bezier(.4,0,.2,1) forwards}.ui-dialog-content>.modal-layer-header>[data-view-page].reverse>.modal-header>*{animation-direction:reverse}.ui-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>.top-title{animation-name:dialog-center-to-left-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>.top-title{animation-name:dialog-right-to-center-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>[class*=widget-]{animation-name:dialog-center-to-left-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>[class*=widget-]{animation-name:dialog-right-to-center-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>div{animation-name:dialog-center-to-left-header-icons}.ui-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>div{animation-name:dialog-right-to-center-header-icons}.ui-dialog-content>.modal-layer-body{border-radius:0 0 8px 8px;max-height:calc(var(--100vh) - var(--dialog-header-height) - var(--dialog-layer-pageSelector) - var(--toolbar-height));flex-grow:2}.ui-dialog-content.i-change-page>.modal-layer-body>[data-view-page]{background:var(--color-layout-front-1)}.ui-dialog-content>.modal-layer-body>[data-view-page].center-to-left{animation-name:dialog-center-to-left}.ui-dialog-content>.modal-layer-body>[data-view-page].right-to-center{animation-name:dialog-right-to-center}.ui-dialog-content>.modal-layer>[data-view-page]>.modal-footer{padding:0;border:none;background:none}.ui-dialog-content .modal-footer .second_level{box-sizing:border-box;background:var(--color-layout-front-1);width:100%;min-height:25px;padding:10px var(--padding-default);display:flex;align-items:center;justify-content:center}.ui-dialog-content .modal-footer .second_level input{border-radius:8px;width:100%;height:var(--top-forms-base-height);padding:var(--top-padding-1) var(--top-padding-3);box-sizing:border-box}.ui-dialog-content>.modal-layer-body>[data-view-page].i-load-data{pointer-events:none}.ui-dialog-content>.modal-layer-body>[data-view-page].i-load-data:before{content:" ";background:#378dc6;width:0;height:4px;position:absolute;top:0;left:0;z-index:100;animation:top-loadbar var(--dialog-loading-duration) forwards}.ui-dialog-content.modal-expanded{width:100vw!important;height:calc(var(--100vh) + 10px)!important}.modal-header>[data-widget]{padding:0 8px;position:absolute;inset:0;opacity:0;overflow:hidden;align-items:center;visibility:hidden;transition:opacity .3s;z-index:1}.modal-header>[data-widget=search] div.cancel{opacity:0;transform:translate(100%);transition:transform,opacity;transition-duration:.3s}[data-view-page].i-show-search .modal-header>:not([data-widget=search]){visibility:hidden}[data-view-page].i-show-search [data-widget=search]{visibility:visible;opacity:1}[data-view-page].i-show-search [data-widget=search] .cancel{transform:translate(0);opacity:1}[data-view-page]>.modal-header>*{transition:opacity .3s}[data-view-page].i-show-search>.modal-header>div.buttons{opacity:0}.modal-layer .top-popup-wrapper{height:100%!important}@keyframes dialog-center-to-left-header-title{0%{transform:translate(0);opacity:1}75%{opacity:0}to{transform:translate(-30%);opacity:0}}@keyframes dialog-right-to-center-header-title{0%{transform:translate(100%);opacity:0}25%{opacity:0}to{transform:translate(0);opacity:1}}@keyframes dialog-center-to-left-header-icons{0%{transform:translate(0);opacity:1}35%{transform:translate(-20%);opacity:0}to{trantransform:translateX(-20%);opacity:0}}@keyframes dialog-right-to-center-header-icons{0%{transform:translate(20%);opacity:0}65%{transform:translate(20%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes dialog-center-to-left{0%{transform:translate(0);filter:brightness(1)}to{transform:translate(-30%);filter:brightness(.9)}}@keyframes dialog-right-to-center{0%{transform:translate(100%);box-shadow:#0000001a 0 0 10px}to{transform:translate(0);box-shadow:#0003 0 0 10px}}@media only screen and (max-width: 1480px){.win_side_panel_opener{display:none}}@media only screen and (min-width: 1480px){.ui-dialog-content.with_side_panel{box-shadow:#0003 0 0 6px}.ui-dialog-content.with_side_panel .modal-layer-body{background:var(--color-layout-front-1)}[data-widget=side_panel]{--side_panel_width: calc((100vw - 900px)/2 - 28px) ;box-sizing:border-box;background:var(--color-layout-front-1);max-width:var(--side_panel_width);padding:18px;position:absolute;top:calc(var(--dialog-header-height) + 1px + var(--dialog-layer-pageSelector));bottom:calc(var(--dialog-footer-height) + 1px);z-index:-1;display:block;transition:.2s}.win_side_panel_left{border-radius:8px 0 0 8px;right:100%}.win_side_panel_right{border-radius:0 8px 8px 0;left:100%}.win_side_panel_closed.win_side_panel_left{right:calc(100% - var(--side_panel_width))}.win_side_panel_closed.win_side_panel_right{left:calc(100% - var(--side_panel_width))}[data-widget=side_panel] .template{display:block}[data-widget=side_panel] .template>.header,[data-widget=side_panel] .template>.footer{display:flex}.win_side_panel_opener{cursor:pointer;background:var(--color-cyan);color:#fff;padding:4px;position:absolute;top:20px}.win_side_panel_closed .win_side_panel_opener:not(:hover){opacity:.3}.win_side_panel_left .win_side_panel_opener{border-radius:4px 0 0 4px;right:100%}.win_side_panel_right .win_side_panel_opener{border-radius:0 6px 6px 0;left:100%}}@media only screen and (max-height: 900px){html.with_dialog{background:#f1f1f1;overflow:hidden}.ui-dialog.me-tightly{border-radius:0;height:auto!important;position:fixed;top:0!important;bottom:0!important}.ui-dialog.me-tightly .ui-dialog-content{min-height:100%!important}.ui-dialog.me-tightly>div>.modal-body{position:absolute;top:var(--dialog-header-height);right:0;left:0;bottom:var(--dialog-header-height)}.ui-dialog.me-tightly>div>.modal-body:last-child{bottom:0}.ui-dialog.me-tightly>div>.modal-footer{position:absolute;right:0;bottom:0;left:0}.ui-dialog.me-tightly .modal-layer-body{border-radius:0;min-height:0!important}.ui-dialog.me-tightly .modal-layer-body .modal-footer{min-height:unset}}',L='html.with_dialog body{height:var(--100vh);overflow:hidden}.ui-widget-overlay{height:calc(100% - var(--toolbar-height))}.ui-dialog{border-radius:0;width:auto!important;height:auto!important;position:fixed;inset:0!important}.ui-dialog-content{width:100%!important;height:100%!important;min-width:0!important;max-width:100%!important}.modal-header>.top-title{text-align:center;font-size:14px}.modal-header>div.close{font-size:14px;order:1}.modal-header>div.close:before{content:""}.modal-body:last-child{bottom:0}.modal-footer{bottom:0}.modal-footer .second_level{padding:10px 8px}.modal-layer-body{min-height:0!important}.ui-dialog-content>.modal-layer-body{border-radius:0}.modal-body,.modal-footer{padding-right:12px;padding-left:12px}.modal-footer .btn:last-child{margin-right:12px}.modal-body .inner{padding:12px;margin:0 -12px;position:relative}',q=".modal-menu-opener{order:1!important}.modal-menu-opener:before{--top-icon-size: 20px;--top-icon-color: #FFF;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--color-bg-primary-1);padding:3px;transition:transform .1s}.modal-menu-opener:hover:before{background:var(--color-bg-primary-2)}.modal-menu-opener.top-active:before{background:var(--color-bg-primary-2);transform:scale(.8)}.modal-layer .top-popup-wrapper{background:transparent;width:auto!important;padding:0!important;margin:0!important;top:0!important;right:0!important;left:0!important;transition:background .3s}.modal-layer .top-popup-wrapper>.top-popup[class],.modal-layer .top-popup-wrapper.with_notch>.top-popup[class]{border-radius:8px;border:none;margin:12px!important;max-width:100%;max-height:calc(100% - 24px);inset:0 0 auto!important;overflow:auto;display:flex;flex-direction:column;opacity:1;transform:translateY(calc(-100% - 24px));transition:transform .3s}.modal-layer .top-popup>.top-popup_header{background:var(--color-theme-50)}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select{border:none}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select .text{color:#fff}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select .arrow{background:none}.modal-layer .top-popup-wrapper-shown:not(.top-popup-wrapper-closed){background:#34495e40}@media only screen and (min-width: 1480px){.ui-dialog-content.with_side_panel{box-shadow:#0003 0 0 6px}.ui-dialog-content.with_side_panel .modal-layer-body{background:var(--color-layout-front-1)}[data-widget=side_panel]{--side_panel_width: calc((100vw - 900px)/2 - 28px) ;box-sizing:border-box;background:var(--color-layout-front-1);max-width:var(--side_panel_width);padding:18px;display:block;position:absolute;top:51px;bottom:51px;z-index:-1;transition:.2s}.win_side_panel_left{border-radius:8px 0 0 8px;right:100%}.win_side_panel_right{border-radius:0 8px 8px 0;left:100%}.win_side_panel_closed.win_side_panel_left{right:calc(100% - var(--side_panel_width))}.win_side_panel_closed.win_side_panel_right{left:calc(100% - var(--side_panel_width))}[data-widget=side_panel] .template{display:block}[data-widget=side_panel] .template>.header,[data-widget=side_panel] .template>.footer{display:flex}.win_side_panel_opener{cursor:pointer;background:var(--color-cyan);color:#fff;padding:4px;position:absolute;top:20px}.win_side_panel_closed .win_side_panel_opener:not(:hover){opacity:.3}.win_side_panel_left .win_side_panel_opener{border-radius:4px 0 0 4px;right:100%}.win_side_panel_right .win_side_panel_opener{border-radius:0 6px 6px 0;left:100%}}",M=":root{--top-dialog-width: auto;--top-dialog-height: auto;--top-dialog-footer-height: 50px}.top-dialog{max-width:100vw}.top-dialog .modal-layer-body{height:var(--top-dialog-height)}.top-dialog .modal-footer{padding:0 var(--top-gap-2)!important;gap:var(--top-gap-2)}.top-dialog .modal-footer>.top-button{margin:0}@media only screen and (max-width: 600px){.top-dialog .modal-footer{padding:var(--top-gap-2)!important;flex-direction:column;align-items:stretch}}",D=".top-dialog{width:var(--top-dialog-width)!important}";p.Core.insertStyleToPage(A),p.Core.insertStyleToPage(L,"m"),p.Core.insertStyleToPage(q,"pc"),p.Core.insertStyleToPage(M),p.Core.insertStyleToPage(D,"pc");let C,v=!1;const H=()=>{$.extend($.ui.dialog.prototype.options,{focus:e=>{var t;e.target.focus(),(t=$("[autofocus]",e.target)[0])==null||t.focus()},create:e=>B(e.target),open:e=>I(e.target),close:e=>K(e.target),modal:!0,resizable:!1,closeOnEscape:!1,width:"auto",minHeight:0}),$.ui.dialog.prototype._focusTabbable=$.noop,$.ui.dialog.prototype._moveToTopOriginal=$.ui.dialog.prototype._moveToTop,$.ui.dialog.prototype._moveToTop=function(){this._moveToTopOriginal();const e=$(this.element);e.trigger("dialogsMoveToTop",[e])},j(),v=!0},z=e=>{var a,o,i,r;const t={};return((o=(a=e[0])==null?void 0:a.dataset)==null?void 0:o.modal)==="false"&&(t.modal=!1),(r=(i=e[0])==null?void 0:i.dataset)!=null&&r.position&&(t.position=JSON.parse(e[0].dataset.position)),t},m=async(e,t,a)=>{if(!e.startsWith("dialog_"))return;const o=l.getDialogWorker(e);if(o&&(o.isOpened.value=!0,t!==void 0&&(o.pageActive.value=t),a!==void 0&&(o.pageActiveNext.value=a),await h.nextTick(),a)){const i=$("#"+e);$('[data-view-page="'+a+'"]',i).length||await k.waitWhile(()=>!$('[data-view-page="'+a+'"]',i).length)}},B=e=>{var t,a;(a=(t=l.TopDialogWorker.state).decoratorOnCreate)==null||a.call(t,e),F(e)},F=e=>{$(e).on("aftershow.top-menu-popup","[data-top-popup]",(t,a)=>{l.TopDialogWorker.get$pairPage(a).eq(1).prepend(a)})},I=async e=>{var n;var t=$(e),a=t.data("view-page-active");const o=Number($(window).width());p.Core.state.documentClassModificators.set("top-dialog","with_dialog");const r=Number($(window).width())-o;Number($(document).height())>Number($(window).height())&&$("html").css({"margin-right":r+"px"}),S();const d=l.getDialogWorker(t.attr("id"));(n=d==null?void 0:d.emit)==null||n.call(d,"open",a)},K=async e=>{var r;var t=$(e),a=t.attr("id"),o=t.data("view-page-active");o&&(f.setHash("vpn",l.TopDialogWorker.state.viewPageN),f.setHash("view-"+a,null,!1),(l.TopDialogWorker.state.viewPageN===0||l.TopDialogWorker.state.viewPageN===1)&&f.setHash("vpn",null)),$(".ui-widget-overlay:visible").length||(p.Core.state.documentClassModificators.delete("top-dialog"),$("html").css({"margin-right":""})),t.trigger("viewAfterClose",[t]);const i=l.getDialogWorker(t.attr("id"));i&&(i.isOpened.value=!1,(r=i.emit)==null||r.call(i,"close",o),i.onCloseOnce&&(i.onCloseOnce(i.props,o),i.onCloseOnce=void 0)),window.dispatchEvent(new Event("resize"))},S=()=>{$(".ui-dialog:visible > .ui-dialog-content").each((e,t)=>{const a=$(t),o=$(".modal-body:visible",a),i=a.closest(".ui-dialog");if(!o.length)return;const r=z(a);r.position??={of:window},a.dialog("option",r),i.removeClass("me-tightly"),Number(i.height())>Number($(window).height())&&i.addClass("me-tightly")})},R=async(e,t)=>{const o=/(\w+)[=-]([\w-]+)(?::([\w.:-]+))?/g.exec(e);if(o){const i=o[1],r=o[2],d=o[3];let n=[];d&&(n=d.split(":")),await w(i,r,n,t)}},w=async(e,t,a,o,i)=>{v||await new Promise((d,n)=>{const s=setInterval(()=>{v&&(clearInterval(s),d())},10)}),await h.nextTick();let r;if(typeof e=="object"?r=e:r=$("#"+e),!r.length&&typeof e=="string"&&l.TopDialogWorker.state.load){await l.TopDialogWorker.state.load(e),w(e,t,a,o,i);return}if(await y(r,t,a,o),r.is(".ui-dialog-content"))r.dialog("open");else{const d=z(r);r.dialog(d)}i&&i(r)},y=async(e,t,a,o)=>{if(t===void 0&&(t=e.data("view-page-active")),t!=e.data("view-page-active")){var i=E(e);i&&await k.sleep(100)}a===void 0&&(a=[]),await m(e.attr("id"),void 0,t);var r=$("> .modal-layer",e),d=$("> .active",r),n=$('> [data-view-page="'+t+'"]',r),s=a.join(":");if(o===void 0&&(o="next",n.data("order")<d.data("order")&&(o="prev")),!!n.length){if(e.data("view-page-active",t),n.is(".active")){n.data("view-page-args")!=s&&n.data("view-page-args",s),W(e,n,t,a),x(e,n,t,a);return}switch(n.data("view-page-args",s),$(".top-popup-wrapper",d).length&&O.TopPopupWorker.close($(".top-popup-wrapper",d)[0]),n.closest(".ui-dialog").is(":hidden")&&(o="none"),d.length||(o="none"),n.is(":visible")&&(o="none"),o){case"prev":n.each((g,c)=>{$(c).insertBefore($(c).siblings(".active"))}),d.addClass("right-to-center reverse"),n.addClass("center-to-left reverse");break;case"next":n.each((g,c)=>{$(c).insertAfter($(c).siblings(".active"))}),d.addClass("center-to-left"),n.addClass("right-to-center");break}if(e.attr("view-page-active",t),d.removeClass("active"),n.addClass("active"),W(e,n,t,a),o){e.addClass("i-change-page");const g=Number(n.css("animation-duration").replace("s",""))*1e3;C=setTimeout(function(){m(e.attr("id"),t,""),E(e),x(e,n,t,a)},g)}else await m(e.attr("id"),t,""),x(e,n,t,a)}},U=e=>{var t="",a=$("> .modal-layer",e),o=$("> .active",a).eq(0),i=o.prev("[data-view-page]");t=i.data("view-page"),t?y(e,t,void 0,"prev"):e.dialog("close")},b=new Set,W=(e,t,a,o)=>{const i=e.attr("id")+t.eq(0).data("view-page")+a+o.join();b.has(i)||(b.add(i),setTimeout(function(){b.delete(i),e.trigger("viewBeforeOpen",[e,t,a,o])}))},x=(e,t,a,o)=>{setTimeout(function(){e.trigger("viewAfterOpen",[e,t,a,o])})},V=e=>e.is(".i-change-page"),E=e=>{if(!V(e))return!1;clearTimeout(C);var t=$("> .modal-layer",e),a=e.data("view-page-active");return e.removeClass("i-change-page"),$("> [data-view-page]",t).removeClass("center-to-left right-to-center reverse active"),$('> [data-view-page="'+a+'"]',t).addClass("active"),!0},u={updatePageVue:m,recalcPositions:S,toViewDirty:R,toView:w,toViewPage:y,toPrevPage:U,setLoading:(e,t,a)=>{e.is("[data-view-page]")||(e=$("[data-view-page]:visible",e)),t?(a!==void 0&&e.each((o,i)=>{i.style.setProperty("--dialog-loading-duration",a+"s")}),e.addClass("i-load-data")):(e.removeClass("i-load-data"),e.each((o,i)=>{i.style.setProperty("--dialog-loading-duration","10s")}))},isLoading:e=>e.is(".i-load-data"),inAnimation:V,close:function(e){const t=$("#"+e);t.dialog("instance")&&t.dialog("close")}};H(),_.TopDialogUtils=u,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})});
|
|
2
|
-
//# sourceMappingURL=utils-
|
|
1
|
+
define(["require","exports","vue","./forms-CmlWMEyk.amd","../popup/worker.amd","../utils/system.amd","../utils/route.amd","./utils-CI9JyH64.amd","../utils/dom.amd"],function(X,_,h,p,O,k,v,l,P){"use strict";if(typeof h>"u")var h=window.Vue;$;let T=!1;const j=()=>{T||(T=!0,document.addEventListener("keydown",e=>{if(e.key!=="Escape"||!e.target)return;const t=e.target;t.closest(".ui-dialog")&&(t.contentEditable==="true"||t.contentEditable==="plaintext-only"||P.querySelectorVisible(document.documentElement,".top-popup-wrapper")||t.classList.contains("autocomplete")||P.querySelectorVisible(document.documentElement,".fancybox-container")||$(".ui-dialog-content:visible:last").dialog("close"))}),$(document).on("click",'[data-action="top-dialog-close"]',e=>{e.preventDefault();const t=e.target.closest('[data-action="top-dialog-close"]'),o=t.closest(".ui-dialog-content");if(!o)return;const a=$(o),i=t.dataset.toView;if(i=="toPrevPage()"){u.toPrevPage(a);return}if(i){var r=i.split("-"),d=r.shift(),n=r.join("-"),s=$("#"+d),g=$('[data-view-page="'+n+'"]',s);if(!g.is(":visible")){const c=l.TopDialogWorker.genViewPageHash(i,"prev");location.hash=c;return}}a.dialog("close")}),$(document).on("submit",".modal-body > form, .modal-layer-body > form",function(e){e.preventDefault()}),$(document).on("keypress",".ui-dialog .modal-body :input:not(.searcher), .ui-dialog .modal-body [contenteditable]",function(e){if(e.key==="ENTER"){if(e.target.classList.contains("autocomplete")){e.preventDefault();return}if(e.target.tagName==="TEXTAREA"){if(!e.ctrlKey&&!e.metaKey)return;const t=e.target.closest("form");if(t){let o=$(":submit:visible",t)[0];o||(o=$(":submit:visible",t)[0]),o==null||o.click()}}}}),$(document).on("click",".ui-widget-overlay",function(){let e,t=0;$(".ui-dialog:visible").each((o,a)=>{const i=Number($(a).css("z-index"));i<t||(e=$(a),t=i)}),e&&$(".ui-dialog-content",e).dialog("close")}),$(window).on("resize",u.recalcPositions),u.recalcPositions())},A=':root{--dialog-border-color: var(--color-line-1);--dialog-loading-duration: 10s}html.with_dialog{overflow:hidden!important}a[data-to-view]{cursor:pointer}.ui-widget-overlay{background:#040404;opacity:.5;filter:Alpha(Opacity=50)}.ui-dialog{border-radius:8px;border:none;padding:0}.ui-dialog.ui-widget{border:none}.ui-dialog-titlebar{display:none}.ui-dialog .ui-dialog-content{padding:0;overflow:visible}.ui-dialog .project_name{word-break:break-all}.ui-dialog-content{--dialog-header-height: 50px;--dialog-layer-pageSelector: 0px;--dialog-footer-height: 50px}.ui-dialog-content-withPageSelector{--dialog-layer-pageSelector: 42px}.modal-header,.modal-body,.modal-footer{font-size:14px;position:relative}.modal-body{padding:var(--padding-default)}.modal-header{border-bottom:1px solid var(--dialog-border-color);height:var(--dialog-header-height);padding:0 var(--padding-default);display:flex;justify-content:space-between;align-items:center;gap:16px}.modal-header>*{padding:10px 0;font-size:16px}.modal-header>.top-title{margin:0;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;order:50;display:flex;align-items:center}.modal-header>.top-title>div[class*=icon]{display:none}.modal-header>div:not(.top-title){order:60}.modal-header>div.close{--top-icon-color: var(--color-text-3);cursor:pointer;background:var(--color-layout-front-1);font-size:16px;order:100;animation-name:none!important}.modal-header>div.close:hover{--top-icon-color: var(--color-text-1)}.modal-header .links_icons{position:absolute;right:50px}.modal-header .links_icons [class*=icon-]{width:auto;height:auto;padding:0 5px;color:#d6dee0}.modal-header .links_icons [class*=icon-].active{color:var(--color-bg-warning-1)}.modal-layer-pageSelector{padding:0 10px!important}.modal-body{max-height:calc(var(--100vh) - var(--dialog-header-height) - 1px - var(--dialog-layer-pageSelector) - var(--top-dialog-footer-height, var(--dialog-footer-height)) - 1px);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;flex-grow:1}.modal-body hr{margin:16px -15px}.modal-body h4{padding:0;margin:0 0 10px;line-height:normal}.modal-body .inner{padding:var(--padding-default);margin:0 calc(0px - var(--padding-default));position:relative}.modal-body .inner .bt{border-top:1px dashed var(--color-layout-front-primary-3);position:absolute;top:0;right:0;left:0}.modal-body .inner .bb{border-bottom:1px dashed var(--color-layout-front-primary-3);position:absolute;right:0;bottom:0;left:0}.modal-body .inner.color-1{background:var(--color-layout-front-primary-3);color:var(--color-text-1)}.modal-body .inner strong{color:var(--color-text-1)}.modal-body .comment{line-height:18px}.modal-footer{min-height:var(--top-dialog-footer-height, var(--dialog-footer-height));display:flex;flex-shrink:0;align-items:center;justify-content:flex-end}.modal-footer>*:not(.btn):not(.top-button){padding:10px}.modal-footer .btn{min-width:90px;margin:18px 18px 18px 0}.modal-footer .btn:first-child:last-child{margin-left:18px}.modal-footer .modal-footer-btn-left{margin-left:8px;margin-right:auto}.modal-footer>.btn.full_width,.modal-footer>.top-button.full_width{border-radius:0;padding:9px 0;margin:0!important;flex-grow:1;align-self:flex-end}.modal-footer>.top-button{margin-right:8px}.ui-dialog-content>.modal-layer>[data-view-page]>input[type=submit]{position:absolute;visibility:hidden}.help_popup .modal-header{display:none}.help_popup .modal-header a{top:2px;z-index:10}.help_popup .modal-header .top-title{display:none}.modal-layer{overflow:hidden}.modal-layer a[data-top-icon]:empty{color:var(--color-text-4);text-decoration:none}.modal-layer>[data-view-page]>div>div.buttons{display:flex;white-space:nowrap}.modal-layer>[data-view-page]>div>div.buttons:empty{display:none}.modal-layer>[data-view-page]>div>div.buttons>div,.modal-layer>[data-view-page]>div>div.buttons>a{cursor:pointer;width:auto;height:auto;min-width:auto;min-height:auto;padding:10px 9px;color:var(--color-text-4)}.modal-layer>[data-view-page]>div>div.buttons>div:hover{color:var(--color-text-2)}.modal-layer>[data-view-page]>div>div.buttons>div.hidden{display:none!important}.ui-dialog-content[data-view-page-active]{display:flex!important;flex-direction:column;justify-items:stretch}.ui-dialog-content>.modal-layer{display:flex!important;align-items:stretch;position:relative}.ui-dialog-content.i-change-page>.modal-layer{overflow:hidden}.ui-dialog-content>.modal-layer>[data-view-page]{width:100%;position:relative;display:none;flex-direction:column;justify-content:space-between;animation:.3s cubic-bezier(.4,0,.2,1) forwards}.ui-dialog-content>.modal-layer>[data-view-page].active{display:flex}.ui-dialog-content>.modal-layer>[data-view-page].reverse{animation-direction:reverse}.ui-dialog-content>.modal-layer>[data-view-page].center-to-left,.ui-dialog-content>.modal-layer>[data-view-page].right-to-center{display:flex;position:absolute;inset:0}.ui-dialog-content>.modal-layer>[data-view-page].center-to-left>div,.ui-dialog-content>.modal-layer>[data-view-page].right-to-center>div{overflow:hidden}.ui-dialog-content>.modal-layer-header{border-bottom:1px solid var(--dialog-border-color);min-height:var(--dialog-header-height)}.ui-dialog-content>.modal-layer-header>[data-view-page]>.modal-header{border:none;background:none}.ui-dialog-content>.modal-layer-header>[data-view-page]>.modal-header>*{animation:.3s cubic-bezier(.4,0,.2,1) forwards}.ui-dialog-content>.modal-layer-header>[data-view-page].reverse>.modal-header>*{animation-direction:reverse}.ui-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>.top-title{animation-name:dialog-center-to-left-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>.top-title{animation-name:dialog-right-to-center-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>[class*=widget-]{animation-name:dialog-center-to-left-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>[class*=widget-]{animation-name:dialog-right-to-center-header-title}.ui-dialog-content>.modal-layer-header>[data-view-page].center-to-left>.modal-header>div{animation-name:dialog-center-to-left-header-icons}.ui-dialog-content>.modal-layer-header>[data-view-page].right-to-center>.modal-header>div{animation-name:dialog-right-to-center-header-icons}.ui-dialog-content>.modal-layer-body{border-radius:0 0 8px 8px;max-height:calc(var(--100vh) - var(--dialog-header-height) - var(--dialog-layer-pageSelector) - var(--toolbar-height));flex-grow:2}.ui-dialog-content.i-change-page>.modal-layer-body>[data-view-page]{background:var(--color-layout-front-1)}.ui-dialog-content>.modal-layer-body>[data-view-page].center-to-left{animation-name:dialog-center-to-left}.ui-dialog-content>.modal-layer-body>[data-view-page].right-to-center{animation-name:dialog-right-to-center}.ui-dialog-content>.modal-layer>[data-view-page]>.modal-footer{padding:0;border:none;background:none}.ui-dialog-content .modal-footer .second_level{box-sizing:border-box;background:var(--color-layout-front-1);width:100%;min-height:25px;padding:10px var(--padding-default);display:flex;align-items:center;justify-content:center}.ui-dialog-content .modal-footer .second_level input{border-radius:8px;width:100%;height:var(--top-forms-base-height);padding:var(--top-padding-1) var(--top-padding-3);box-sizing:border-box}.ui-dialog-content>.modal-layer-body>[data-view-page].i-load-data{pointer-events:none}.ui-dialog-content>.modal-layer-body>[data-view-page].i-load-data:before{content:" ";background:#378dc6;width:0;height:4px;position:absolute;top:0;left:0;z-index:100;animation:top-loadbar var(--dialog-loading-duration) forwards}.ui-dialog-content.modal-expanded{width:100vw!important;height:calc(var(--100vh) + 10px)!important}.modal-header>[data-widget]{padding:0 8px;position:absolute;inset:0;opacity:0;overflow:hidden;align-items:center;visibility:hidden;transition:opacity .3s;z-index:1}.modal-header>[data-widget=search] div.cancel{opacity:0;transform:translate(100%);transition:transform,opacity;transition-duration:.3s}[data-view-page].i-show-search .modal-header>:not([data-widget=search]){visibility:hidden}[data-view-page].i-show-search [data-widget=search]{visibility:visible;opacity:1}[data-view-page].i-show-search [data-widget=search] .cancel{transform:translate(0);opacity:1}[data-view-page]>.modal-header>*{transition:opacity .3s}[data-view-page].i-show-search>.modal-header>div.buttons{opacity:0}.modal-layer .top-popup-wrapper{height:100%!important}@keyframes dialog-center-to-left-header-title{0%{transform:translate(0);opacity:1}75%{opacity:0}to{transform:translate(-30%);opacity:0}}@keyframes dialog-right-to-center-header-title{0%{transform:translate(100%);opacity:0}25%{opacity:0}to{transform:translate(0);opacity:1}}@keyframes dialog-center-to-left-header-icons{0%{transform:translate(0);opacity:1}35%{transform:translate(-20%);opacity:0}to{trantransform:translateX(-20%);opacity:0}}@keyframes dialog-right-to-center-header-icons{0%{transform:translate(20%);opacity:0}65%{transform:translate(20%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes dialog-center-to-left{0%{transform:translate(0);filter:brightness(1)}to{transform:translate(-30%);filter:brightness(.9)}}@keyframes dialog-right-to-center{0%{transform:translate(100%);box-shadow:#0000001a 0 0 10px}to{transform:translate(0);box-shadow:#0003 0 0 10px}}@media only screen and (max-width: 1480px){.win_side_panel_opener{display:none}}@media only screen and (min-width: 1480px){.ui-dialog-content.with_side_panel{box-shadow:#0003 0 0 6px}.ui-dialog-content.with_side_panel .modal-layer-body{background:var(--color-layout-front-1)}[data-widget=side_panel]{--side_panel_width: calc((100vw - 900px)/2 - 28px) ;box-sizing:border-box;background:var(--color-layout-front-1);max-width:var(--side_panel_width);padding:18px;position:absolute;top:calc(var(--dialog-header-height) + 1px + var(--dialog-layer-pageSelector));bottom:calc(var(--dialog-footer-height) + 1px);z-index:-1;display:block;transition:.2s}.win_side_panel_left{border-radius:8px 0 0 8px;right:100%}.win_side_panel_right{border-radius:0 8px 8px 0;left:100%}.win_side_panel_closed.win_side_panel_left{right:calc(100% - var(--side_panel_width))}.win_side_panel_closed.win_side_panel_right{left:calc(100% - var(--side_panel_width))}[data-widget=side_panel] .template{display:block}[data-widget=side_panel] .template>.header,[data-widget=side_panel] .template>.footer{display:flex}.win_side_panel_opener{cursor:pointer;background:var(--color-cyan);color:#fff;padding:4px;position:absolute;top:20px}.win_side_panel_closed .win_side_panel_opener:not(:hover){opacity:.3}.win_side_panel_left .win_side_panel_opener{border-radius:4px 0 0 4px;right:100%}.win_side_panel_right .win_side_panel_opener{border-radius:0 6px 6px 0;left:100%}}@media only screen and (max-height: 900px){html.with_dialog{background:#f1f1f1;overflow:hidden}.ui-dialog.me-tightly{border-radius:0;height:auto!important;position:fixed;top:0!important;bottom:0!important}.ui-dialog.me-tightly .ui-dialog-content{min-height:100%!important}.ui-dialog.me-tightly>div>.modal-body{position:absolute;top:var(--dialog-header-height);right:0;left:0;bottom:var(--dialog-header-height)}.ui-dialog.me-tightly>div>.modal-body:last-child{bottom:0}.ui-dialog.me-tightly>div>.modal-footer{position:absolute;right:0;bottom:0;left:0}.ui-dialog.me-tightly .modal-layer-body{border-radius:0;min-height:0!important}.ui-dialog.me-tightly .modal-layer-body .modal-footer{min-height:unset}}',L='html.with_dialog body{height:var(--100vh);overflow:hidden}.ui-widget-overlay{height:calc(100% - var(--toolbar-height))}.ui-dialog{border-radius:0;width:auto!important;height:auto!important;position:fixed;inset:0!important}.ui-dialog-content{width:100%!important;height:100%!important;min-width:0!important;max-width:100%!important}.modal-header>.top-title{text-align:center;font-size:14px}.modal-header>div.close{font-size:14px;order:1}.modal-header>div.close:before{content:""}.modal-body:last-child{bottom:0}.modal-footer{bottom:0}.modal-footer .second_level{padding:10px 8px}.modal-layer-body{min-height:0!important}.ui-dialog-content>.modal-layer-body{border-radius:0}.modal-body,.modal-footer{padding-right:12px;padding-left:12px}.modal-footer .btn:last-child{margin-right:12px}.modal-body .inner{padding:12px;margin:0 -12px;position:relative}',q=".modal-menu-opener{order:1!important}.modal-menu-opener:before{--top-icon-size: 20px;--top-icon-color: #FFF;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--color-bg-primary-1);padding:3px;transition:transform .1s}.modal-menu-opener:hover:before{background:var(--color-bg-primary-2)}.modal-menu-opener.top-active:before{background:var(--color-bg-primary-2);transform:scale(.8)}.modal-layer .top-popup-wrapper{background:transparent;width:auto!important;padding:0!important;margin:0!important;top:0!important;right:0!important;left:0!important;transition:background .3s}.modal-layer .top-popup-wrapper>.top-popup[class],.modal-layer .top-popup-wrapper.with_notch>.top-popup[class]{border-radius:8px;border:none;margin:12px!important;max-width:100%;max-height:calc(100% - 24px);inset:0 0 auto!important;overflow:auto;display:flex;flex-direction:column;opacity:1;transform:translateY(calc(-100% - 24px));transition:transform .3s}.modal-layer .top-popup>.top-popup_header{background:var(--color-theme-50)}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select{border:none}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select .text{color:#fff}.modal-layer .top-theme-lite .top-popup>.top-popup_header .select .arrow{background:none}.modal-layer .top-popup-wrapper-shown:not(.top-popup-wrapper-closed){background:#34495e40}@media only screen and (min-width: 1480px){.ui-dialog-content.with_side_panel{box-shadow:#0003 0 0 6px}.ui-dialog-content.with_side_panel .modal-layer-body{background:var(--color-layout-front-1)}[data-widget=side_panel]{--side_panel_width: calc((100vw - 900px)/2 - 28px) ;box-sizing:border-box;background:var(--color-layout-front-1);max-width:var(--side_panel_width);padding:18px;display:block;position:absolute;top:51px;bottom:51px;z-index:-1;transition:.2s}.win_side_panel_left{border-radius:8px 0 0 8px;right:100%}.win_side_panel_right{border-radius:0 8px 8px 0;left:100%}.win_side_panel_closed.win_side_panel_left{right:calc(100% - var(--side_panel_width))}.win_side_panel_closed.win_side_panel_right{left:calc(100% - var(--side_panel_width))}[data-widget=side_panel] .template{display:block}[data-widget=side_panel] .template>.header,[data-widget=side_panel] .template>.footer{display:flex}.win_side_panel_opener{cursor:pointer;background:var(--color-cyan);color:#fff;padding:4px;position:absolute;top:20px}.win_side_panel_closed .win_side_panel_opener:not(:hover){opacity:.3}.win_side_panel_left .win_side_panel_opener{border-radius:4px 0 0 4px;right:100%}.win_side_panel_right .win_side_panel_opener{border-radius:0 6px 6px 0;left:100%}}",M=":root{--top-dialog-width: auto;--top-dialog-height: auto;--top-dialog-footer-height: 50px}.top-dialog{max-width:100vw}.top-dialog .modal-layer-body{height:var(--top-dialog-height)}.top-dialog .modal-footer{padding:0 var(--top-gap-2)!important;gap:var(--top-gap-2)}.top-dialog .modal-footer>.top-button{margin:0}@media only screen and (max-width: 600px){.top-dialog .modal-footer{padding:var(--top-gap-2)!important;flex-direction:column;align-items:stretch}}",D=".top-dialog{width:var(--top-dialog-width)!important}";p.Core.insertStyleToPage(A),p.Core.insertStyleToPage(L,"m"),p.Core.insertStyleToPage(q,"pc"),p.Core.insertStyleToPage(M),p.Core.insertStyleToPage(D,"pc");let C,f=!1;const H=()=>{$.extend($.ui.dialog.prototype.options,{focus:e=>{var t;e.target.focus(),(t=$("[autofocus]",e.target)[0])==null||t.focus()},create:e=>B(e.target),open:e=>I(e.target),close:e=>K(e.target),modal:!0,resizable:!1,closeOnEscape:!1,width:"auto",minHeight:0}),$.ui.dialog.prototype._focusTabbable=$.noop,$.ui.dialog.prototype._moveToTopOriginal=$.ui.dialog.prototype._moveToTop,$.ui.dialog.prototype._moveToTop=function(){this._moveToTopOriginal();const e=$(this.element);e.trigger("dialogsMoveToTop",[e])},j(),f=!0},z=e=>{var o,a,i,r;const t={};return((a=(o=e[0])==null?void 0:o.dataset)==null?void 0:a.modal)==="false"&&(t.modal=!1),(r=(i=e[0])==null?void 0:i.dataset)!=null&&r.position&&(t.position=JSON.parse(e[0].dataset.position)),t},m=async(e,t,o)=>{if(!e.startsWith("dialog_"))return;const a=l.getDialogWorker(e);if(a&&(a.isOpened.value=!0,t!==void 0&&(a.pageActive.value=t),o!==void 0&&(a.pageActiveNext.value=o),await h.nextTick(),o)){const i=$("#"+e);$('[data-view-page="'+o+'"]',i).length||await k.waitWhile(()=>!$('[data-view-page="'+o+'"]',i).length)}},B=e=>{var t,o;(o=(t=l.TopDialogWorker.state).decoratorOnCreate)==null||o.call(t,e),F(e)},F=e=>{$(e).on("aftershow.top-menu-popup","[data-top-popup]",(t,o)=>{l.TopDialogWorker.get$pairPage(o).eq(1).prepend(o)})},I=async e=>{var n;var t=$(e),o=t.data("view-page-active");const a=Number($(window).width());p.Core.state.documentClassModificators.set("top-dialog","with_dialog");const r=Number($(window).width())-a;Number($(document).height())>Number($(window).height())&&$("html").css({"margin-right":r+"px"}),S();const d=l.getDialogWorker(t.attr("id"));(n=d==null?void 0:d.emit)==null||n.call(d,"open",o)},K=async e=>{var r;var t=$(e),o=t.attr("id"),a=t.data("view-page-active");a&&(v.setHash("vpn",l.TopDialogWorker.state.viewPageN),v.setHash("view-"+o,null,!1),(l.TopDialogWorker.state.viewPageN===0||l.TopDialogWorker.state.viewPageN===1)&&v.setHash("vpn",null)),$(".ui-widget-overlay:visible").length||(p.Core.state.documentClassModificators.delete("top-dialog"),$("html").css({"margin-right":""})),t.trigger("viewAfterClose",[t]);const i=l.getDialogWorker(t.attr("id"));i&&(i.isOpened.value=!1,(r=i.emit)==null||r.call(i,"close",a),i.onCloseOnce&&(i.onCloseOnce(i.props,a),i.onCloseOnce=void 0)),window.dispatchEvent(new Event("resize"))},S=()=>{$(".ui-dialog:visible > .ui-dialog-content").each((e,t)=>{const o=$(t),a=$(".modal-body:visible",o),i=o.closest(".ui-dialog");if(!a.length)return;const r=z(o);r.position??={of:window},o.dialog("option",r),i.removeClass("me-tightly"),Number(i.height())>Number($(window).height())&&i.addClass("me-tightly")})},R=async(e,t)=>{const a=/(\w+)[=-]([\w-]+)(?::([\w.:-]+))?/g.exec(e);if(a){const i=a[1],r=a[2],d=a[3];let n=[];d&&(n=d.split(":")),await w(i,r,n,t)}},w=async(e,t,o,a,i)=>{f||await new Promise((d,n)=>{const s=setInterval(()=>{f&&(clearInterval(s),d())},10)}),await h.nextTick();let r;if(typeof e=="object"?r=e:r=$("#"+e),!r.length&&typeof e=="string"&&l.TopDialogWorker.state.load){await l.TopDialogWorker.state.load(e),w(e,t,o,a,i);return}if(await y(r,t,o,a),r.is(".ui-dialog-content"))r.dialog("open");else{const d=z(r);r.dialog(d)}i&&i(r)},y=async(e,t,o,a)=>{if(t===void 0&&(t=e.data("view-page-active")),t!=e.data("view-page-active")){var i=E(e);i&&await k.sleep(100)}o===void 0&&(o=[]),await m(e.attr("id"),void 0,t);var r=$("> .modal-layer",e),d=$("> .active",r),n=$('> [data-view-page="'+t+'"]',r),s=o.join(":");if(a===void 0&&(a="next",n.data("order")<d.data("order")&&(a="prev")),!!n.length){if(e.data("view-page-active",t),n.is(".active")){n.data("view-page-args")!=s&&n.data("view-page-args",s),W(e,n,t,o),x(e,n,t,o);return}switch(n.data("view-page-args",s),$(".top-popup-wrapper",d).length&&O.TopPopupWorker.close($(".top-popup-wrapper",d)[0]),n.closest(".ui-dialog").is(":hidden")&&(a="none"),d.length||(a="none"),n.is(":visible")&&(a="none"),a){case"prev":n.each((g,c)=>{$(c).insertBefore($(c).siblings(".active"))}),d.addClass("right-to-center reverse"),n.addClass("center-to-left reverse");break;case"next":n.each((g,c)=>{$(c).insertAfter($(c).siblings(".active"))}),d.addClass("center-to-left"),n.addClass("right-to-center");break}if(e.attr("view-page-active",t),d.removeClass("active"),n.addClass("active"),W(e,n,t,o),a){e.addClass("i-change-page");const g=Number(n.css("animation-duration").replace("s",""))*1e3;C=setTimeout(function(){m(e.attr("id"),t,""),E(e),x(e,n,t,o)},g)}else await m(e.attr("id"),t,""),x(e,n,t,o)}},U=e=>{var t="",o=$("> .modal-layer",e),a=$("> .active",o).eq(0),i=a.prev("[data-view-page]");t=i.data("view-page"),t?y(e,t,void 0,"prev"):e.dialog("close")},b=new Set,W=(e,t,o,a)=>{const i=e.attr("id")+t.eq(0).data("view-page")+o+a.join();b.has(i)||(b.add(i),setTimeout(function(){b.delete(i),e.trigger("viewBeforeOpen",[e,t,o,a])}))},x=(e,t,o,a)=>{setTimeout(function(){e.trigger("viewAfterOpen",[e,t,o,a])})},V=e=>e.is(".i-change-page"),E=e=>{if(!V(e))return!1;clearTimeout(C);var t=$("> .modal-layer",e),o=e.data("view-page-active");return e.removeClass("i-change-page"),$("> [data-view-page]",t).removeClass("center-to-left right-to-center reverse active"),$('> [data-view-page="'+o+'"]',t).addClass("active"),!0},u={updatePageVue:m,recalcPositions:S,toViewDirty:R,toView:w,toViewPage:y,toPrevPage:U,setLoading:(e,t,o)=>{e.is("[data-view-page]")||(e=$("[data-view-page]:visible",e)),t?(o!==void 0&&e.each((a,i)=>{i.style.setProperty("--dialog-loading-duration",o+"s")}),e.addClass("i-load-data")):(e.removeClass("i-load-data"),e.each((a,i)=>{i.style.setProperty("--dialog-loading-duration","10s")}))},isLoading:e=>e.is(".i-load-data"),inAnimation:V,close:function(e){const t=$("#"+e);t.dialog("instance")&&t.dialog("close")}};H(),_.TopDialogUtils=u,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})});
|
|
2
|
+
//# sourceMappingURL=utils-lvXB5hbW.amd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-ByeZ1FPX.amd.js","sources":["../../src/components/dialog/lib/utils.globalEvents.ts","../../src/components/dialog/lib/utils.ts"],"sourcesContent":["import { TopDialogUtils } from './utils';\nimport { TopDialogWorker } from './worker';\nimport { querySelectorVisible } from '@/core/utils/dom';\nimport type { $el } from '@/components/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) return;\n\n\t\tconst el = e.target as HTMLElement;\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\t$('.ui-dialog-content:visible:last').dialog('close');\n\t});\n\n\t/**\n\t * Закрытие диалога по кнопке закрыть\n\t */\n\t$(document).on('click', '[data-action=\"top-dialog-close\"]', (e) => {\n\t\te.preventDefault();\n\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\tconst el = e.target.closest('[data-action=\"top-dialog-close\"]');\n\n\t\tconst elDialog = el.closest('.ui-dialog-content');\n\t\tif (!elDialog) return;\n\n\t\tconst $dialog = $(elDialog);\n\n\t\t// если к кнопке привязана ссылка, диалоговое окно не нужно закрывать\n\t\tconst toView = el.dataset.toView;\n\n\t\tif (toView == 'toPrevPage()') {\n\t\t\tTopDialogUtils.toPrevPage($dialog);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (toView) {\n\t\t\tvar viewNameAndPageLink = toView.split('-');\n\t\t\tvar viewName = viewNameAndPageLink.shift();\n\t\t\tvar pageLink = viewNameAndPageLink.join('-');\n\n\t\t\tvar $toDialog = $('#' + viewName);\n\t\t\tvar $toPage = $('[data-view-page=\"' + pageLink + '\"]', $toDialog);\n\t\t\tif (!$toPage.is(':visible')) {\n\t\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, 'prev');\n\n\t\t\t\t// добавляет текущую страницу в историю браузера\n\t\t\t\tlocation.hash = hash;\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\treturn;\n\t\t\t}\n\t\t}\n\n\t\t$dialog.dialog('close');\n\t});\n\n\t/**\n\t * Все submit должны обрабатываться через js\n\t */\n\t$(document).on('submit', '.modal-body > form, .modal-layer-body > form', function (e) {\n\t\te.preventDefault();\n\t});\n\n\t/**\n\t * Выполнение действия по нажатию Enter\n\t *\n\t * @todo Убрать `.searcher`\n\t */\n\t$(document).on('keypress', '.ui-dialog .modal-body :input:not(.searcher), .ui-dialog .modal-body [contenteditable]', function (e) {\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 (e.target.classList.contains('autocomplete')) {\n\t\t\te.preventDefault();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// реализация submit по ctrl + Enter\n\t\tif (e.target.tagName === 'TEXTAREA') {\n\t\t\tif (!e.ctrlKey && !e.metaKey) return;\n\n\t\t\tconst elForm = e.target.closest('form');\n\n\t\t\tif (elForm) {\n\t\t\t\tlet elSubmit = $(':submit:visible', elForm)[0];\n\t\t\t\tif (!elSubmit) elSubmit = $(':submit:visible', elForm)[0];\n\n\t\t\t\telSubmit?.click();\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Закрытие диалога по клику вне окна\n\t */\n\t$(document).on('click', '.ui-widget-overlay', function () {\n\t\tlet $dialogWrapper: $el | undefined = undefined;\n\t\tlet topZIndex = 0;\n\n\t\t$('.ui-dialog:visible').each((_index, el) => {\n\t\t\tconst zIndex = Number($(el).css('z-index'));\n\t\t\tif (zIndex < topZIndex) return;\n\n\t\t\t$dialogWrapper = $(el);\n\t\t\ttopZIndex = zIndex;\n\t\t});\n\n\t\tif ($dialogWrapper) {\n\t\t\t$('.ui-dialog-content', $dialogWrapper).dialog('close');\n\t\t}\n\t});\n\n\t$(window).on('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 { setHash } from '@/core/utils/route';\n\nimport type { 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 type { $el } from '@/components/types';\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\nconst init = () => {\n\t// if(window.history && history.length == 1) setHash('vpn', null);\n\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 = ($dialog: $el) => {\n\tconst options: {\n\t\tmodal?: boolean,\n\t\tposition?: any,\n\t} = {};\n\n\tif ($dialog[0]?.dataset?.modal === 'false') options.modal = false;\n\tif ($dialog[0]?.dataset?.position) options.position = JSON.parse($dialog[0].dataset.position);\n\n\treturn options;\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 $dialog = $('#' + dialogId);\n\t\tconst $nextPage = $('[data-view-page=\"' + pageNameNext + '\"]', $dialog);\n\n\t\tif (!$nextPage.length) {\n\t\t\tawait waitWhile(() => !$('[data-view-page=\"' + pageNameNext + '\"]', $dialog).length);\n\t\t}\n\t}\n};\n\n/**\n * Callback for jQuery dialog onCreate\n */\nconst onCreate = (elDialog: HTMLElement) => {\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 $pageContent = TopDialogWorker.get$pairPage($popup).eq(1);\n\t\t$pageContent.prepend($popup);\n\t});\n};\n\n/**\n * Callback for jQuery dialog onOpen\n */\nconst onOpen = async (elDialog: HTMLElement) => {\n\tvar $dialog = $(elDialog);\n\tvar pageName = $dialog.data('view-page-active');\n\n\tconst w1 = Number($(window).width());\n\n\tCore.state.documentClassModificators.set('top-dialog', 'with_dialog');\n\n\tconst w2 = Number($(window).width());\n\n\tconst scrollBarWidth = w2 - w1;\n\tif (Number($(document).height()) > Number($(window).height())) $('html').css({ 'margin-right': scrollBarWidth + 'px' });\n\n\trecalcPositions();\n\n\tconst dialog = getDialogWorker($dialog.attr('id') as string);\n\tdialog?.emit?.('open', pageName);\n};\n\n/**\n * Callback for jQuery dialog onClose\n */\nconst onClose = async (elDialog: HTMLElement) => {\n\tvar $dialog = $(elDialog);\n\n\tvar viewName = $dialog.attr('id');\n\tvar pageName = $dialog.data('view-page-active');\n\tif (pageName) {\n\t\tsetHash('vpn', TopDialogWorker.state.viewPageN);\n\t\tsetHash('view-' + viewName, null, false);\n\n\t\tif (TopDialogWorker.state.viewPageN === 0 || TopDialogWorker.state.viewPageN === 1) setHash('vpn', null);\n\t}\n\n\tif (!$('.ui-widget-overlay:visible').length){\n\t\tCore.state.documentClassModificators.delete('top-dialog');\n\n\t\t$('html').css({ 'margin-right': '' });\n\t}\n\n\t$dialog.trigger('viewAfterClose', [$dialog]);\n\n\tconst dialog = getDialogWorker($dialog.attr('id') as string);\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\t$('.ui-dialog:visible > .ui-dialog-content').each((_index, eldDialog: HTMLElement) => {\n\t\tconst $dialog = $(eldDialog);\n\t\tconst $dialogBody = $('.modal-body:visible', $dialog);\n\t\tconst $ui = $dialog.closest('.ui-dialog');\n\n\t\tif (!$dialogBody.length) return;\n\n\t\tconst options = genVueOptions($dialog);\n\n\t\toptions.position ??= { of: window };\n\n\t\t$dialog.dialog('option', options);\n\n\t\t$ui.removeClass('me-tightly');\n\t\tif (Number($ui.height()) > Number($(window).height())) $ui.addClass('me-tightly');\n\t});\n};\n\n// переход к view page по неразобранной ссылке в формате: {viewName}-{pageName}[:args]\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 {string|$} viewNameOr$Dialog - id страницы окна или jQuery элемент окна\n * @param {?string} pageName - имя страницы\n * @param {?Array<any>} args - аргументы, набор проивзольных параметров, которые могут обрабатываться каждым окном по своему\n * @param {?Function} callback - функция, которая будет запущена после октытия страницы\n */\nconst toView = async (\n\tviewNameOr$Dialog: $el | 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 $dialog: $el;\n\tif (typeof (viewNameOr$Dialog) === 'object') {\n\t\t$dialog = viewNameOr$Dialog;\n\t} else {\n\t\t$dialog = $('#' + viewNameOr$Dialog);\n\t}\n\n\t// Диалоговое окно еще не загружено\n\tif (!$dialog.length && typeof (viewNameOr$Dialog) == 'string' && TopDialogWorker.state.load) {\n\t\tawait TopDialogWorker.state.load(viewNameOr$Dialog);\n\n\t\ttoView(viewNameOr$Dialog, pageName, args, moveDirection, callback);\n\n\t\treturn;\n\t}\n\n\tawait toViewPage($dialog, pageName, args, moveDirection);\n\n\tif ($dialog.is('.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($dialog);\n\n\t\t$dialog.dialog(options);\n\t}\n\n\tif (callback) callback($dialog);\n};\n\nconst toViewPage = async ($dialog: $el, pageName?: string, args?: string[], moveDirection?: MoveDirection) => {\n\tif (pageName === undefined) pageName = $dialog.data('view-page-active') as string;\n\n\tif (pageName != $dialog.data('view-page-active')) {\n\t\tvar stopped = stopAnimations($dialog);\n\t\tif (stopped) await sleep(100);\n\t}\n\n\tif (args === undefined) args = [];\n\n\tawait updatePageVue($dialog.attr('id') as string, undefined, pageName);\n\n\tvar $modalLayers = $('> .modal-layer', $dialog);\n\tvar $currentPage = $('> .active', $modalLayers);\n\tvar $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\tvar argsString = args.join(':');\n\n\tif (moveDirection === undefined) {\n\t\tmoveDirection = 'next';\n\t\tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t}\n\n\tif (!$nextPage.length) return;\n\n\t$dialog.data('view-page-active', pageName);\n\n\t// запрашиваемая страница уже открыта\n\tif ($nextPage.is('.active')) {\n\t\tif ($nextPage.data('view-page-args') != argsString) {\n\t\t\t$nextPage.data('view-page-args', argsString);\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($dialog, $nextPage, pageName, args);\n\t\tafterOpenViewPage($dialog, $nextPage, pageName, args);\n\n\t\treturn;\n\t}\n\n\t$nextPage.data('view-page-args', argsString);\n\n\tif ($('.top-popup-wrapper', $currentPage).length) {\n\t\tTopPopupWorker.close($('.top-popup-wrapper', $currentPage)[0]);\n\t}\n\n\tif ($nextPage.closest('.ui-dialog').is(':hidden')) moveDirection = 'none';\n\tif (!$currentPage.length) moveDirection = 'none';\n\tif ($nextPage.is(':visible')) moveDirection = 'none';\n\tswitch (moveDirection) {\n\t\tcase 'prev':\n\t\t\t$nextPage.each((_index, el) => {\n\t\t\t\t$(el).insertBefore($(el).siblings('.active'));\n\t\t\t});\n\n\t\t\t$currentPage.addClass('right-to-center reverse');\n\t\t\t$nextPage.addClass('center-to-left reverse');\n\n\t\t\tbreak;\n\t\tcase 'next':\n\t\t\t$nextPage.each((_index, el) => {\n\t\t\t\t$(el).insertAfter($(el).siblings('.active'));\n\t\t\t});\n\n\t\t\t$currentPage.addClass('center-to-left');\n\t\t\t$nextPage.addClass('right-to-center');\n\n\t\t\tbreak;\n\t}\n\n\t$dialog.attr('view-page-active', pageName);\n\n\t$currentPage.removeClass('active');\n\t$nextPage.addClass('active');\n\n\tbeforeOpenViewPage($dialog, $nextPage, pageName, args);\n\n\tif (moveDirection) {\n\t\t$dialog.addClass('i-change-page');\n\t\tconst delay = Number($nextPage.css('animation-duration').replace('s', '')) * 1000;\n\n\t\ttimerClearAnimation = setTimeout(function () {\n\t\t\tupdatePageVue($dialog.attr('id') as string, pageName, '');\n\t\t\tstopAnimations($dialog);\n\t\t\tafterOpenViewPage($dialog, $nextPage, pageName, args);\n\t\t}, delay);\n\t} else {\n\t\tawait updatePageVue($dialog.attr('id') as string, pageName, '');\n\t\tafterOpenViewPage($dialog, $nextPage, pageName, args);\n\t}\n};\n\n/**\n * К предыдущему представлению\n */\nconst toPrevPage = ($dialog: $el) => {\n\tvar prevPageName = '';\n\n\tvar $modalLayers = $('> .modal-layer', $dialog);\n\tvar $currentPage = $('> .active', $modalLayers).eq(0);\n\tvar $prevPage = $currentPage.prev('[data-view-page]');\n\tprevPageName = $prevPage.data('view-page');\n\n\tif (prevPageName) {\n\t\ttoViewPage($dialog, prevPageName, undefined, 'prev');\n\t} else {\n\t\t$dialog.dialog('close');\n\t}\n};\n\n/**\n * Для обработки событий вне vue\n */\nconst beforeOpenViewPageTimers = new Set();\nconst beforeOpenViewPage = ($dialog: $el, $page: $el, pageName: string, args: string[]) => {\n\t// группировка цепочки событий\n\t// запрос на открытие страницы может выполняться несколько раз, чаще такое может быть при открытии, загрузке и переходе сразу к нужной странице\n\tconst eventKey = $dialog.attr('id') + $page.eq(0).data('view-page') + pageName + args.join();\n\n\tif (beforeOpenViewPageTimers.has(eventKey)) return;\n\tbeforeOpenViewPageTimers.add(eventKey);\n\n\tsetTimeout(function () {\n\t\tbeforeOpenViewPageTimers.delete(eventKey);\n\t\t$dialog.trigger('viewBeforeOpen', [$dialog, $page, pageName, args]);\n\t});\n};\n\n/**\n * Для обработки событий вне vue\n */\nconst afterOpenViewPage = ($dialog: $el, $page: $el, pageName: string, args: string[]) => {\n\tsetTimeout(function () {\n\t\t$dialog.trigger('viewAfterOpen', [$dialog, $page, pageName, args]);\n\t});\n};\n\n/**\n * Получить состояние: Диалоговое окно находится в состоянии смены страницы\n */\nconst inAnimation = ($dialog: $el) => {\n\treturn $dialog.is('.i-change-page');\n};\n\n/**\n * Остановить анимацию смены страницы\n *\n * @returns Вернет true, если анимация производилась и была остановлена\n */\nconst stopAnimations = ($dialog: $el) => {\n\tif (!inAnimation($dialog)) return false;\n\n\tclearTimeout(timerClearAnimation);\n\n\tvar $modalLayers = $('> .modal-layer', $dialog);\n\n\tvar pageName = $dialog.data('view-page-active');\n\t$dialog.removeClass('i-change-page');\n\t$('> [data-view-page]', $modalLayers).removeClass('center-to-left right-to-center reverse active');\n\t$('> [data-view-page=\"' + pageName + '\"]', $modalLayers).addClass('active');\n\n\treturn true;\n};\n\n/**\n * Закрыть диалоговое окно\n */\nconst close = function (dialogId: string) {\n\tconst $dialog = $('#' + dialogId);\n\n\tif (!$dialog.dialog('instance')) return;\n\n\t$dialog.dialog('close');\n};\n\n/**\n * Управление props.isLoading\n */\nconst setLoading = ($page: $el, isLoading: boolean, duration?: number) => {\n\tif (!$page.is('[data-view-page]')) $page = $('[data-view-page]:visible', $page);\n\n\tif (isLoading) {\n\t\tif (duration !== undefined) {\n\t\t\t$page.each((_index, el) => {\n\t\t\t\tel.style.setProperty('--dialog-loading-duration', duration + 's');\n\t\t\t});\n\t\t}\n\n\t\t$page.addClass('i-load-data');\n\t} else {\n\t\t$page.removeClass('i-load-data');\n\n\t\t$page.each((_index, el) => {\n\t\t\tel.style.setProperty('--dialog-loading-duration', '10s');\n\t\t});\n\t}\n};\n\nconst isLoading = ($page: $el) => {\n\treturn $page.is('.i-load-data');\n};\n\nexport const TopDialogUtils = {\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":["el","$dialog","elDialog","toView","TopDialogUtils","viewName","viewNameAndPageLink","$toPage","pageLink","$toDialog","hash","elSubmit","elForm","zIndex","topZIndex","$dialogWrapper","Core","timerClearAnimation","_a","initDialogGlobalEvents","genVueOptions","_b","options","dialog","utils","dialogId","pageNameNext","utils_system","onCreate","initPopup","_e","$popup","onOpen","w1","scrollBarWidth","recalcPositions","pageName","onClose","eldDialog","$dialogBody","$ui","toViewDirty","toViewPageName","moveDirection","toViewParts","argsString","viewNameOr$Dialog","args","callback","timer","resolve","stopped","stopAnimations","updatePageVue","$nextPage","$modalLayers","$currentPage","popup_worker","toPrevPage","prevPageName","$prevPage","beforeOpenViewPageTimers","eventKey","$page","inAnimation","toViewPage","duration","init"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils-lvXB5hbW.amd.js","sources":["../../src/components/dialog/lib/utils.globalEvents.ts","../../src/components/dialog/lib/utils.ts"],"sourcesContent":["import { TopDialogUtils } from './utils';\nimport { TopDialogWorker } from './worker';\nimport { querySelectorVisible } from '@/core/utils/dom';\nimport type { $el } from '@/components/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) return;\n\n\t\tconst el = e.target as HTMLElement;\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\t$('.ui-dialog-content:visible:last').dialog('close');\n\t});\n\n\t/**\n\t * Закрытие диалога по кнопке закрыть\n\t */\n\t$(document).on('click', '[data-action=\"top-dialog-close\"]', (e) => {\n\t\te.preventDefault();\n\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\tconst el = e.target.closest('[data-action=\"top-dialog-close\"]');\n\n\t\tconst elDialog = el.closest('.ui-dialog-content');\n\t\tif (!elDialog) return;\n\n\t\tconst $dialog = $(elDialog);\n\n\t\t// если к кнопке привязана ссылка, диалоговое окно не нужно закрывать\n\t\tconst toView = el.dataset.toView;\n\n\t\tif (toView == 'toPrevPage()') {\n\t\t\tTopDialogUtils.toPrevPage($dialog);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (toView) {\n\t\t\tvar viewNameAndPageLink = toView.split('-');\n\t\t\tvar viewName = viewNameAndPageLink.shift();\n\t\t\tvar pageLink = viewNameAndPageLink.join('-');\n\n\t\t\tvar $toDialog = $('#' + viewName);\n\t\t\tvar $toPage = $('[data-view-page=\"' + pageLink + '\"]', $toDialog);\n\t\t\tif (!$toPage.is(':visible')) {\n\t\t\t\tconst hash = TopDialogWorker.genViewPageHash(toView, 'prev');\n\n\t\t\t\t// добавляет текущую страницу в историю браузера\n\t\t\t\tlocation.hash = hash;\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\treturn;\n\t\t\t}\n\t\t}\n\n\t\t$dialog.dialog('close');\n\t});\n\n\t/**\n\t * Все submit должны обрабатываться через js\n\t */\n\t$(document).on('submit', '.modal-body > form, .modal-layer-body > form', function (e) {\n\t\te.preventDefault();\n\t});\n\n\t/**\n\t * Выполнение действия по нажатию Enter\n\t *\n\t * @todo Убрать `.searcher`\n\t */\n\t$(document).on('keypress', '.ui-dialog .modal-body :input:not(.searcher), .ui-dialog .modal-body [contenteditable]', function (e) {\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 (e.target.classList.contains('autocomplete')) {\n\t\t\te.preventDefault();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// реализация submit по ctrl + Enter\n\t\tif (e.target.tagName === 'TEXTAREA') {\n\t\t\tif (!e.ctrlKey && !e.metaKey) return;\n\n\t\t\tconst elForm = e.target.closest('form');\n\n\t\t\tif (elForm) {\n\t\t\t\tlet elSubmit = $(':submit:visible', elForm)[0];\n\t\t\t\tif (!elSubmit) elSubmit = $(':submit:visible', elForm)[0];\n\n\t\t\t\telSubmit?.click();\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Закрытие диалога по клику вне окна\n\t */\n\t$(document).on('click', '.ui-widget-overlay', function () {\n\t\tlet $dialogWrapper: $el | undefined = undefined;\n\t\tlet topZIndex = 0;\n\n\t\t$('.ui-dialog:visible').each((_index, el) => {\n\t\t\tconst zIndex = Number($(el).css('z-index'));\n\t\t\tif (zIndex < topZIndex) return;\n\n\t\t\t$dialogWrapper = $(el);\n\t\t\ttopZIndex = zIndex;\n\t\t});\n\n\t\tif ($dialogWrapper) {\n\t\t\t$('.ui-dialog-content', $dialogWrapper).dialog('close');\n\t\t}\n\t});\n\n\t$(window).on('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 { setHash } from '@/core/utils/route';\n\nimport type { 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 type { $el } from '@/components/types';\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\nconst init = () => {\n\t// if(window.history && history.length == 1) setHash('vpn', null);\n\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 = ($dialog: $el) => {\n\tconst options: {\n\t\tmodal?: boolean,\n\t\tposition?: any,\n\t} = {};\n\n\tif ($dialog[0]?.dataset?.modal === 'false') options.modal = false;\n\tif ($dialog[0]?.dataset?.position) options.position = JSON.parse($dialog[0].dataset.position);\n\n\treturn options;\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 $dialog = $('#' + dialogId);\n\t\tconst $nextPage = $('[data-view-page=\"' + pageNameNext + '\"]', $dialog);\n\n\t\tif (!$nextPage.length) {\n\t\t\tawait waitWhile(() => !$('[data-view-page=\"' + pageNameNext + '\"]', $dialog).length);\n\t\t}\n\t}\n};\n\n/**\n * Callback for jQuery dialog onCreate\n */\nconst onCreate = (elDialog: HTMLElement) => {\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 $pageContent = TopDialogWorker.get$pairPage($popup).eq(1);\n\t\t$pageContent.prepend($popup);\n\t});\n};\n\n/**\n * Callback for jQuery dialog onOpen\n */\nconst onOpen = async (elDialog: HTMLElement) => {\n\tvar $dialog = $(elDialog);\n\tvar pageName = $dialog.data('view-page-active');\n\n\tconst w1 = Number($(window).width());\n\n\tCore.state.documentClassModificators.set('top-dialog', 'with_dialog');\n\n\tconst w2 = Number($(window).width());\n\n\tconst scrollBarWidth = w2 - w1;\n\tif (Number($(document).height()) > Number($(window).height())) $('html').css({ 'margin-right': scrollBarWidth + 'px' });\n\n\trecalcPositions();\n\n\tconst dialog = getDialogWorker($dialog.attr('id') as string);\n\tdialog?.emit?.('open', pageName);\n};\n\n/**\n * Callback for jQuery dialog onClose\n */\nconst onClose = async (elDialog: HTMLElement) => {\n\tvar $dialog = $(elDialog);\n\n\tvar viewName = $dialog.attr('id');\n\tvar pageName = $dialog.data('view-page-active');\n\tif (pageName) {\n\t\tsetHash('vpn', TopDialogWorker.state.viewPageN);\n\t\tsetHash('view-' + viewName, null, false);\n\n\t\tif (TopDialogWorker.state.viewPageN === 0 || TopDialogWorker.state.viewPageN === 1) setHash('vpn', null);\n\t}\n\n\tif (!$('.ui-widget-overlay:visible').length){\n\t\tCore.state.documentClassModificators.delete('top-dialog');\n\n\t\t$('html').css({ 'margin-right': '' });\n\t}\n\n\t$dialog.trigger('viewAfterClose', [$dialog]);\n\n\tconst dialog = getDialogWorker($dialog.attr('id') as string);\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\t$('.ui-dialog:visible > .ui-dialog-content').each((_index, eldDialog: HTMLElement) => {\n\t\tconst $dialog = $(eldDialog);\n\t\tconst $dialogBody = $('.modal-body:visible', $dialog);\n\t\tconst $ui = $dialog.closest('.ui-dialog');\n\n\t\tif (!$dialogBody.length) return;\n\n\t\tconst options = genVueOptions($dialog);\n\n\t\toptions.position ??= { of: window };\n\n\t\t$dialog.dialog('option', options);\n\n\t\t$ui.removeClass('me-tightly');\n\t\tif (Number($ui.height()) > Number($(window).height())) $ui.addClass('me-tightly');\n\t});\n};\n\n// переход к view page по неразобранной ссылке в формате: {viewName}-{pageName}[:args]\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 {string|$} viewNameOr$Dialog - id страницы окна или jQuery элемент окна\n * @param {?string} pageName - имя страницы\n * @param {?Array<any>} args - аргументы, набор проивзольных параметров, которые могут обрабатываться каждым окном по своему\n * @param {?Function} callback - функция, которая будет запущена после октытия страницы\n */\nconst toView = async (\n\tviewNameOr$Dialog: $el | 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 $dialog: $el;\n\tif (typeof (viewNameOr$Dialog) === 'object') {\n\t\t$dialog = viewNameOr$Dialog;\n\t} else {\n\t\t$dialog = $('#' + viewNameOr$Dialog);\n\t}\n\n\t// Диалоговое окно еще не загружено\n\tif (!$dialog.length && typeof (viewNameOr$Dialog) == 'string' && TopDialogWorker.state.load) {\n\t\tawait TopDialogWorker.state.load(viewNameOr$Dialog);\n\n\t\ttoView(viewNameOr$Dialog, pageName, args, moveDirection, callback);\n\n\t\treturn;\n\t}\n\n\tawait toViewPage($dialog, pageName, args, moveDirection);\n\n\tif ($dialog.is('.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($dialog);\n\n\t\t$dialog.dialog(options);\n\t}\n\n\tif (callback) callback($dialog);\n};\n\nconst toViewPage = async ($dialog: $el, pageName?: string, args?: string[], moveDirection?: MoveDirection) => {\n\tif (pageName === undefined) pageName = $dialog.data('view-page-active') as string;\n\n\tif (pageName != $dialog.data('view-page-active')) {\n\t\tvar stopped = stopAnimations($dialog);\n\t\tif (stopped) await sleep(100);\n\t}\n\n\tif (args === undefined) args = [];\n\n\tawait updatePageVue($dialog.attr('id') as string, undefined, pageName);\n\n\tvar $modalLayers = $('> .modal-layer', $dialog);\n\tvar $currentPage = $('> .active', $modalLayers);\n\tvar $nextPage = $('> [data-view-page=\"' + pageName + '\"]', $modalLayers);\n\tvar argsString = args.join(':');\n\n\tif (moveDirection === undefined) {\n\t\tmoveDirection = 'next';\n\t\tif ($nextPage.data('order') < $currentPage.data('order')) moveDirection = 'prev';\n\t}\n\n\tif (!$nextPage.length) return;\n\n\t$dialog.data('view-page-active', pageName);\n\n\t// запрашиваемая страница уже открыта\n\tif ($nextPage.is('.active')) {\n\t\tif ($nextPage.data('view-page-args') != argsString) {\n\t\t\t$nextPage.data('view-page-args', argsString);\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($dialog, $nextPage, pageName, args);\n\t\tafterOpenViewPage($dialog, $nextPage, pageName, args);\n\n\t\treturn;\n\t}\n\n\t$nextPage.data('view-page-args', argsString);\n\n\tif ($('.top-popup-wrapper', $currentPage).length) {\n\t\tTopPopupWorker.close($('.top-popup-wrapper', $currentPage)[0]);\n\t}\n\n\tif ($nextPage.closest('.ui-dialog').is(':hidden')) moveDirection = 'none';\n\tif (!$currentPage.length) moveDirection = 'none';\n\tif ($nextPage.is(':visible')) moveDirection = 'none';\n\tswitch (moveDirection) {\n\t\tcase 'prev':\n\t\t\t$nextPage.each((_index, el) => {\n\t\t\t\t$(el).insertBefore($(el).siblings('.active'));\n\t\t\t});\n\n\t\t\t$currentPage.addClass('right-to-center reverse');\n\t\t\t$nextPage.addClass('center-to-left reverse');\n\n\t\t\tbreak;\n\t\tcase 'next':\n\t\t\t$nextPage.each((_index, el) => {\n\t\t\t\t$(el).insertAfter($(el).siblings('.active'));\n\t\t\t});\n\n\t\t\t$currentPage.addClass('center-to-left');\n\t\t\t$nextPage.addClass('right-to-center');\n\n\t\t\tbreak;\n\t}\n\n\t$dialog.attr('view-page-active', pageName);\n\n\t$currentPage.removeClass('active');\n\t$nextPage.addClass('active');\n\n\tbeforeOpenViewPage($dialog, $nextPage, pageName, args);\n\n\tif (moveDirection) {\n\t\t$dialog.addClass('i-change-page');\n\t\tconst delay = Number($nextPage.css('animation-duration').replace('s', '')) * 1000;\n\n\t\ttimerClearAnimation = setTimeout(function () {\n\t\t\tupdatePageVue($dialog.attr('id') as string, pageName, '');\n\t\t\tstopAnimations($dialog);\n\t\t\tafterOpenViewPage($dialog, $nextPage, pageName, args);\n\t\t}, delay);\n\t} else {\n\t\tawait updatePageVue($dialog.attr('id') as string, pageName, '');\n\t\tafterOpenViewPage($dialog, $nextPage, pageName, args);\n\t}\n};\n\n/**\n * К предыдущему представлению\n */\nconst toPrevPage = ($dialog: $el) => {\n\tvar prevPageName = '';\n\n\tvar $modalLayers = $('> .modal-layer', $dialog);\n\tvar $currentPage = $('> .active', $modalLayers).eq(0);\n\tvar $prevPage = $currentPage.prev('[data-view-page]');\n\tprevPageName = $prevPage.data('view-page');\n\n\tif (prevPageName) {\n\t\ttoViewPage($dialog, prevPageName, undefined, 'prev');\n\t} else {\n\t\t$dialog.dialog('close');\n\t}\n};\n\n/**\n * Для обработки событий вне vue\n */\nconst beforeOpenViewPageTimers = new Set();\nconst beforeOpenViewPage = ($dialog: $el, $page: $el, pageName: string, args: string[]) => {\n\t// группировка цепочки событий\n\t// запрос на открытие страницы может выполняться несколько раз, чаще такое может быть при открытии, загрузке и переходе сразу к нужной странице\n\tconst eventKey = $dialog.attr('id') + $page.eq(0).data('view-page') + pageName + args.join();\n\n\tif (beforeOpenViewPageTimers.has(eventKey)) return;\n\tbeforeOpenViewPageTimers.add(eventKey);\n\n\tsetTimeout(function () {\n\t\tbeforeOpenViewPageTimers.delete(eventKey);\n\t\t$dialog.trigger('viewBeforeOpen', [$dialog, $page, pageName, args]);\n\t});\n};\n\n/**\n * Для обработки событий вне vue\n */\nconst afterOpenViewPage = ($dialog: $el, $page: $el, pageName: string, args: string[]) => {\n\tsetTimeout(function () {\n\t\t$dialog.trigger('viewAfterOpen', [$dialog, $page, pageName, args]);\n\t});\n};\n\n/**\n * Получить состояние: Диалоговое окно находится в состоянии смены страницы\n */\nconst inAnimation = ($dialog: $el) => {\n\treturn $dialog.is('.i-change-page');\n};\n\n/**\n * Остановить анимацию смены страницы\n *\n * @returns Вернет true, если анимация производилась и была остановлена\n */\nconst stopAnimations = ($dialog: $el) => {\n\tif (!inAnimation($dialog)) return false;\n\n\tclearTimeout(timerClearAnimation);\n\n\tvar $modalLayers = $('> .modal-layer', $dialog);\n\n\tvar pageName = $dialog.data('view-page-active');\n\t$dialog.removeClass('i-change-page');\n\t$('> [data-view-page]', $modalLayers).removeClass('center-to-left right-to-center reverse active');\n\t$('> [data-view-page=\"' + pageName + '\"]', $modalLayers).addClass('active');\n\n\treturn true;\n};\n\n/**\n * Закрыть диалоговое окно\n */\nconst close = function (dialogId: string) {\n\tconst $dialog = $('#' + dialogId);\n\n\tif (!$dialog.dialog('instance')) return;\n\n\t$dialog.dialog('close');\n};\n\n/**\n * Управление props.isLoading\n */\nconst setLoading = ($page: $el, isLoading: boolean, duration?: number) => {\n\tif (!$page.is('[data-view-page]')) $page = $('[data-view-page]:visible', $page);\n\n\tif (isLoading) {\n\t\tif (duration !== undefined) {\n\t\t\t$page.each((_index, el) => {\n\t\t\t\tel.style.setProperty('--dialog-loading-duration', duration + 's');\n\t\t\t});\n\t\t}\n\n\t\t$page.addClass('i-load-data');\n\t} else {\n\t\t$page.removeClass('i-load-data');\n\n\t\t$page.each((_index, el) => {\n\t\t\tel.style.setProperty('--dialog-loading-duration', '10s');\n\t\t});\n\t}\n};\n\nconst isLoading = ($page: $el) => {\n\treturn $page.is('.i-load-data');\n};\n\nexport const TopDialogUtils = {\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":["el","elDialog","$dialog","toView","TopDialogUtils","viewName","viewNameAndPageLink","$toPage","pageLink","$toDialog","hash","elSubmit","elForm","$dialogWrapper","topZIndex","zIndex","Core","timerClearAnimation","_a","genVueOptions","options","_b","dialog","utils","dialogId","pageName","pageNameNext","utils_system","onCreate","initPopup","_e","$popup","onOpen","w1","forms","scrollBarWidth","onClose","eldDialog","$dialogBody","$ui","toViewDirty","toViewPageName","moveDirection","toViewParts","argsString","args","viewNameOr$Dialog","callback","timer","isInited","stopped","stopAnimations","updatePageVue","$nextPage","$modalLayers","$currentPage","popup_worker","toPrevPage","prevPageName","beforeOpenViewPageTimers","eventKey","$page","inAnimation","recalcPositions","toViewPage","duration","init"],"mappings":"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"}
|
package/assets/core.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
button,input,textarea,select{border:1px solid var(--top-forms-border-color);background:var(--top-forms-background-color);color:var(--color-text-1);font-size:var(--top-font-size);font-family:inherit}::placeholder{color:var(--top-forms-placeholder-color)}[contenteditable][placeholder]:empty:before{content:attr(placeholder);color:var(--color-text-2)}.top-forms-optionWrapper{cursor:pointer;padding:8px 0;color:var(--color-text-1);line-height:1.3;display:inline-flex;align-items:flex-start;gap:4px}.top-forms-option{cursor:pointer;padding:0;margin:3px;display:inline-flex;flex-shrink:0;appearance:none;-webkit-appearance:none}.top-forms-focusable:focus-visible,.top-focus{outline:2px solid var(--color-line-primary-1);outline-offset:2px;position:relative;z-index:1;transition:border-color .15s}.top-forms-focusable:hover,.top-forms-focusable:focus,.top-focus:hover,.top-focus:focus,.top-input:hover>.top-input_input,.top-select:hover>.top-select_select{--top-forms-border-color: var(--top-forms-border-color-hover);--top-forms-background-color: var(--top-forms-background-color-hover)}[contenteditable]:focus-visible,.top-selector-multiselect:focus-within{outline:2px solid var(--color-line-primary-1)}:root{--top-font-size: 14px;--top-forms-radius: 8px;--top-forms-border-width: 1px;--top-style_outline-color: transparent;--top-forms-base-height_xs: 24px;--top-forms-base-height_s: 32px;--top-forms-base-height_m: 36px;--top-forms-base-height_l: 40px;--top-forms-base-height: var(--top-forms-base-height_s);--top-forms-padding_xs: 6px;--top-forms-padding_s: 8px;--top-forms-padding_m: 10px;--top-forms-padding_l: 12px;--top-forms-padding: var(--top-forms-padding_s);--top-forms-option-height: 24px;--top-select_arrow-width: 0px;--top-forms_clear-width: 0px;--top-forms-border-color: var(--color-line-1);--top-forms-border-color-hover: var(--color-line-primary-1);--top-forms-placeholder-color: var(--color-text-3);--top-forms-placeholder-color-active: var(--color-text-2);--top-forms-background-color: var(--color-layout-front-1);--top-forms-background-color-hover: var(--color-layout-front-1)}.top-size_xs{--top-forms-base-height: var(--top-forms-base-height_xs)}.top-size_s{--top-forms-base-height: var(--top-forms-base-height_s)}.top-size_m{--top-forms-base-height: var(--top-forms-base-height_m)}.top-size_l{--top-forms-base-height: var(--top-forms-base-height_l)}.top-input_input,.top-textarea_textarea,.top-editArea_form,.top-select_select{box-sizing:border-box;border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);display:inline-flex;appearance:none;-webkit-appearance:none}.top-select_select{padding-right:calc(var(--top-forms-padding) + var(--top-forms_clear-width) + var(--top-select_arrow-width))}.top-select{position:relative}.top-select[data-top-icon]:before,.top-select[data-top-icon2]:after{position:absolute;z-index:3}.top-select[data-top-icon][data-top-icon2]:after{left:calc(var(--top-icon-width))}.top-cleaner[data-top-icon]{--top-icon-size: 20px;--top-icon-width: 20px;--top-icon-color: var(--color-text-secondary);cursor:pointer;border-radius:50%;width:30px;height:24px;margin-left:-34px;transform:translate(calc(0px - var(--top-forms-border-width) - var(--top-select_arrow-width)));display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.top-cleaner[data-top-icon]:hover{--top-icon-color: var(--color-text-secondary-2)}.top-as-a{cursor:pointer;color:var(--color-text-primary)}.top-as-a:hover{text-decoration:underline}.top-ellipsis,.top-ellipsis1{max-height:100%;line-height:1.23;text-overflow:ellipsis;overflow:hidden;flex-grow:1}.top-ellipsis1{white-space:nowrap}.top-ellipsis2,.top-ellipsis3{max-width:fit-content;line-height:1.23;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.top-ellipsis3{-webkit-line-clamp:3}.top-hidden{display:none!important}.top-unvisible{width:0;height:0;overflow:hidden;position:absolute;-webkit-appearance:none;appearance:none;border:none}.top-unvisible:focus-visible{outline:none}.top-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}:disabled:not(option):not(optgroup),:disabled~.top-formsCaption,.top-disabled{opacity:.4;filter:grayscale(100%)}.top-input.top-disabled,.top-select.top-disabled{filter:unset}.top-input_input:disabled,.top-textarea_textarea:disabled,.top-select_select:disabled{opacity:1;background-color:var(--color-bg-shading-3);filter:unset}.top-checkbox_input:not(:checked):not(:indeterminate):disabled,.top-radio_input:not(:checked):disabled,.top-checkboxSwitcher_input:disabled{opacity:1;background-color:var(--color-layer-1)}.top-checkboxSwitcher_input:disabled{background-color:var(--color-layer-4)}.top-error,.top-error::placeholder,.top-error:before{--top-forms-border-color: var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error{--top-icon-color: var(--color-text-negative);color:var(--color-text-negative)}input.top-error:focus,textarea.top-error:focus,select.top-error:focus,div.top-error:focus{outline-color:var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error~.top-formsCaption{color:var(--color-text-negative)}.top-warning{--top-icon-color: var(--color-text-warning);color:var(--color-text-warning)}.top-forms-focusable.top-error{--top-error-keyframes-outline-100: 2px solid transparent;animation:top-error .6s ease-out}.top-forms-focusable.top-error:focus{--top-error-keyframes-outline-100: 2px solid var(--color-line-negative-1)}@keyframes top-error{0%{outline-offset:10px;outline:3px solid transparent}50%{outline-offset:2px;outline:3px solid var(--color-line-negative-1)}to{outline-offset:2px;outline:var(--top-error-keyframes-outline-100)}}@media only screen and (min-width: 900px){.top-only-mobile{display:none!important}}@media only screen and (max-width: 900px){.top-only-pc{display:none!important}}html:not([lang=ru]) .top-only-ru,html:not([lang=en]) .top-only-en{display:none!important}html[data-is_admin="0"] .top-only-admin{display:none!important}.has_scroll_container{transform:translate(0)}.has_scroll{--scroll-offset-top: 0px;--scroll-padding-top: 0px;--scroll-padding-bottom: 0px;--scroll-height: 0px;--scroll-shadow-height: 15px;--scroll-shadow-color: rgba(0, 0, 0, .1)}.has_scroll:before{pointer-events:none;content:"";background:linear-gradient(180deg,transparent calc(100% - var(--scroll-shadow-height)),var(--scroll-shadow-color));height:calc(var(--scroll-height) - var(--scroll-padding-top) - var(--scroll-padding-bottom));position:fixed;top:calc(var(--scroll-offset-top) + var(--scroll-padding-top));right:0;left:0;z-index:1;display:block}.has_scroll-started:before{background:linear-gradient(180deg,var(--scroll-shadow-color),transparent var(--scroll-shadow-height),transparent calc(100% - var(--scroll-shadow-height)),var(--scroll-shadow-color))}.has_scroll-finished:before{background:linear-gradient(180deg,var(--scroll-shadow-color),transparent var(--scroll-shadow-height))}:root{--color-tag-1: #bdc3c7;--color-tag-2: #FD6052;--color-tag-3: #F48D09;--color-tag-4: #F4D30C;--color-tag-5: #5AACFD;--color-tag-6: #C98AE4;--color-tag-7: #A7DE59;--color-tag-8: #e44097;--color-tag-9: #0354a5;--color-tag-10: #33b8a5;--color-tag-all: #d8dbdd}.top-comment{color:var(--color-text-3);font-size:12px}[data-top-badge]{position:relative;width:0;margin:-3px 16px 0 -16px;display:flex;align-self:flex-start}[data-top-badge]:after{content:attr(data-top-badge);border-radius:4px;padding:2px 3px;background:var(--color-bg-negative-1);color:var(--color-text-white);font-size:12px}:root{--top-formsCaption-offset: 16px}.top-formsCaptionWrapper{padding-top:20px}.top-formsCaption{pointer-events:none;width:calc(100% - var(--top-forms-padding) - var(--top-icon-both-width) - var(--top-forms_clear-width) - var(--top-select_arrow-width));padding:0 var(--top-forms-padding);color:var(--top-forms-placeholder-color);white-space:nowrap;text-overflow:ellipsis;transform:translate(var(--top-icon-both-width));position:absolute;overflow:hidden;transition:.1s}.top-error~.top-formsCaption{transition:.1s .1s}.top-formsCaption *{pointer-events:auto}.top-formsCaptionWrapper>input:not([readonly]):focus~.top-formsCaption,.top-formsCaptionWrapper>input:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper>textarea:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper.top-select>.top-formsCaption,.top-formsCaptionWrapper.top-inputRange>.top-formsCaption,.top-formsCaptionWrapper-always>.top-formsCaption{width:100%;padding:0;color:var(--top-forms-placeholder-color-active);font-size:11px;transform:translateY(calc(-1em - var(--top-formsCaption-offset)));transition:.1s}.ui-tooltip{pointer-events:none;box-shadow:0 6px 18px #0e152f21,0 -2px 6px #0e152f08;border-radius:8px;border:none;background:var(--color-layout-front-1);width:max-content;padding:16px;margin:0 18px;font-size:13px}.ui-tooltip img{margin:12px 0 0}.ui-tooltip ul{margin-left:24px}:root{--top-icon-size: 24px;--top-icon-width: 0px;--top-icon2-size: 24px;--top-icon2-width: 0px;--top-icon-both-width: 0px}[data-top-icon]{--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon-color: inherit}[data-top-icon2]{--top-icon2-width: calc(var(--top-icon2-size) + 8px);--top-icon2-color: inherit}[data-top-icon=""]{--top-icon-width: 0px}[data-top-icon2=""]{--top-icon2-width: 0px}[data-top-icon]:before,[data-top-icon2]:after{pointer-events:none;content:attr(data-top-icon);border-radius:var(--top-forms-radius);width:var(--top-icon-width);color:var(--top-icon-color);font-family:Topvisor-2;font-size:var(--top-icon-size);font-weight:400;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}[data-top-icon2]:after{content:attr(data-top-icon2);width:var(--top-icon2-width);color:var(--top-icon2-color);font-size:var(--top-icon2-size)}[data-top-icon],[data-top-icon2]{--top-icon-both-width: calc(var(--top-icon-width) + var(--top-icon2-width))}[data-top-icon=]:before{font-family:Topvisor}:root{--top-line-heihgt: 1.36;--top-page-width: 1180px;--100vh: 100dvh;--transition: .2s ease-in-out;--transition-fast: .1s;--transition-normal: .3s;--transition-slow: .5s;--top-padding-1: 4px;--top-padding-2: 8px;--top-padding-3: 12px;--top-padding-4: 16px;--top-padding-5: 20px;--top-padding-6: 24px;--top-padding-7: 28px;--top-padding-8: 32px;--top-padding-9: 36px;--top-padding-10: 40px;--top-padding-11: 44px;--top-padding-12: 48px;--top-gap-1: 4px;--top-gap-2: 8px;--top-gap-3: 12px;--top-gap-4: 16px;--top-gap-5: 20px;--top-gap-6: 24px;--top-gap-7: 28px;--top-gap-8: 32px;--top-gap-9: 36px;--top-gap-10: 40px;--top-gap-11: 44px;--top-gap-12: 48px;--top-radius-1: 4px;--top-radius-2: 8px;--top-radius-3: 12px;--top-radius-4: 16px;--top-radius-5: 20px;--top-radius-6: 24px;--top-radius-7: 28px;--top-radius-8: 32px;--top-radius-9: 36px;--top-radius-10: 40px;--top-radius-11: 44px;--top-radius-12: 48px;--padding-default: var(--top-padding-4)}@media only screen and (max-width: 900px){:root{--padding-default: var(--top-padding-3)}}.ui-widget-content{background:var(--color-layout-front-1);color:var(--color-text-1)}.top-select_arrow{--top-select_arrow-size: 12px;--top-select_arrow-width: 24px;background-image:url("data:image/svg+xml,%3Csvg width='16' height='9' viewBox='0 0 16 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.293 0.29269L8 6.5857L1.70704 0.29269C1.31679 -0.0975633 0.682937 -0.0975633 0.292687 0.29269C-0.0975624 0.682943 -0.0975624 1.31656 0.292687 1.70682L7.29294 8.70713C7.68343 9.09762 8.31657 9.09762 8.70706 8.70713L15.7073 1.70682C16.0976 1.31656 16.0976 0.682943 15.7073 0.29269C15.3171 -0.0975633 14.6832 -0.0975633 14.293 0.29269Z' fill='%23808A99'/%3E%3C/svg%3E");background-size:14px;background-position:calc(100% - var(--top-forms-padding)) 50%;background-repeat:no-repeat;padding-right:32px}.top-select_arrow~.top-cleaner{--top-select_arrow-width: 24px}
|
|
1
|
+
button,input,textarea,select{border:1px solid var(--top-forms-border-color);background:var(--top-forms-background-color);color:var(--color-text-1);font-size:var(--top-font-size);font-family:inherit}::placeholder{color:var(--top-forms-placeholder-color)}[contenteditable][placeholder]:empty:before{content:attr(placeholder);color:var(--color-text-2)}.top-forms-optionWrapper{cursor:pointer;padding:8px 0;color:var(--color-text-1);line-height:1.3;display:inline-flex;align-items:flex-start;gap:4px}.top-forms-option{cursor:pointer;padding:0;margin:3px;display:inline-flex;flex-shrink:0;appearance:none;-webkit-appearance:none}.top-forms-focusable:focus-visible,.top-focus{outline:2px solid var(--color-line-primary-1);outline-offset:2px;position:relative;z-index:1;transition:border-color .15s}.top-forms-focusable:hover,.top-forms-focusable:focus,.top-focus:hover,.top-focus:focus,.top-input:hover>.top-input_input,.top-select:hover>.top-select_select{--top-forms-border-color: var(--top-forms-border-color-hover);--top-forms-background-color: var(--top-forms-background-color-hover)}[contenteditable]:focus-visible,.top-selector-multiselect:focus-within{outline:2px solid var(--color-line-primary-1)}:root{--top-font-size: 14px;--top-forms-radius: 8px;--top-forms-border-width: 1px;--top-style_outline-color: transparent;--top-forms-base-height_xs: 24px;--top-forms-base-height_s: 32px;--top-forms-base-height_m: 36px;--top-forms-base-height_l: 40px;--top-forms-base-height: var(--top-forms-base-height_s);--top-forms-padding_xs: 6px;--top-forms-padding_s: 8px;--top-forms-padding_m: 10px;--top-forms-padding_l: 12px;--top-forms-padding: var(--top-forms-padding_s);--top-forms-option-height: 24px;--top-select_arrow-width: 0px;--top-forms_clear-width: 0px;--top-forms-border-color: var(--color-line-1);--top-forms-border-color-hover: var(--color-line-primary-1);--top-forms-placeholder-color: var(--color-text-3);--top-forms-placeholder-color-active: var(--color-text-2);--top-forms-background-color: var(--color-layout-front-1);--top-forms-background-color-hover: var(--color-layout-front-1)}.top-size_xs{--top-forms-base-height: var(--top-forms-base-height_xs)}.top-size_s{--top-forms-base-height: var(--top-forms-base-height_s)}.top-size_m{--top-forms-base-height: var(--top-forms-base-height_m)}.top-size_l{--top-forms-base-height: var(--top-forms-base-height_l)}.top-input_input,.top-textarea_textarea,.top-editArea_form,.top-select_select{box-sizing:border-box;border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);display:inline-flex;appearance:none;-webkit-appearance:none}.top-select_select{padding-right:calc(var(--top-forms-padding) + var(--top-forms_clear-width) + var(--top-select_arrow-width))}.top-select{position:relative}.top-select[data-top-icon]:before,.top-select[data-top-icon2]:after{position:absolute;z-index:3}.top-select[data-top-icon][data-top-icon2]:after{left:calc(var(--top-icon-width))}.top-cleaner[data-top-icon]{--top-icon-size: 20px;--top-icon-width: 20px;--top-icon-color: var(--color-text-secondary);cursor:pointer;border-radius:50%;width:30px;height:24px;margin-left:-34px;transform:translate(calc(0px - var(--top-forms-border-width) - var(--top-select_arrow-width)));display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.top-cleaner[data-top-icon]:hover{--top-icon-color: var(--color-text-secondary-2)}.top-as-a{cursor:pointer;color:var(--color-text-primary)}.top-as-a:hover{text-decoration:underline}.top-ellipsis,.top-ellipsis1{max-height:100%;line-height:1.23;text-overflow:ellipsis;overflow:hidden;flex-grow:1}.top-ellipsis1{white-space:nowrap}.top-ellipsis2,.top-ellipsis3{max-width:fit-content;line-height:1.23;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.top-ellipsis3{-webkit-line-clamp:3}.top-hidden{display:none!important}.top-unvisible{width:0;height:0;overflow:hidden;position:absolute;-webkit-appearance:none;appearance:none;border:none}.top-unvisible:focus-visible{outline:none}.top-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}:disabled:not(option):not(optgroup),:disabled~.top-formsCaption,.top-disabled{opacity:.4;filter:grayscale(100%)}.top-input.top-disabled,.top-select.top-disabled{filter:unset}.top-input_input:disabled,.top-textarea_textarea:disabled,.top-select_select:disabled{opacity:1;background-color:var(--color-bg-shading-3);filter:unset}.top-checkbox_input:not(:checked):not(:indeterminate):disabled,.top-radio_input:not(:checked):disabled,.top-checkboxSwitcher_input:disabled{opacity:1;background-color:var(--color-layer-1)}.top-checkboxSwitcher_input:disabled{background-color:var(--color-layer-4)}.top-error,.top-error::placeholder,.top-error:before{--top-forms-border-color: var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error{--top-icon-color: var(--color-text-negative);color:var(--color-text-negative)}input.top-error:focus,textarea.top-error:focus,select.top-error:focus{outline-color:var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error~.top-formsCaption{color:var(--color-text-negative)}.top-warning{--top-icon-color: var(--color-text-warning);color:var(--color-text-warning)}input.top-error,textarea.top-error,select.top-error,.top-editArea_form.top-error{animation:top-error .8s}@keyframes top-error{0%{outline-offset:10px;outline:3px solid transparent}50%{outline:3px solid var(--color-line-negative-1);outline-offset:2px}to{outline:3px solid transparent;outline-offset:2px}}@media only screen and (min-width: 900px){.top-only-mobile{display:none!important}}@media only screen and (max-width: 900px){.top-only-pc{display:none!important}}html:not([lang=ru]) .top-only-ru,html:not([lang=en]) .top-only-en{display:none!important}html[data-is_admin="0"] .top-only-admin{display:none!important}.has_scroll_container{transform:translate(0)}.has_scroll{--scroll-offset-top: 0px;--scroll-padding-top: 0px;--scroll-padding-bottom: 0px;--scroll-height: 0px;--scroll-shadow-height: 15px;--scroll-shadow-color: rgba(0, 0, 0, .1)}.has_scroll:before{pointer-events:none;content:"";background:linear-gradient(180deg,transparent calc(100% - var(--scroll-shadow-height)),var(--scroll-shadow-color));height:calc(var(--scroll-height) - var(--scroll-padding-top) - var(--scroll-padding-bottom));position:fixed;top:calc(var(--scroll-offset-top) + var(--scroll-padding-top));right:0;left:0;z-index:1;display:block}.has_scroll-started:before{background:linear-gradient(180deg,var(--scroll-shadow-color),transparent var(--scroll-shadow-height),transparent calc(100% - var(--scroll-shadow-height)),var(--scroll-shadow-color))}.has_scroll-finished:before{background:linear-gradient(180deg,var(--scroll-shadow-color),transparent var(--scroll-shadow-height))}:root{--color-tag-1: #bdc3c7;--color-tag-2: #FD6052;--color-tag-3: #F48D09;--color-tag-4: #F4D30C;--color-tag-5: #5AACFD;--color-tag-6: #C98AE4;--color-tag-7: #A7DE59;--color-tag-8: #e44097;--color-tag-9: #0354a5;--color-tag-10: #33b8a5;--color-tag-all: #d8dbdd}.top-comment{color:var(--color-text-3);font-size:12px}[data-top-badge]{position:relative;width:0;margin:-3px 16px 0 -16px;display:flex;align-self:flex-start}[data-top-badge]:after{content:attr(data-top-badge);border-radius:4px;padding:2px 3px;background:var(--color-bg-negative-1);color:var(--color-text-white);font-size:12px}:root{--top-formsCaption-offset: 16px}.top-formsCaptionWrapper{padding-top:20px}.top-formsCaption{pointer-events:none;width:calc(100% - var(--top-forms-padding) - var(--top-icon-both-width) - var(--top-forms_clear-width) - var(--top-select_arrow-width));padding:0 var(--top-forms-padding);color:var(--top-forms-placeholder-color);white-space:nowrap;text-overflow:ellipsis;transform:translate(var(--top-icon-both-width));position:absolute;overflow:hidden;transition:.1s}.top-error~.top-formsCaption{transition:.1s .1s}.top-formsCaption *{pointer-events:auto}.top-formsCaptionWrapper>input:not([readonly]):focus~.top-formsCaption,.top-formsCaptionWrapper>input:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper>textarea:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper.top-select>.top-formsCaption,.top-formsCaptionWrapper.top-inputRange>.top-formsCaption,.top-formsCaptionWrapper-always>.top-formsCaption{width:100%;padding:0;color:var(--top-forms-placeholder-color-active);font-size:11px;transform:translateY(calc(-1em - var(--top-formsCaption-offset)));transition:.1s}.ui-tooltip{pointer-events:none;box-shadow:0 6px 18px #0e152f21,0 -2px 6px #0e152f08;border-radius:8px;border:none;background:var(--color-layout-front-1);width:max-content;padding:16px;margin:0 18px;font-size:13px}.ui-tooltip img{margin:12px 0 0}.ui-tooltip ul{margin-left:24px}:root{--top-icon-size: 24px;--top-icon-width: 0px;--top-icon2-size: 24px;--top-icon2-width: 0px;--top-icon-both-width: 0px}[data-top-icon]{--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon-color: inherit}[data-top-icon2]{--top-icon2-width: calc(var(--top-icon2-size) + 8px);--top-icon2-color: inherit}[data-top-icon=""]{--top-icon-width: 0px}[data-top-icon2=""]{--top-icon2-width: 0px}[data-top-icon]:before,[data-top-icon2]:after{pointer-events:none;content:attr(data-top-icon);border-radius:var(--top-forms-radius);width:var(--top-icon-width);color:var(--top-icon-color);font-family:Topvisor-2;font-size:var(--top-icon-size);font-weight:400;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}[data-top-icon2]:after{content:attr(data-top-icon2);width:var(--top-icon2-width);color:var(--top-icon2-color);font-size:var(--top-icon2-size)}[data-top-icon],[data-top-icon2]{--top-icon-both-width: calc(var(--top-icon-width) + var(--top-icon2-width))}[data-top-icon=]:before{font-family:Topvisor}:root{--top-line-heihgt: 1.36;--top-page-width: 1180px;--100vh: 100dvh;--transition: .2s ease-in-out;--transition-fast: .1s;--transition-normal: .3s;--transition-slow: .5s;--top-padding-1: 4px;--top-padding-2: 8px;--top-padding-3: 12px;--top-padding-4: 16px;--top-padding-5: 20px;--top-padding-6: 24px;--top-padding-7: 28px;--top-padding-8: 32px;--top-padding-9: 36px;--top-padding-10: 40px;--top-padding-11: 44px;--top-padding-12: 48px;--top-gap-1: 4px;--top-gap-2: 8px;--top-gap-3: 12px;--top-gap-4: 16px;--top-gap-5: 20px;--top-gap-6: 24px;--top-gap-7: 28px;--top-gap-8: 32px;--top-gap-9: 36px;--top-gap-10: 40px;--top-gap-11: 44px;--top-gap-12: 48px;--top-radius-1: 4px;--top-radius-2: 8px;--top-radius-3: 12px;--top-radius-4: 16px;--top-radius-5: 20px;--top-radius-6: 24px;--top-radius-7: 28px;--top-radius-8: 32px;--top-radius-9: 36px;--top-radius-10: 40px;--top-radius-11: 44px;--top-radius-12: 48px;--padding-default: var(--top-padding-4)}@media only screen and (max-width: 900px){:root{--padding-default: var(--top-padding-3)}}.ui-widget-content{background:var(--color-layout-front-1);color:var(--color-text-1)}.top-select_arrow{--top-select_arrow-size: 12px;--top-select_arrow-width: 24px;background-image:url("data:image/svg+xml,%3Csvg width='16' height='9' viewBox='0 0 16 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.293 0.29269L8 6.5857L1.70704 0.29269C1.31679 -0.0975633 0.682937 -0.0975633 0.292687 0.29269C-0.0975624 0.682943 -0.0975624 1.31656 0.292687 1.70682L7.29294 8.70713C7.68343 9.09762 8.31657 9.09762 8.70706 8.70713L15.7073 1.70682C16.0976 1.31656 16.0976 0.682943 15.7073 0.29269C15.3171 -0.0975633 14.6832 -0.0975633 14.293 0.29269Z' fill='%23808A99'/%3E%3C/svg%3E");background-size:14px;background-position:calc(100% - var(--top-forms-padding)) 50%;background-repeat:no-repeat;padding-right:32px}.top-select_arrow~.top-cleaner{--top-select_arrow-width: 24px}
|
package/assets/forms.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.top-avatar{width:var(--62448408);height:var(--62448408);display:flex;flex-grow:0;flex-shrink:0;position:relative;top:0;left:0}.top-avatar_image{border-radius:50%;width:100%;height:100%}.top-avatar_status{border-radius:50%;border:2px solid var(--color-layout-front-1);background-color:var(--color-bg-positive-1);width:25%;height:25%;position:absolute;right:0;bottom:0}.top-button{cursor:pointer;box-sizing:border-box;box-shadow:var(--top-button-box-shadow);border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-button-background-color);height:var(--top-forms-base-height);padding:0 var(--top-forms-padding);color:var(--top-button-color);line-height:1;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,box-shadow .15s}.top-button:hover{box-shadow:var(--top-button-box-shadow-hover);background-color:var(--top-button-background-color-hover)}.top-button:active{box-shadow:var(--top-button-box-shadow-active);background-color:var(--top-button-background-color-active)}.top-button.top-active{box-shadow:var(--top-button-box-shadow-selected);background-color:var(--top-button-background-color-selected)}.top-button.top-button-progress{cursor:help;box-shadow:inset #00000080 0 0 64px;background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:32px 32px;animation:progress 1s linear infinite}@keyframes progress{0%{background-position-x:0px}to{background-position-x:32px}}a.top-button,button.top-button{min-width:100px;text-decoration:none}a.top-button,a.top-button:hover{min-width:var(--top-forms-base-height);text-decoration:none}.top-button[data-top-icon]:not(:empty):not(.top-button-withoutText),.top-button[data-top-icon2]:not(:empty):not(.top-button-withoutText){justify-content:flex-start;text-align:left}.top-button[data-top-icon]{padding-left:0}.top-button[data-top-icon2]{padding-right:var(--top-select_arrow-width)}.top-button[data-top-icon2]:after{margin-left:auto}.top-button:empty,.top-button.top-button-withoutText{min-width:var(--top-forms-base-height)}.top-button[data-top-icon]:empty,.top-button[data-top-icon2]:empty,.top-button[data-top-icon].top-button-withoutText,.top-button[data-top-icon2].top-button-withoutText{padding:0}.top-button.top-color_blue{--top-button-background-color: var(--color-bg-primary-1)}.top-button.top-color_green{--top-button-background-color: var(--color-bg-positive-1)}.top-button.top-color_orange{--top-button-background-color: var(--color-bg-warning-1)}.top-button.top-color_red{--top-button-background-color: var(--color-bg-negative-1)}.top-button.top-color_pink{--top-button-background-color: var(--color-bg-info-1)}.top-button.top-color_brand{--top-button-color: var(--color-text-1-inverse);--top-button-background-color: var(--color-brand-1)}.top-button.top-color_theme{--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-color: var(--color-text-1);--top-button-background-color: transparent;--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-2)}.top-button.top-color_theme:hover{--top-icon-color: var(--color-text-1);--top-icon2-color: var(--color-text-1)}.top-button.top-color_theme.top-active{--top-icon-color: var(--color-text-2)}.top-button.top-style_outline{--top-button-box-shadow: none;--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-button-background-color: var(--color-layout-front-1);--top-forms-border-width: 1px}.top-button.top-style_outline.top-color_theme{--top-button-color: var(--color-text-2);--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-2);--top-button-background-color-selected: var(--color-layer-3);--top-forms-border-color: var(--color-line-3)}.top-button.top-style_outline.top-color_theme:hover{--top-forms-border-color: var(--color-line-4)}.top-button.top-style_outline.top-color_blue{--top-button-color: var(--color-text-primary);--top-icon-color: var(--color-text-primary);--top-icon2-color: var(--color-text-primary);--top-button-background-color-hover: var(--color-layer-primary-1);--top-button-background-color-active: var(--color-layer-primary-2);--top-button-background-color-selected: var(--color-layer-primary-3);--top-forms-border-color: var(--color-line-primary-1)}.top-button.top-style_outline.top-color_blue:hover{--top-forms-border-color: var(--color-line-primary-2)}.top-button.top-style_outline.top-color_green{--top-button-color: var(--color-text-positive);--top-icon-color: var(--color-text-positive);--top-icon2-color: var(--color-text-positive);--top-button-background-color-hover: var(--color-layer-positive-1);--top-button-background-color-active: var(--color-layer-positive-2);--top-button-background-color-selected: var(--color-layer-positive-3);--top-forms-border-color: var(--color-line-positive-1)}.top-button.top-style_outline.top-color_green:hover{--top-forms-border-color: var(--color-line-positive-2)}.top-button.top-style_outline.top-color_orange{--top-button-color: var(--color-text-warning);--top-icon-color: var(--color-text-warning);--top-icon2-color: var(--color-text-warning);--top-button-background-color-hover: var(--color-layer-warning-1);--top-button-background-color-active: var(--color-layer-warning-2);--top-button-background-color-selected: var(--color-layer-warning-3);--top-forms-border-color: var(--color-line-warning-1)}.top-button.top-style_outline.top-color_orange:hover{--top-forms-border-color: var(--color-line-warning-2)}.top-button.top-style_outline.top-color_red{--top-button-color: var(--color-text-negative);--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative);--top-button-background-color-hover: var(--color-layer-negative-1);--top-button-background-color-active: var(--color-layer-negative-2);--top-button-background-color-selected: var(--color-layer-negative-3);--top-forms-border-color: var(--color-line-negative-1)}.top-button.top-style_outline.top-color_red:hover{--top-forms-border-color: var(--color-line-negative-2)}.top-button.top-style_outline.top-color_pink{--top-button-color: var(--color-text-info);--top-icon-color: var(--color-text-info);--top-icon2-color: var(--color-text-info);--top-button-background-color-hover: var(--color-layer-info-1);--top-button-background-color-active: var(--color-layer-info-2);--top-button-background-color-selected: var(--color-layer-info-3);--top-forms-border-color: var(--color-line-info-1)}.top-button.top-style_outline.top-color_pink:hover{--top-forms-border-color: var(--color-line-info-2)}.top-button.top-style_outline.top-color_brand{--top-button-color: var(--color-brand-1);--top-icon-color: var(--color-brand-1);--top-icon2-color: var(--color-brand-1);--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-2);--top-button-background-color-selected: var(--color-layer-3);--top-forms-border-color: var(--color-brand-1)}.top-button.top-style_outline.top-color_brand:hover{--top-forms-border-color: var(--color-brand-2)}.top-button.top-style_soft{--top-shadow-darken-1: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none}.top-button.top-style_soft.top-color_theme{--top-button-color: var(--color-text-1);--top-icon-color: var(--color-text-1);--top-icon2-color: var(--color-text-1);--top-button-background-color: var(--color-layer-1);--top-button-background-color-hover: var(--color-layer-2);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_soft.top-color_blue{--top-button-color: var(--color-text-primary);--top-icon-color: var(--color-text-primary);--top-icon2-color: var(--color-text-primary);--top-button-background-color: var(--color-layer-primary-1);--top-button-background-color-hover: var(--color-layer-primary-2);--top-button-background-color-active: var(--color-layer-primary-3);--top-button-background-color-selected: var(--color-layer-primary-3)}.top-button.top-style_soft.top-color_green{--top-button-color: var(--color-text-positive);--top-icon-color: var(--color-text-positive);--top-icon2-color: var(--color-text-positive);--top-button-background-color: var(--color-layer-positive-1);--top-button-background-color-hover: var(--color-layer-positive-2);--top-button-background-color-active: var(--color-layer-positive-3);--top-button-background-color-selected: var(--color-layer-positive-3)}.top-button.top-style_soft.top-color_orange{--top-button-color: var(--color-text-warning);--top-icon-color: var(--color-text-warning);--top-icon2-color: var(--color-text-warning);--top-button-background-color: var(--color-layer-warning-1);--top-button-background-color-hover: var(--color-layer-warning-2);--top-button-background-color-active: var(--color-layer-warning-3);--top-button-background-color-selected: var(--color-layer-warning-3)}.top-button.top-style_soft.top-color_red{--top-button-color: var(--color-text-negative);--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative);--top-button-background-color: var(--color-layer-negative-1);--top-button-background-color-hover: var(--color-layer-negative-2);--top-button-background-color-active: var(--color-layer-negative-3);--top-button-background-color-selected: var(--color-layer-negative-3)}.top-button.top-style_soft.top-color_pink{--top-button-color: var(--color-text-info);--top-icon-color: var(--color-text-info);--top-icon2-color: var(--color-text-info);--top-button-background-color: var(--color-layer-info-1);--top-button-background-color-hover: var(--color-layer-info-2);--top-button-background-color-active: var(--color-layer-info-3);--top-button-background-color-selected: var(--color-layer-info-3)}.top-button.top-style_soft.top-color_brand{--top-button-color: var(--color-brand-1);--top-icon-color: var(--color-brand-1);--top-icon2-color: var(--color-brand-1);--top-button-background-color: var(--color-layer-1);--top-button-background-color-hover: var(--color-layer-2);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_transparent{--top-shadow-darken-1: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: transparent;--top-button-background-color-hover: transparent;--top-button-background-color-active: transparent;--top-button-background-color-selected: var(--color-steel-200)}.top-button.top-style_transparent:hover{opacity:.8}.top-button.top-style_transparent.top-color_blue{--top-button-color: var(--color-text-primary)}.top-button.top-style_transparent.top-color_green{--top-button-color: var(--color-text-positive)}.top-button.top-style_transparent.top-color_orange{--top-button-color: var(--color-text-warning)}.top-button.top-style_transparent.top-color_red{--top-button-color: var(--color-text-negative)}.top-button.top-style_transparent.top-color_pink{--top-button-color: var(--color-text-info)}.top-button.top-style_transparent.top-color_brand{--top-button-color: var(--color-brand-1)}.top-button{--top-button-color: var(--color-white);--top-button-background-color: transparent;--top-button-background-color-hover: var(--top-button-background-color);--top-button-background-color-active: var(--top-button-background-color-hover);--top-button-background-color-selected: var(--top-button-background-color-hover);--top-button-box-shadow: none;--top-button-box-shadow-hover: var(--top-shadow-darken-2);--top-button-box-shadow-active: var(--top-shadow-darken-3);--top-button-box-shadow-selected: var(--top-shadow-darken-3);--top-forms-border-width: 0px;--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding))}.top-button>span{pointer-events:none}.top-button>.top-ellipsis{flex-grow:0}.top-button.top-size_xs{--top-forms-padding: var(--top-forms-padding_xs);--top-forms-base-height: var(--top-forms-base-height_xs)}.top-button.top-size_m{--top-forms-padding: var(--top-forms-padding_m);--top-forms-base-height: var(--top-forms-base-height_m)}.top-button.top-size_l{--top-forms-padding: var(--top-forms-padding_l);--top-forms-base-height: var(--top-forms-base-height_l)}.top-button_badge-afterText{order:100}.top-button:not([data-top-icon2])>.top-button_badge-afterText{margin-left:0}.top-forms-optionLabel{flex-grow:1}.top-forms-optionLabel_title{color:var(--color-text-1);min-height:var(--top-forms-option-height);display:flex;align-items:center}.top-forms-optionLabel_title-disabled{color:var(--color-text-3)}.top-forms-optionLabel_description{color:var(--color-text-2);font-size:.85em;line-height:var(--top-forms-option-height)}.top-forms-optionLabel_description-disabled{color:var(--color-text-3)}.top-checkbox{cursor:pointer;display:inline-flex}.top-checkbox_input{cursor:inherit;border-radius:4px;background:var(--color-layout-front-1);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-checkbox_input:before{content:" ";color:#fff;font-family:Topvisor-2;font-size:16px}.top-checkbox_input:hover{border-color:var(--top-forms-border-color-hover);background:var(--color-layer-primary-1)}.top-checkbox_input:checked,.top-checkbox_input:indeterminate{border-color:var(--top-forms-option-color);background:var(--top-forms-option-color)}.top-checkbox_input:checked:before{content:""}.top-checkbox_input:indeterminate:before{content:""}.top-checkbox_input:checked:hover,.top-checkbox_input:indeterminate:hover{border-color:var(--top-forms-option-color-hover);background:var(--top-forms-option-color-hover)}.top-checkbox_input.top-error{border-color:var(--color-bg-negative-1)}.top-checkbox_input.top-error:hover{border-color:var(--color-bg-negative-2)}.top-checkbox_input:checked.top-error,.top-checkbox_input:indeterminate.top-error{background:var(--color-bg-negative-1)}.top-checkbox_input:checked.top-error:hover,.top-checkbox_input:indeterminate.top-error:hover{background:var(--color-bg-negative-2)}.top-hint{--top-icon-size: 16px;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--color-layout-front-1);padding:1px;color:var(--color-text-3);line-height:1;z-index:1;pointer-events:all}.top-hint:hover{color:var(--color-text-2)}:root{--top-loadbar-duration: 10s;--top-loadbar-color: var(--color-line-primary-1)}.top-loadbar{background:var(--top-loadbar-color);width:0;height:4px;position:absolute;top:0;left:0;animation:top-loadbar var(--top-loadbar-duration) forwards}@keyframes top-loadbar{0%{width:4px}4%{width:4%}5%{width:5%}to{width:95%}}.top-input{--top-forms_clear-width: 0px;border-radius:var(--top-forms-radius);width:180px;position:relative;display:inline-flex;align-items:center;gap:var(--top-gap-1)}.top-input_input{color:var(--color-text-2);background:var(--top-forms-background-color);height:var(--top-forms-base-height);padding:0;padding-right:max(var(--top-forms-padding),calc(var(--top-icon2-width) + var(--top-forms_clear-width)));padding-left:max(var(--top-forms-padding),var(--top-icon-width))}.top-input_input:hover{background:var(--top-forms-background-color-hover)}.top-input_input:focus{color:var(--color-text-1);border-color:var(--color-line-primary-1);outline:none}.top-input[data-top-icon]:before,.top-input[data-top-icon2]:after{--top-icon-color: var(--color-text-4);--top-icon2-color: var(--color-text-4);position:absolute;z-index:3;font-size:20px}.top-input[data-top-icon]:before{left:0}.top-input[data-top-icon2]:after{right:0}.top-input-withCleaner{--top-forms_clear-width: 24px}.top-input_cleaner[data-top-icon]{--top-icon-size: 16px;--top-icon-width: 20px;--top-icon-color: var(--color-text-3);cursor:pointer;border-radius:50%;width:20px;height:16px;position:absolute;right:calc(var(--top-forms-border-width) + max(var(--top-icon2-width),var(--top-forms-padding) / 2));z-index:1;display:flex;align-items:center;justify-content:center}.top-input_cleaner[data-top-icon]:hover{--top-icon-color: var(--color-text-2)}.top-input_input{width:50%;flex-grow:1}.top-input .top-loadbar{border-radius:var(--top-forms-radius) 0 0 0}.top-input-datepicker{width:calc(105px + var(--top-icon-width) + var(--top-icon2-width))}.top-input_input-date{opacity:0;position:absolute;inset:0;z-index:-1}.top-input_input-date::-webkit-inner-spin-button{display:none}.top-input_input-date::-webkit-calendar-picker-indicator{opacity:0}.top-inputRange{max-width:320px;vertical-align:baseline;display:inline-flex;gap:8px}.top-inputRange_dash{height:var(--top-forms-base-height);color:var(--color-text-4);align-self:flex-end;display:inline-flex;align-items:center}.top-inputRange>.top-input{flex-grow:1}:root{--top-radio-background-color: var(--color-layout-front-1);--top-radio-background-color-hover: var(--top-radio-background-color);--top-radio-background-color-active: var(--top-radio-background-color)}.top-radio{cursor:pointer}.top-radio_input{border-radius:50%;background:var(--color-layout-front-1);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-radio_input:hover{border-color:var(--top-forms-border-color-hover);background:var(--color-layer-primary-1)}.top-radio_input:checked{border-color:var(--top-forms-option-color);border-width:5px}.top-radio_input:checked:hover{border-color:var(--color-bg-primary-2)}.top-radio_input.top-error,.top-radio_input.top-error:hover{border-color:var(--color-bg-negative-1)}.top-checkboxSwitcher{cursor:pointer;display:inline-flex;gap:4px}.top-checkboxSwitcher_input{border-radius:9px;border:none;background:var(--color-layer-3);width:36px;height:18px;position:relative}.top-checkboxSwitcher_input:before{content:"";border-radius:50%;background:var(--color-white);width:12px;height:12px;margin:3px;position:absolute;top:0;left:0;transition:left .1s}.top-checkboxSwitcher_input:hover{background:var(--color-layer-4)}.top-checkboxSwitcher_input:checked{background:var(--top-forms-option-color)}.top-checkboxSwitcher_input:checked:hover{background:var(--top-forms-option-color-hover)}.top-checkboxSwitcher_input:checked:before{left:50%}.top-checkboxSwitcher_input.top-error{background:var(--color-layer-negative-3)}.top-checkboxSwitcher_input.top-error:hover{background:var(--color-layer-negative-4)}.top-checkboxSwitcher_input.top-error:checked{background:var(--color-bg-negative-2)}.top-checkboxSwitcher_input.top-error:checked:hover{background:var(--color-bg-negative-1)}.top-textarea{width:180px;display:inline-flex;align-items:center;position:relative}.top-textarea_textarea{color:var(--color-text-1);background:var(--top-forms-background-color);width:100%;padding:var(--top-forms-padding);resize:none}.top-textarea_textarea:hover{background:var(--top-forms-background-color-hover)}.top-textarea_textarea:focus{border-color:var(--color-line-primary-1);outline:none}html .top-textarea_textarea.top-textarea_textarea-expandable{width:100%;height:100%;overflow:hidden;position:absolute;top:0;left:0}.top-textarea_pseudoContent{box-sizing:border-box;min-height:var(--47deeda3);padding:var(--top-forms-padding);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;opacity:0;z-index:-1}.top-textarea_hint{position:absolute;top:2px;right:2px}.top-select{color:var(--color-text-1);--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);align-items:center;width:180px;max-width:100%;display:inline-flex}.top-select-error{--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative)}.top-select_select{background-color:var(--top-forms-background-color);padding-left:var(--top-forms-padding);text-indent:clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)));width:100%;height:var(--top-forms-base-height);text-overflow:ellipsis;white-space:nowrap;flex-grow:1;overflow:hidden}.top-select optgroup{color:var(--color-text-1);font-style:normal}.top-select option:not(:disabled){background:var(--color-layout-front-1);color:var(--color-text-1)}.top-select option:disabled{background:unset;color:unset}@-moz-document url-prefix(){.top-select_select{text-indent:calc(clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)))/2)}}@media only screen and (min-width: 900px){.top-changer{cursor:pointer;border-radius:100%;width:0;transform:translate(-44px);color:var(--color-text-2);font-size:16px;line-height:1;display:none;z-index:2;order:4}.top-changer:hover{color:var(--color-text-primary)}.top-changer:after{content:"";background-color:var(--top-forms-background-color);font-family:Topvisor-2}*:hover>.top-changer{display:block}}
|
|
1
|
+
.top-avatar{width:var(--62448408);height:var(--62448408);display:flex;flex-grow:0;flex-shrink:0;position:relative;top:0;left:0}.top-avatar_image{border-radius:50%;width:100%;height:100%}.top-avatar_status{border-radius:50%;border:2px solid var(--color-layout-front-1);background-color:var(--color-bg-positive-1);width:25%;height:25%;position:absolute;right:0;bottom:0}.top-button{cursor:pointer;box-sizing:border-box;box-shadow:var(--top-button-box-shadow);border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-button-background-color);height:var(--top-forms-base-height);padding:0 var(--top-forms-padding);color:var(--top-button-color);line-height:1;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,box-shadow .15s}.top-button:hover{box-shadow:var(--top-button-box-shadow-hover);background-color:var(--top-button-background-color-hover)}.top-button:active{box-shadow:var(--top-button-box-shadow-active);background-color:var(--top-button-background-color-active)}.top-button.top-active{box-shadow:var(--top-button-box-shadow-selected);background-color:var(--top-button-background-color-selected)}.top-button.top-button-progress{cursor:help;box-shadow:inset #00000080 0 0 64px;background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:32px 32px;animation:progress 1s linear infinite}@keyframes progress{0%{background-position-x:0px}to{background-position-x:32px}}a.top-button,button.top-button{min-width:100px;text-decoration:none}a.top-button,a.top-button:hover{min-width:var(--top-forms-base-height);text-decoration:none}.top-button[data-top-icon]:not(:empty):not(.top-button-withoutText),.top-button[data-top-icon2]:not(:empty):not(.top-button-withoutText){justify-content:flex-start;text-align:left}.top-button[data-top-icon]{padding-left:0}.top-button[data-top-icon2]{padding-right:var(--top-select_arrow-width)}.top-button[data-top-icon2]:after{margin-left:auto}.top-button:empty,.top-button.top-button-withoutText{min-width:var(--top-forms-base-height)}.top-button[data-top-icon]:empty,.top-button[data-top-icon2]:empty,.top-button[data-top-icon].top-button-withoutText,.top-button[data-top-icon2].top-button-withoutText{padding:0}.top-button.top-color_blue{--top-button-background-color: var(--color-bg-primary-1)}.top-button.top-color_green{--top-button-background-color: var(--color-bg-positive-1)}.top-button.top-color_orange{--top-button-background-color: var(--color-bg-warning-1)}.top-button.top-color_red{--top-button-background-color: var(--color-bg-negative-1)}.top-button.top-color_pink{--top-button-background-color: var(--color-bg-info-1)}.top-button.top-color_brand{--top-button-color: var(--color-text-1-inverse);--top-button-background-color: var(--color-brand-1)}.top-button.top-color_theme{--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-color: var(--color-text-1);--top-button-background-color: transparent;--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-2)}.top-button.top-color_theme:hover{--top-icon-color: var(--color-text-1);--top-icon2-color: var(--color-text-1)}.top-button.top-color_theme.top-active{--top-icon-color: var(--color-text-2)}.top-button.top-style_outline{--top-button-box-shadow: none;--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-button-background-color: var(--color-layout-front-1);--top-forms-border-width: 1px}.top-button.top-style_outline.top-color_theme{--top-button-color: var(--color-text-2);--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-2);--top-button-background-color-selected: var(--color-layer-3);--top-forms-border-color: var(--color-line-3)}.top-button.top-style_outline.top-color_theme:hover{--top-forms-border-color: var(--color-line-4)}.top-button.top-style_outline.top-color_blue{--top-button-color: var(--color-text-primary);--top-icon-color: var(--color-text-primary);--top-icon2-color: var(--color-text-primary);--top-button-background-color-hover: var(--color-layer-primary-1);--top-button-background-color-active: var(--color-layer-primary-2);--top-button-background-color-selected: var(--color-layer-primary-3);--top-forms-border-color: var(--color-line-primary-1)}.top-button.top-style_outline.top-color_blue:hover{--top-forms-border-color: var(--color-line-primary-2)}.top-button.top-style_outline.top-color_green{--top-button-color: var(--color-text-positive);--top-icon-color: var(--color-text-positive);--top-icon2-color: var(--color-text-positive);--top-button-background-color-hover: var(--color-layer-positive-1);--top-button-background-color-active: var(--color-layer-positive-2);--top-button-background-color-selected: var(--color-layer-positive-3);--top-forms-border-color: var(--color-line-positive-1)}.top-button.top-style_outline.top-color_green:hover{--top-forms-border-color: var(--color-line-positive-2)}.top-button.top-style_outline.top-color_orange{--top-button-color: var(--color-text-warning);--top-icon-color: var(--color-text-warning);--top-icon2-color: var(--color-text-warning);--top-button-background-color-hover: var(--color-layer-warning-1);--top-button-background-color-active: var(--color-layer-warning-2);--top-button-background-color-selected: var(--color-layer-warning-3);--top-forms-border-color: var(--color-line-warning-1)}.top-button.top-style_outline.top-color_orange:hover{--top-forms-border-color: var(--color-line-warning-2)}.top-button.top-style_outline.top-color_red{--top-button-color: var(--color-text-negative);--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative);--top-button-background-color-hover: var(--color-layer-negative-1);--top-button-background-color-active: var(--color-layer-negative-2);--top-button-background-color-selected: var(--color-layer-negative-3);--top-forms-border-color: var(--color-line-negative-1)}.top-button.top-style_outline.top-color_red:hover{--top-forms-border-color: var(--color-line-negative-2)}.top-button.top-style_outline.top-color_pink{--top-button-color: var(--color-text-info);--top-icon-color: var(--color-text-info);--top-icon2-color: var(--color-text-info);--top-button-background-color-hover: var(--color-layer-info-1);--top-button-background-color-active: var(--color-layer-info-2);--top-button-background-color-selected: var(--color-layer-info-3);--top-forms-border-color: var(--color-line-info-1)}.top-button.top-style_outline.top-color_pink:hover{--top-forms-border-color: var(--color-line-info-2)}.top-button.top-style_outline.top-color_brand{--top-button-color: var(--color-brand-1);--top-icon-color: var(--color-brand-1);--top-icon2-color: var(--color-brand-1);--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-2);--top-button-background-color-selected: var(--color-layer-3);--top-forms-border-color: var(--color-brand-1)}.top-button.top-style_outline.top-color_brand:hover{--top-forms-border-color: var(--color-brand-2)}.top-button.top-style_soft{--top-shadow-darken-1: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none}.top-button.top-style_soft.top-color_theme{--top-button-color: var(--color-text-1);--top-icon-color: var(--color-text-1);--top-icon2-color: var(--color-text-1);--top-button-background-color: var(--color-layer-1);--top-button-background-color-hover: var(--color-layer-2);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_soft.top-color_blue{--top-button-color: var(--color-text-primary);--top-icon-color: var(--color-text-primary);--top-icon2-color: var(--color-text-primary);--top-button-background-color: var(--color-layer-primary-1);--top-button-background-color-hover: var(--color-layer-primary-2);--top-button-background-color-active: var(--color-layer-primary-3);--top-button-background-color-selected: var(--color-layer-primary-3)}.top-button.top-style_soft.top-color_green{--top-button-color: var(--color-text-positive);--top-icon-color: var(--color-text-positive);--top-icon2-color: var(--color-text-positive);--top-button-background-color: var(--color-layer-positive-1);--top-button-background-color-hover: var(--color-layer-positive-2);--top-button-background-color-active: var(--color-layer-positive-3);--top-button-background-color-selected: var(--color-layer-positive-3)}.top-button.top-style_soft.top-color_orange{--top-button-color: var(--color-text-warning);--top-icon-color: var(--color-text-warning);--top-icon2-color: var(--color-text-warning);--top-button-background-color: var(--color-layer-warning-1);--top-button-background-color-hover: var(--color-layer-warning-2);--top-button-background-color-active: var(--color-layer-warning-3);--top-button-background-color-selected: var(--color-layer-warning-3)}.top-button.top-style_soft.top-color_red{--top-button-color: var(--color-text-negative);--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative);--top-button-background-color: var(--color-layer-negative-1);--top-button-background-color-hover: var(--color-layer-negative-2);--top-button-background-color-active: var(--color-layer-negative-3);--top-button-background-color-selected: var(--color-layer-negative-3)}.top-button.top-style_soft.top-color_pink{--top-button-color: var(--color-text-info);--top-icon-color: var(--color-text-info);--top-icon2-color: var(--color-text-info);--top-button-background-color: var(--color-layer-info-1);--top-button-background-color-hover: var(--color-layer-info-2);--top-button-background-color-active: var(--color-layer-info-3);--top-button-background-color-selected: var(--color-layer-info-3)}.top-button.top-style_soft.top-color_brand{--top-button-color: var(--color-brand-1);--top-icon-color: var(--color-brand-1);--top-icon2-color: var(--color-brand-1);--top-button-background-color: var(--color-layer-1);--top-button-background-color-hover: var(--color-layer-2);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_transparent{--top-shadow-darken-1: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: transparent;--top-button-background-color-hover: transparent;--top-button-background-color-active: transparent;--top-button-background-color-selected: var(--color-steel-200)}.top-button.top-style_transparent:hover{opacity:.8}.top-button.top-style_transparent.top-color_blue{--top-button-color: var(--color-text-primary)}.top-button.top-style_transparent.top-color_green{--top-button-color: var(--color-text-positive)}.top-button.top-style_transparent.top-color_orange{--top-button-color: var(--color-text-warning)}.top-button.top-style_transparent.top-color_red{--top-button-color: var(--color-text-negative)}.top-button.top-style_transparent.top-color_pink{--top-button-color: var(--color-text-info)}.top-button.top-style_transparent.top-color_brand{--top-button-color: var(--color-brand-1)}.top-button{--top-button-color: var(--color-white);--top-button-background-color: transparent;--top-button-background-color-hover: var(--top-button-background-color);--top-button-background-color-active: var(--top-button-background-color-hover);--top-button-background-color-selected: var(--top-button-background-color-hover);--top-button-box-shadow: none;--top-button-box-shadow-hover: var(--top-shadow-darken-2);--top-button-box-shadow-active: var(--top-shadow-darken-3);--top-button-box-shadow-selected: var(--top-shadow-darken-3);--top-forms-border-width: 0px;--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding))}.top-button>span{pointer-events:none}.top-button>.top-ellipsis{flex-grow:0}.top-button.top-size_xs{--top-forms-padding: var(--top-forms-padding_xs);--top-forms-base-height: var(--top-forms-base-height_xs)}.top-button.top-size_m{--top-forms-padding: var(--top-forms-padding_m);--top-forms-base-height: var(--top-forms-base-height_m)}.top-button.top-size_l{--top-forms-padding: var(--top-forms-padding_l);--top-forms-base-height: var(--top-forms-base-height_l)}.top-button_badge-afterText{order:100}.top-button:not([data-top-icon2])>.top-button_badge-afterText{margin-left:0}.top-forms-optionLabel{flex-grow:1}.top-forms-optionLabel_title{color:var(--color-text-1);min-height:var(--top-forms-option-height);display:flex;align-items:center}.top-forms-optionLabel_title-disabled{color:var(--color-text-3)}.top-forms-optionLabel_description{color:var(--color-text-2);font-size:.85em;line-height:var(--top-forms-option-height)}.top-forms-optionLabel_description-disabled{color:var(--color-text-3)}.top-checkbox{cursor:pointer;display:inline-flex}.top-checkbox_input{cursor:inherit;border-radius:4px;background:var(--color-layout-front-1);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-checkbox_input:before{content:" ";color:#fff;font-family:Topvisor-2;font-size:16px}.top-checkbox_input:hover{border-color:var(--top-forms-border-color-hover);background:var(--color-layer-primary-1)}.top-checkbox_input:checked,.top-checkbox_input:indeterminate{border-color:var(--top-forms-option-color);background:var(--top-forms-option-color)}.top-checkbox_input:checked:before{content:""}.top-checkbox_input:indeterminate:before{content:""}.top-checkbox_input:checked:hover,.top-checkbox_input:indeterminate:hover{border-color:var(--top-forms-option-color-hover);background:var(--top-forms-option-color-hover)}.top-checkbox_input.top-error{border-color:var(--color-bg-negative-1)}.top-checkbox_input.top-error:hover{border-color:var(--color-bg-negative-2)}.top-checkbox_input:checked.top-error,.top-checkbox_input:indeterminate.top-error{background:var(--color-bg-negative-1)}.top-checkbox_input:checked.top-error:hover,.top-checkbox_input:indeterminate.top-error:hover{background:var(--color-bg-negative-2)}.top-hint{--top-icon-size: 16px;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--color-layout-front-1);padding:1px;color:var(--color-text-3);line-height:1;z-index:1;pointer-events:all}.top-hint:hover{color:var(--color-text-2)}:root{--top-loadbar-duration: 10s;--top-loadbar-color: var(--color-line-primary-1)}.top-loadbar{background:var(--top-loadbar-color);width:0;height:4px;position:absolute;top:0;left:0;animation:top-loadbar var(--top-loadbar-duration) forwards}@keyframes top-loadbar{0%{width:4px}4%{width:4%}5%{width:5%}to{width:95%}}.top-input{--top-forms_clear-width: 0px;border-radius:var(--top-forms-radius);width:180px;position:relative;display:inline-flex;align-items:center;gap:var(--top-gap-1)}.top-input_input{color:var(--color-text-2);background:var(--top-forms-background-color);height:var(--top-forms-base-height);padding:0;padding-right:max(var(--top-forms-padding),calc(var(--top-icon2-width) + var(--top-forms_clear-width)));padding-left:max(var(--top-forms-padding),var(--top-icon-width))}.top-input_input:hover{background:var(--top-forms-background-color-hover)}.top-input_input:focus{color:var(--color-text-1);border-color:var(--color-line-primary-1);outline:none}.top-input[data-top-icon]:before,.top-input[data-top-icon2]:after{--top-icon-color: var(--color-text-4);--top-icon2-color: var(--color-text-4);position:absolute;z-index:3;font-size:20px}.top-input[data-top-icon]:before{left:0}.top-input[data-top-icon2]:after{right:0}.top-input-withCleaner{--top-forms_clear-width: 24px}.top-input_cleaner[data-top-icon]{--top-icon-size: 16px;--top-icon-width: 20px;--top-icon-color: var(--color-text-3);cursor:pointer;border-radius:50%;width:20px;height:16px;position:absolute;right:calc(var(--top-forms-border-width) + max(var(--top-icon2-width),var(--top-forms-padding) / 2));z-index:1;display:flex;align-items:center;justify-content:center}.top-input_cleaner[data-top-icon]:hover{--top-icon-color: var(--color-text-2)}.top-input_input{width:50%;flex-grow:1}.top-input .top-loadbar{border-radius:var(--top-forms-radius) 0 0 0}.top-input-datepicker{width:calc(105px + var(--top-icon-width) + var(--top-icon2-width))}.top-input_input-date{opacity:0;position:absolute;inset:0;z-index:-1}.top-input_input-date::-webkit-inner-spin-button{display:none}.top-input_input-date::-webkit-calendar-picker-indicator{opacity:0}.top-inputRange{max-width:320px;vertical-align:baseline;display:inline-flex;gap:8px}.top-inputRange_dash{height:var(--top-forms-base-height);color:var(--color-text-4);align-self:flex-end;display:inline-flex;align-items:center}.top-inputRange>.top-input{flex-grow:1}:root{--top-radio-background-color: var(--color-layout-front-1);--top-radio-background-color-hover: var(--top-radio-background-color);--top-radio-background-color-active: var(--top-radio-background-color)}.top-radio{cursor:pointer}.top-radio_input{border-radius:50%;background:var(--color-layout-front-1);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-radio_input:hover{border-color:var(--top-forms-border-color-hover);background:var(--color-layer-primary-1)}.top-radio_input:checked{border-color:var(--top-forms-option-color);border-width:5px}.top-radio_input:checked:hover{border-color:var(--color-bg-primary-2)}.top-radio_input.top-error,.top-radio_input.top-error:hover{border-color:var(--color-bg-negative-1)}.top-checkboxSwitcher{cursor:pointer;display:inline-flex;gap:4px}.top-checkboxSwitcher_input{border-radius:9px;border:none;background:var(--color-layer-3);width:36px;height:18px;position:relative}.top-checkboxSwitcher_input:before{content:"";border-radius:50%;background:var(--color-white);width:12px;height:12px;margin:3px;position:absolute;top:0;left:0;transition:left .1s}.top-checkboxSwitcher_input:hover{background:var(--color-layer-4)}.top-checkboxSwitcher_input:checked{background:var(--top-forms-option-color)}.top-checkboxSwitcher_input:checked:hover{background:var(--top-forms-option-color-hover)}.top-checkboxSwitcher_input:checked:before{left:50%}.top-checkboxSwitcher_input.top-error{background:var(--color-layer-negative-3)}.top-checkboxSwitcher_input.top-error:hover{background:var(--color-layer-negative-4)}.top-checkboxSwitcher_input.top-error:checked{background:var(--color-bg-negative-2)}.top-checkboxSwitcher_input.top-error:checked:hover{background:var(--color-bg-negative-1)}.top-textarea{width:180px;display:inline-flex;align-items:center;position:relative}.top-textarea_textarea{color:var(--color-text-1);background:var(--top-forms-background-color);width:100%;padding:var(--top-forms-padding);resize:none}.top-textarea_textarea:hover{background:var(--top-forms-background-color-hover)}.top-textarea_textarea:focus{border-color:var(--color-line-primary-1);outline:none}html .top-textarea_textarea.top-textarea_textarea-expandable{width:100%;height:100%;overflow:hidden;position:absolute;top:0;left:0}.top-textarea_pseudoContent{box-sizing:border-box;min-height:var(--445cd2c3);padding:var(--top-forms-padding);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;opacity:0;z-index:-1}.top-textarea_hint{position:absolute;top:2px;right:2px}.top-select{color:var(--color-text-1);--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);align-items:center;width:180px;max-width:100%;display:inline-flex}.top-select-error{--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative)}.top-select_select{background-color:var(--top-forms-background-color);padding-left:var(--top-forms-padding);text-indent:clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)));width:100%;height:var(--top-forms-base-height);text-overflow:ellipsis;white-space:nowrap;flex-grow:1;overflow:hidden}.top-select optgroup{color:var(--color-text-1);font-style:normal}.top-select option:not(:disabled){background:var(--color-layout-front-1);color:var(--color-text-1)}.top-select option:disabled{background:unset;color:unset}@-moz-document url-prefix(){.top-select_select{text-indent:calc(clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)))/2)}}@media only screen and (min-width: 900px){.top-changer{cursor:pointer;border-radius:100%;width:0;transform:translate(-44px);color:var(--color-text-2);font-size:16px;line-height:1;display:none;z-index:2;order:4}.top-changer:hover{color:var(--color-text-primary)}.top-changer:after{content:"";background-color:var(--top-forms-background-color);font-family:Topvisor-2}*:hover>.top-changer{display:block}}
|