@topvisor/ui 1.4.0 → 1.4.1-projectSelector.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.chunks/core-BgoBbm_5.es.js +242 -0
- package/.chunks/core-BgoBbm_5.es.js.map +1 -0
- package/.chunks/core-D1KnwO7l.amd.js +2 -0
- package/.chunks/core-D1KnwO7l.amd.js.map +1 -0
- package/.chunks/{datepicker-D1Hw3a3o.es.js → datepicker-BPTUHd97.es.js} +2 -2
- package/.chunks/datepicker-BPTUHd97.es.js.map +1 -0
- package/.chunks/{datepicker-3coUsFW2.amd.js → datepicker-O_SK-Dz4.amd.js} +2 -2
- package/.chunks/datepicker-O_SK-Dz4.amd.js.map +1 -0
- package/.chunks/{dialog_regionSelectorRegions-CZ8IX7la.amd.js → dialog_regionSelectorRegions-Ba-Eypgv.amd.js} +2 -2
- package/.chunks/dialog_regionSelectorRegions-Ba-Eypgv.amd.js.map +1 -0
- package/.chunks/{dialog_regionSelectorRegions-1UVhgK2f.es.js → dialog_regionSelectorRegions-DA38RsiW.es.js} +4 -4
- package/.chunks/dialog_regionSelectorRegions-DA38RsiW.es.js.map +1 -0
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js → dialogs.vue_vue_type_script_setup_true_lang-CWprVs8d.amd.js} +2 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CWprVs8d.amd.js.map +1 -0
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js → dialogs.vue_vue_type_script_setup_true_lang-CzFMOjlE.es.js} +2 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CzFMOjlE.es.js.map +1 -0
- package/.chunks/field-Cvv0SRcJ.amd.js.map +1 -1
- package/.chunks/field-CyyFzM-Y.es.js.map +1 -1
- package/.chunks/{forms-CUSCBQu3.amd.js → forms-4D_EVI46.amd.js} +3 -3
- package/.chunks/forms-4D_EVI46.amd.js.map +1 -0
- package/.chunks/{forms-BseC3Ftz.es.js → forms-xkXHvvah.es.js} +565 -551
- package/.chunks/forms-xkXHvvah.es.js.map +1 -0
- package/.chunks/index-DLUtoTUg.amd.js.map +1 -1
- package/.chunks/index-DkQWJkMc.es.js.map +1 -1
- package/.chunks/lazy-40pjr8cZ.es.js.map +1 -1
- package/.chunks/lazy-DSFLxvj4.amd.js.map +1 -1
- package/.chunks/{notice-DwjipV21.amd.js → notice-hF3z8ewG.amd.js} +2 -2
- package/.chunks/notice-hF3z8ewG.amd.js.map +1 -0
- package/.chunks/{notice-Cl3ZgiHm.es.js → notice-wqZxmsUH.es.js} +2 -2
- package/.chunks/notice-wqZxmsUH.es.js.map +1 -0
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js → page.vue_vue_type_script_setup_true_lang-rW3w9LMh.es.js} +4 -4
- package/.chunks/page.vue_vue_type_script_setup_true_lang-rW3w9LMh.es.js.map +1 -0
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js → page.vue_vue_type_script_setup_true_lang-tiWuQ_ZK.amd.js} +2 -2
- package/.chunks/page.vue_vue_type_script_setup_true_lang-tiWuQ_ZK.amd.js.map +1 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-C9A--uWd.es.js +503 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-C9A--uWd.es.js.map +1 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DABqSSXw.amd.js +2 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DABqSSXw.amd.js.map +1 -0
- package/.chunks/{popup-Jw_Yyg3U.es.js → popup-BeLPdHWv.es.js} +2 -2
- package/.chunks/popup-BeLPdHWv.es.js.map +1 -0
- package/.chunks/{popup-DRuyYFGB.amd.js → popup-Bwmu8rOb.amd.js} +2 -2
- package/.chunks/popup-Bwmu8rOb.amd.js.map +1 -0
- package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js → popupHint.vue_vue_type_style_index_0_lang-B0BWXhHK.amd.js} +2 -2
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-B0BWXhHK.amd.js.map +1 -0
- package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js → popupHint.vue_vue_type_style_index_0_lang-fnjq0yg1.es.js} +2 -2
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-fnjq0yg1.es.js.map +1 -0
- package/.chunks/store-CX_6ZXhO.es.js.map +1 -1
- package/.chunks/store-YRW59xEF.amd.js.map +1 -1
- package/.chunks/{utils-D9nYQabE.amd.js → utils-BRJvuqe_.amd.js} +2 -2
- package/.chunks/utils-BRJvuqe_.amd.js.map +1 -0
- package/.chunks/{utils-YrUExsH7.es.js → utils-ByqQkftW.es.js} +2 -2
- package/.chunks/utils-ByqQkftW.es.js.map +1 -0
- package/.chunks/{utils-Q69SXlnV.es.js → utils-YVlPlqDK.es.js} +3 -3
- package/.chunks/utils-YVlPlqDK.es.js.map +1 -0
- package/.chunks/{utils-CzHUG_xz.amd.js → utils-cAJahDml.amd.js} +2 -2
- package/.chunks/utils-cAJahDml.amd.js.map +1 -0
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js → widgetInput.vue_vue_type_script_setup_true_lang-D7lVLE3D.amd.js} +2 -2
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-D7lVLE3D.amd.js.map +1 -0
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js → widgetInput.vue_vue_type_script_setup_true_lang-UUovJzhL.es.js} +2 -2
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-UUovJzhL.es.js.map +1 -0
- package/README.md +82 -82
- package/api/additional.amd.js.map +1 -1
- package/api/additional.js.map +1 -1
- package/api/index.amd.js +1 -1
- package/api/index.amd.js.map +1 -1
- package/api/index.js +1 -1
- package/api/index.js.map +1 -1
- package/assets/core.css +1 -1
- package/assets/forms.css +1 -1
- package/assets/policy.css +1 -1
- package/assets/project.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/charts/charts.js.map +1 -1
- package/core/app.amd.js +1 -1
- package/core/app.amd.js.map +1 -1
- package/core/app.js +5 -5
- package/core/app.js.map +1 -1
- 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/extra/extra.amd.js.map +1 -1
- package/extra/extra.js.map +1 -1
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +3 -3
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +123 -111
- package/formsExt/formsExt.js.map +1 -1
- package/icomoon/Read Me.txt +7 -7
- package/icomoon/Topvisor icons.json +6658 -0
- package/icomoon/demo-files/demo.css +158 -158
- package/icomoon/demo-files/demo.js +30 -30
- package/icomoon/demo.css +158 -158
- package/icomoon/demo.html +15 -1
- package/icomoon/demo.js +30 -30
- package/icomoon/fonts/Topvisor-2.eot +0 -0
- package/icomoon/fonts/Topvisor-2.svg +1 -0
- package/icomoon/fonts/Topvisor-2.ttf +0 -0
- package/icomoon/fonts/Topvisor-2.woff +0 -0
- package/icomoon/selection.json +1 -1
- package/icomoon/style.css +8 -5
- package/jquery-ui.min.css +5 -5
- package/layout/layout.amd.js +1 -1
- package/layout/layout.amd.js.map +1 -1
- package/layout/layout.js +1 -1
- 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 +6 -6
- package/popup/popup.js.map +1 -1
- 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 +896 -614
- package/project/project.js.map +1 -1
- package/require/css.amd.js +12 -12
- package/src/api/api/types/client/request-options.d.ts +8 -3
- package/src/components/forms/caption/types.d.ts +5 -1
- package/src/components/forms/input/input.vue.d.ts +2 -4
- package/src/components/forms/input/types.d.ts +15 -0
- package/src/components/forms/select/select.vue.d.ts +15 -2
- package/src/components/forms/select/types.d.ts +6 -0
- package/src/components/formsExt/editArea/editArea.vue.d.ts +15 -2
- package/src/components/formsExt/editArea/types.d.ts +6 -0
- package/src/components/formsExt/editInput/editInput.vue.d.ts +16 -1
- package/src/components/formsExt/selector2/composables/useAPI.d.ts +2 -0
- package/src/components/formsExt/selector2/composables/useMenu.d.ts +3 -1
- package/src/components/formsExt/selector2/types.d.ts +14 -0
- package/src/components/popup/popup/listItem.vue.d.ts +24 -4
- package/src/components/popup/popup/types.d.ts +1 -0
- package/src/components/project/groupSelector/groups/groups.vue.d.ts +2 -0
- package/src/components/project/groupSelector/groups/utils.d.ts +1 -1
- package/src/components/project/project.d.ts +1 -0
- package/src/components/project/projectSelector/projectSelector.vue.d.ts +121 -0
- package/src/components/project/projectSelector/stories/mocks/projects.d.ts +10 -0
- package/src/components/project/projectSelector/submenu/submenu.vue.d.ts +4 -0
- package/src/components/project/projectSelector/submenu/types.d.ts +17 -0
- package/src/components/project/projectSelector/types.d.ts +57 -0
- package/src/components/project/projectSelector/utils.d.ts +206 -0
- package/src/core/directives/shortcut.d.ts +12 -0
- package/src/core/utils/string.d.ts +1 -1
- package/tabs/tabs.amd.js.map +1 -1
- package/tabs/tabs.js.map +1 -1
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.amd.js.map +1 -1
- package/tabsView/tabsView.js +2 -2
- package/tabsView/tabsView.js.map +1 -1
- 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.map +1 -1
- package/utils/dom.js.map +1 -1
- package/utils/image.amd.js.map +1 -1
- package/utils/image.js.map +1 -1
- package/utils/keyboard.amd.js.map +1 -1
- package/utils/keyboard.js.map +1 -1
- package/utils/lodash.amd.js +1 -1
- package/utils/lodash.js +1 -1
- package/utils/number.amd.js.map +1 -1
- package/utils/number.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.map +1 -1
- package/utils/route.js.map +1 -1
- package/utils/scroll.amd.js.map +1 -1
- package/utils/scroll.js.map +1 -1
- package/utils/searchers.amd.js +1 -1
- package/utils/searchers.amd.js.map +1 -1
- package/utils/searchers.js +3 -3
- 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 +1 -1
- 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 +31 -0
- package/.chunks/core-BL-38XF7.es.js +0 -196
- package/.chunks/core-BL-38XF7.es.js.map +0 -1
- package/.chunks/core-BsPx05H9.amd.js +0 -2
- package/.chunks/core-BsPx05H9.amd.js.map +0 -1
- package/.chunks/datepicker-3coUsFW2.amd.js.map +0 -1
- package/.chunks/datepicker-D1Hw3a3o.es.js.map +0 -1
- package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js.map +0 -1
- package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js.map +0 -1
- package/.chunks/forms-BseC3Ftz.es.js.map +0 -1
- package/.chunks/forms-CUSCBQu3.amd.js.map +0 -1
- package/.chunks/notice-Cl3ZgiHm.es.js.map +0 -1
- package/.chunks/notice-DwjipV21.amd.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js.map +0 -1
- package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js +0 -496
- package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js.map +0 -1
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js +0 -2
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js.map +0 -1
- package/.chunks/popup-DRuyYFGB.amd.js.map +0 -1
- package/.chunks/popup-Jw_Yyg3U.es.js.map +0 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js.map +0 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js.map +0 -1
- package/.chunks/utils-CzHUG_xz.amd.js.map +0 -1
- package/.chunks/utils-D9nYQabE.amd.js.map +0 -1
- package/.chunks/utils-Q69SXlnV.es.js.map +0 -1
- package/.chunks/utils-YrUExsH7.es.js.map +0 -1
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js.map +0 -1
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js.map +0 -1
package/icomoon/style.css
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
@font-face {
|
|
2
2
|
font-family: 'Topvisor-2';
|
|
3
|
-
src: url('fonts/Topvisor-2.eot?
|
|
4
|
-
src: url('fonts/Topvisor-2.eot?
|
|
5
|
-
url('fonts/Topvisor-2.ttf?
|
|
6
|
-
url('fonts/Topvisor-2.woff?
|
|
7
|
-
url('fonts/Topvisor-2.svg?
|
|
3
|
+
src: url('fonts/Topvisor-2.eot?o5xol5');
|
|
4
|
+
src: url('fonts/Topvisor-2.eot?o5xol5#iefix') format('embedded-opentype'),
|
|
5
|
+
url('fonts/Topvisor-2.ttf?o5xol5') format('truetype'),
|
|
6
|
+
url('fonts/Topvisor-2.woff?o5xol5') format('woff'),
|
|
7
|
+
url('fonts/Topvisor-2.svg?o5xol5#Topvisor-2') format('svg');
|
|
8
8
|
font-weight: normal;
|
|
9
9
|
font-style: normal;
|
|
10
10
|
font-display: block;
|
|
@@ -451,6 +451,9 @@
|
|
|
451
451
|
.icon2-spider:before {
|
|
452
452
|
content: "\e9f2";
|
|
453
453
|
}
|
|
454
|
+
.icon2-gemini:before {
|
|
455
|
+
content: "\ea0b";
|
|
456
|
+
}
|
|
454
457
|
.icon2-yandex-eng:before {
|
|
455
458
|
content: "\e9ee";
|
|
456
459
|
}
|
package/jquery-ui.min.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/*! jQuery UI - v1.13.1 - 2022-04-12
|
|
2
|
-
* http://jqueryui.com
|
|
3
|
-
* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, slider.css, tooltip.css
|
|
4
|
-
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
|
5
|
-
|
|
1
|
+
/*! jQuery UI - v1.13.1 - 2022-04-12
|
|
2
|
+
* http://jqueryui.com
|
|
3
|
+
* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, slider.css, tooltip.css
|
|
4
|
+
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
|
5
|
+
|
|
6
6
|
.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:"alpha(opacity=0)"}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialotop-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialotop-buttonpane .ui-dialotop-buttonset{float:right}.ui-dialog .ui-dialotop-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:pointer;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}
|
package/layout/layout.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","../.chunks/forms-
|
|
1
|
+
define(["require","exports","vue","../.chunks/forms-4D_EVI46.amd","../require/css.amd!../assets/layout.css"],(function(k,t,e,n){"use strict";if(typeof e>"u")var e=window.Vue;const l=e.defineComponent({__name:"rows",props:{gap:{default:"none"}},setup(s){const o=s;return(r,$)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-rows":!0,["top-rows-gap_"+o.gap]:!0})},[e.renderSlot(r.$slots,"default")],2))}}),c={class:"top-islandRows"},a={key:0,class:"top-islandRows_title"},d=e.defineComponent({__name:"islandRows",setup(s){return(o,r)=>(e.openBlock(),e.createElementBlock("div",c,[o.$slots.title?(e.openBlock(),e.createElementBlock("div",a,[e.renderSlot(o.$slots,"title")])):e.createCommentVNode("",!0),e.createVNode(l,{gap:"l",class:"top-islandRows_rows"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3})]))}}),i={},_={class:"top-islandRows_row"};function u(s,o){return e.openBlock(),e.createElementBlock("div",_,[e.renderSlot(s.$slots,"default")])}const p=n._export_sfc(i,[["render",u]]),f={},w={class:"top-islandRows_subTitle"};function m(s,o){return e.openBlock(),e.createElementBlock("div",w,[e.renderSlot(s.$slots,"default")])}const R=n._export_sfc(f,[["render",m]]);t.TopIslandRows=d,t.TopIslandRowsRow=p,t.TopIslandRowsSubTitle=R,t.TopRows=l,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=layout.amd.js.map
|
package/layout/layout.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.amd.js","sources":["../../src/components/layout/islandRows/islandRows.vue","../../src/components/layout/islandRows/islandRowsRow/islandRowsRow.vue","../../src/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Slots } from './types';\nimport TopRows from '../rows/rows.vue';\n\ndefineSlots<Slots>();\n</script>\n\n<template>\n\t<div class=\"top-islandRows\">\n\t\t<div\n\t\t\tv-if=\"$slots.title\"\n\t\t\tclass=\"top-islandRows_title\"\n\t\t>\n\t\t\t<slot name=\"title\"></slot>\n\t\t</div>\n\n\t\t<TopRows gap=\"l\" class=\"top-islandRows_rows\">\n\t\t\t<slot></slot>\n\t\t</TopRows>\n\t</div>\n</template>\n\n<style>\n.top-islandRows {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-2);\n}\n\n.top-islandRows_title {\n\tfont-size: 20px;\n\tfont-weight: bold;\n}\n\n.top-islandRows_rows {\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-bg-shading-2);\n\tpadding: var(--top-padding-3);\n}\n\n/* В islandRows у всех полей ввода внутри top-rows прозрачные рамки */\n.top-islandRows_rows .top-rows > .top-input,\n.top-islandRows_rows .top-rows > .top-textarea,\n.top-islandRows_rows .top-rows > .top-select { --top-forms-border-color: transparent }\n\n/* Размеры форм */\n.top-islandRows_rows .top-button,\n.top-islandRows_rows .top-input,\n.top-islandRows_rows .top-textarea,\n.top-islandRows_rows .top-select { width: auto; flex-grow: 1; display: flex; }\n\n.top-islandRows_rows .top-forms-optionWrapper:not(.top-optionGroup_item) { padding: 0; flex-grow: 1; }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_row\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_row {\n\toutline-offset: 2px;\n\tborder-radius: 8px;\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-3);\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n}\n\n/* Фокус форм */\n.top-islandRows_row:has(> .top-forms-optionWrapper .top-forms-focusable:focus-visible) {\n\toutline: 2px solid var(--color-line-primary-1);\n\toutline-offset: 2px;\n}\n\n/* Фокус форм, стили top-error оставить у форм, иначе они будут конфликтовать со стилями фокуса, так как у top-islandRows_row нет border */\n.top-islandRows_row > .top-forms-optionWrapper .top-forms-focusable:not(.top-error) {\n\toutline: none;\n\tanimation: none;\n}\n\n/* Отмена прозрачных рамок у полей ввода внутри islandRows, если top-rows расположен в islandRowsRow */\n.top-islandRows_row .top-rows > .top-input,\n.top-islandRows_row .top-rows > .top-textarea,\n.top-islandRows_row .top-rows > .top-select { --top-forms-border-color: inherit }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_subTitle\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_subTitle {\n\twidth: 100%;\n\tfont-size: 16px;\n\tfont-weight: bold;\n}\n</style>\n"],"names":["_ctx","vue","_hoisted_2","_hoisted_1$1","_hoisted_1"],"mappings":"2lBAmBOA,EAAA,OAAA,OAAAC,EAAA,UAAA,EAAAA,EAAA,mBAAA,MAAAC,EAAA,CALCD,EAAA,WAAAD,EAAA,OAAA,OAAA,CADqB,CAAA,GAAAC,EAAA,mBAAA,GAAA,EAAA,2BAGd,MAAA,qBAAU,EAAA,wBACTA,EAAA,WAAAD,EAAA,OAAA,SAAA,CAAA,CAAA,mBCbVG,EAAA,CAAA,MAAA,oBAAA,qJCAAC,EAAA,CAAA,MAAA,yBAAA"}
|
|
1
|
+
{"version":3,"file":"layout.amd.js","sources":["../../src/components/layout/islandRows/islandRows.vue","../../src/components/layout/islandRows/islandRowsRow/islandRowsRow.vue","../../src/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { Slots } from './types';\r\nimport TopRows from '../rows/rows.vue';\r\n\r\ndefineSlots<Slots>();\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"top-islandRows\">\r\n\t\t<div\r\n\t\t\tv-if=\"$slots.title\"\r\n\t\t\tclass=\"top-islandRows_title\"\r\n\t\t>\r\n\t\t\t<slot name=\"title\"></slot>\r\n\t\t</div>\r\n\r\n\t\t<TopRows gap=\"l\" class=\"top-islandRows_rows\">\r\n\t\t\t<slot></slot>\r\n\t\t</TopRows>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n.top-islandRows {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tgap: var(--top-gap-2);\r\n}\r\n\r\n.top-islandRows_title {\r\n\tfont-size: 20px;\r\n\tfont-weight: bold;\r\n}\r\n\r\n.top-islandRows_rows {\r\n\tborder-radius: var(--top-radius-4);\r\n\tbackground: var(--color-bg-shading-2);\r\n\tpadding: var(--top-padding-3);\r\n}\r\n\r\n/* В islandRows у всех полей ввода внутри top-rows прозрачные рамки */\r\n.top-islandRows_rows .top-rows > .top-input,\r\n.top-islandRows_rows .top-rows > .top-textarea,\r\n.top-islandRows_rows .top-rows > .top-select { --top-forms-border-color: transparent }\r\n\r\n/* Размеры форм */\r\n.top-islandRows_rows .top-button,\r\n.top-islandRows_rows .top-input,\r\n.top-islandRows_rows .top-textarea,\r\n.top-islandRows_rows .top-select { width: auto; flex-grow: 1; display: flex; }\r\n\r\n.top-islandRows_rows .top-forms-optionWrapper:not(.top-optionGroup_item) { padding: 0; flex-grow: 1; }\r\n</style>\r\n","<script setup lang=\"ts\">\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"top-islandRows_row\">\r\n\t\t<slot></slot>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n.top-islandRows_row {\r\n\toutline-offset: 2px;\r\n\tborder-radius: 8px;\r\n\tbackground: var(--color-layout-front-1);\r\n\tpadding: var(--top-padding-3);\r\n\tdisplay: flex;\r\n\tgap: var(--top-gap-2);\r\n}\r\n\r\n/* Фокус форм */\r\n.top-islandRows_row:has(> .top-forms-optionWrapper .top-forms-focusable:focus-visible) {\r\n\toutline: 2px solid var(--color-line-primary-1);\r\n\toutline-offset: 2px;\r\n}\r\n\r\n/* Фокус форм, стили top-error оставить у форм, иначе они будут конфликтовать со стилями фокуса, так как у top-islandRows_row нет border */\r\n.top-islandRows_row > .top-forms-optionWrapper .top-forms-focusable:not(.top-error) {\r\n\toutline: none;\r\n\tanimation: none;\r\n}\r\n\r\n/* Отмена прозрачных рамок у полей ввода внутри islandRows, если top-rows расположен в islandRowsRow */\r\n.top-islandRows_row .top-rows > .top-input,\r\n.top-islandRows_row .top-rows > .top-textarea,\r\n.top-islandRows_row .top-rows > .top-select { --top-forms-border-color: inherit }\r\n</style>\r\n","<script setup lang=\"ts\">\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"top-islandRows_subTitle\">\r\n\t\t<slot></slot>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n.top-islandRows_subTitle {\r\n\twidth: 100%;\r\n\tfont-size: 16px;\r\n\tfont-weight: bold;\r\n}\r\n</style>\r\n"],"names":["_ctx","vue","_hoisted_2","_hoisted_1$1","_hoisted_1"],"mappings":"2lBAmBOA,EAAA,OAAA,OAAAC,EAAA,UAAA,EAAAA,EAAA,mBAAA,MAAAC,EAAA,CALCD,EAAA,WAAAD,EAAA,OAAA,OAAA,CADqB,CAAA,GAAAC,EAAA,mBAAA,GAAA,EAAA,2BAGd,MAAA,qBAAU,EAAA,wBACTA,EAAA,WAAAD,EAAA,OAAA,SAAA,CAAA,CAAA,mBCbVG,EAAA,CAAA,MAAA,oBAAA,qJCAAC,EAAA,CAAA,MAAA,yBAAA"}
|
package/layout/layout.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
_autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
|
|
5
5
|
|
|
6
6
|
import { defineComponent as r, createElementBlock as t, openBlock as e, normalizeClass as c, renderSlot as n, createCommentVNode as _, createVNode as d, withCtx as i } from "vue";
|
|
7
|
-
import { k as l } from "../.chunks/forms-
|
|
7
|
+
import { k as l } from "../.chunks/forms-xkXHvvah.es.js";
|
|
8
8
|
const p = /* @__PURE__ */ r({
|
|
9
9
|
__name: "rows",
|
|
10
10
|
props: {
|
package/layout/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sources":["../../src/components/layout/rows/rows.vue","../../src/components/layout/islandRows/islandRows.vue","../../src/components/layout/islandRows/islandRowsRow/islandRowsRow.vue","../../src/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tgap: 'none',\n});\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-rows']: true,\n\t\t\t['top-rows-gap_' + props.gap]: true,\n\t\t}\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-rows {\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-grow: 1;\n}\n\n.top-rows-gap_none {\n\tgap: 0px;\n}\n\n.top-rows-gap_xs {\n\tgap: var(--top-gap-1);\n}\n\n.top-rows-gap_s {\n\tgap: var(--top-gap-2);\n}\n\n.top-rows-gap_m {\n\tgap: var(--top-gap-3);\n}\n\n.top-rows-gap_l {\n\tgap: var(--top-gap-4);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { Slots } from './types';\nimport TopRows from '../rows/rows.vue';\n\ndefineSlots<Slots>();\n</script>\n\n<template>\n\t<div class=\"top-islandRows\">\n\t\t<div\n\t\t\tv-if=\"$slots.title\"\n\t\t\tclass=\"top-islandRows_title\"\n\t\t>\n\t\t\t<slot name=\"title\"></slot>\n\t\t</div>\n\n\t\t<TopRows gap=\"l\" class=\"top-islandRows_rows\">\n\t\t\t<slot></slot>\n\t\t</TopRows>\n\t</div>\n</template>\n\n<style>\n.top-islandRows {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-2);\n}\n\n.top-islandRows_title {\n\tfont-size: 20px;\n\tfont-weight: bold;\n}\n\n.top-islandRows_rows {\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-bg-shading-2);\n\tpadding: var(--top-padding-3);\n}\n\n/* В islandRows у всех полей ввода внутри top-rows прозрачные рамки */\n.top-islandRows_rows .top-rows > .top-input,\n.top-islandRows_rows .top-rows > .top-textarea,\n.top-islandRows_rows .top-rows > .top-select { --top-forms-border-color: transparent }\n\n/* Размеры форм */\n.top-islandRows_rows .top-button,\n.top-islandRows_rows .top-input,\n.top-islandRows_rows .top-textarea,\n.top-islandRows_rows .top-select { width: auto; flex-grow: 1; display: flex; }\n\n.top-islandRows_rows .top-forms-optionWrapper:not(.top-optionGroup_item) { padding: 0; flex-grow: 1; }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_row\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_row {\n\toutline-offset: 2px;\n\tborder-radius: 8px;\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-3);\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n}\n\n/* Фокус форм */\n.top-islandRows_row:has(> .top-forms-optionWrapper .top-forms-focusable:focus-visible) {\n\toutline: 2px solid var(--color-line-primary-1);\n\toutline-offset: 2px;\n}\n\n/* Фокус форм, стили top-error оставить у форм, иначе они будут конфликтовать со стилями фокуса, так как у top-islandRows_row нет border */\n.top-islandRows_row > .top-forms-optionWrapper .top-forms-focusable:not(.top-error) {\n\toutline: none;\n\tanimation: none;\n}\n\n/* Отмена прозрачных рамок у полей ввода внутри islandRows, если top-rows расположен в islandRowsRow */\n.top-islandRows_row .top-rows > .top-input,\n.top-islandRows_row .top-rows > .top-textarea,\n.top-islandRows_row .top-rows > .top-select { --top-forms-border-color: inherit }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_subTitle\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_subTitle {\n\twidth: 100%;\n\tfont-size: 16px;\n\tfont-weight: bold;\n}\n</style>\n"],"names":["props","__props","_createElementBlock","_normalizeClass","_renderSlot","_ctx","_openBlock","_hoisted_1","$slots","_hoisted_2","_createVNode","TopRows"],"mappings":";;;;;;;;AAGA,UAAMA,IAAQC;2BAMbC,EAOM,OAAA;AAAA,MANJ,OAAKC,EAAA;AAAA;
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../../src/components/layout/rows/rows.vue","../../src/components/layout/islandRows/islandRows.vue","../../src/components/layout/islandRows/islandRowsRow/islandRowsRow.vue","../../src/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { Props } from './types';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tgap: 'none',\r\n});\r\n</script>\r\n\r\n<template>\r\n\t<div\r\n\t\t:class=\"{\r\n\t\t\t['top-rows']: true,\r\n\t\t\t['top-rows-gap_' + props.gap]: true,\r\n\t\t}\"\r\n\t>\r\n\t\t<slot></slot>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n.top-rows {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tflex-grow: 1;\r\n}\r\n\r\n.top-rows-gap_none {\r\n\tgap: 0px;\r\n}\r\n\r\n.top-rows-gap_xs {\r\n\tgap: var(--top-gap-1);\r\n}\r\n\r\n.top-rows-gap_s {\r\n\tgap: var(--top-gap-2);\r\n}\r\n\r\n.top-rows-gap_m {\r\n\tgap: var(--top-gap-3);\r\n}\r\n\r\n.top-rows-gap_l {\r\n\tgap: var(--top-gap-4);\r\n}\r\n</style>\r\n","<script setup lang=\"ts\">\r\nimport type { Slots } from './types';\r\nimport TopRows from '../rows/rows.vue';\r\n\r\ndefineSlots<Slots>();\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"top-islandRows\">\r\n\t\t<div\r\n\t\t\tv-if=\"$slots.title\"\r\n\t\t\tclass=\"top-islandRows_title\"\r\n\t\t>\r\n\t\t\t<slot name=\"title\"></slot>\r\n\t\t</div>\r\n\r\n\t\t<TopRows gap=\"l\" class=\"top-islandRows_rows\">\r\n\t\t\t<slot></slot>\r\n\t\t</TopRows>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n.top-islandRows {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tgap: var(--top-gap-2);\r\n}\r\n\r\n.top-islandRows_title {\r\n\tfont-size: 20px;\r\n\tfont-weight: bold;\r\n}\r\n\r\n.top-islandRows_rows {\r\n\tborder-radius: var(--top-radius-4);\r\n\tbackground: var(--color-bg-shading-2);\r\n\tpadding: var(--top-padding-3);\r\n}\r\n\r\n/* В islandRows у всех полей ввода внутри top-rows прозрачные рамки */\r\n.top-islandRows_rows .top-rows > .top-input,\r\n.top-islandRows_rows .top-rows > .top-textarea,\r\n.top-islandRows_rows .top-rows > .top-select { --top-forms-border-color: transparent }\r\n\r\n/* Размеры форм */\r\n.top-islandRows_rows .top-button,\r\n.top-islandRows_rows .top-input,\r\n.top-islandRows_rows .top-textarea,\r\n.top-islandRows_rows .top-select { width: auto; flex-grow: 1; display: flex; }\r\n\r\n.top-islandRows_rows .top-forms-optionWrapper:not(.top-optionGroup_item) { padding: 0; flex-grow: 1; }\r\n</style>\r\n","<script setup lang=\"ts\">\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"top-islandRows_row\">\r\n\t\t<slot></slot>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n.top-islandRows_row {\r\n\toutline-offset: 2px;\r\n\tborder-radius: 8px;\r\n\tbackground: var(--color-layout-front-1);\r\n\tpadding: var(--top-padding-3);\r\n\tdisplay: flex;\r\n\tgap: var(--top-gap-2);\r\n}\r\n\r\n/* Фокус форм */\r\n.top-islandRows_row:has(> .top-forms-optionWrapper .top-forms-focusable:focus-visible) {\r\n\toutline: 2px solid var(--color-line-primary-1);\r\n\toutline-offset: 2px;\r\n}\r\n\r\n/* Фокус форм, стили top-error оставить у форм, иначе они будут конфликтовать со стилями фокуса, так как у top-islandRows_row нет border */\r\n.top-islandRows_row > .top-forms-optionWrapper .top-forms-focusable:not(.top-error) {\r\n\toutline: none;\r\n\tanimation: none;\r\n}\r\n\r\n/* Отмена прозрачных рамок у полей ввода внутри islandRows, если top-rows расположен в islandRowsRow */\r\n.top-islandRows_row .top-rows > .top-input,\r\n.top-islandRows_row .top-rows > .top-textarea,\r\n.top-islandRows_row .top-rows > .top-select { --top-forms-border-color: inherit }\r\n</style>\r\n","<script setup lang=\"ts\">\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"top-islandRows_subTitle\">\r\n\t\t<slot></slot>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n.top-islandRows_subTitle {\r\n\twidth: 100%;\r\n\tfont-size: 16px;\r\n\tfont-weight: bold;\r\n}\r\n</style>\r\n"],"names":["props","__props","_createElementBlock","_normalizeClass","_renderSlot","_ctx","_openBlock","_hoisted_1","$slots","_hoisted_2","_createVNode","TopRows"],"mappings":";;;;;;;;AAGA,UAAMA,IAAQC;2BAMbC,EAOM,OAAA;AAAA,MANJ,OAAKC,EAAA;AAAA;QAAmD,CAAA,kBAAAH,EAAM,GAAG,GAAA;AAAA,MAAA;;MAKlEI,EAAaC,EAAA,QAAA,SAAA;AAAA,IAAA;;;;;;;;sBCPdC,EAAA,GAAAJ,EAWM,OAXNK,GAWM;AAAA,MATEC,EAAAA,OAAO,SADdF,KAAAJ,EAKM,OALNO,GAKM;AAAA,QADLL,EAA0BC,EAAA,QAAA,OAAA;AAAA,MAAA;MAG3BK,EAEUC,GAAA;AAAA,QAFD,KAAI;AAAA,QAAI,OAAM;AAAA,MAAA;mBACtB,MAAa;AAAA,UAAbP,EAAaC,EAAA,QAAA,SAAA;AAAA,QAAA;;;;;YCbVE,IAAA,EAAA,OAAM,qBAAoB;;AAA/B,SAAAD,EAAA,GAAAJ,EAEM,OAFNK,GAEM;AAAA,IADLH,EAAaC,EAAA,QAAA,SAAA;AAAA;;yDCDTE,IAAA,EAAA,OAAM,0BAAyB;;AAApC,SAAAD,EAAA,GAAAJ,EAEM,OAFNK,GAEM;AAAA,IADLH,EAAaC,EAAA,QAAA,SAAA;AAAA;;;"}
|
package/package.json
CHANGED
package/popup/popup.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/popupHint.vue_vue_type_style_index_0_lang-
|
|
1
|
+
define(["require","exports","../.chunks/popupHint.vue_vue_type_style_index_0_lang-B0BWXhHK.amd","../.chunks/widgetInput.vue_vue_type_script_setup_true_lang-D7lVLE3D.amd","vue","../.chunks/forms-4D_EVI46.amd"],(function(V,l,d,k,e,$){"use strict";if(typeof e>"u")var e=window.Vue;const T=e.defineComponent({__name:"popupAlert",props:{submitText:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByFocusInput:{type:Boolean},openByHover:{type:Boolean},disabled:{type:Boolean},posBy:{},data:{}},emits:["open","close","scrollContentList"],setup(f){const c=f,{submitText:i,...p}=c;return(o,t)=>(e.openBlock(),e.createBlock(d._sfc_main,e.mergeProps({class:"top-popupAlert"},p,{onOpen:t[0]||(t[0]=s=>o.$emit("open",s)),onClose:t[1]||(t[1]=s=>o.$emit("close",s)),onScrollContentList:t[2]||(t[2]=(...s)=>o.$emit("scrollContentList",...s))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(o.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(o.$slots,"footer"),e.createVNode($._sfc_main$1,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(i)||o.$i18n.Common.Close),1)]),_:1})]),_:2},[o.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"header")]),key:"0"}:void 0,o.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),key:"1"}:void 0]),1040))}}),w=e.defineComponent({__name:"popupConfirm",props:{cancelText:{},submitText:{},isWarning:{type:Boolean},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByFocusInput:{type:Boolean},openByHover:{type:Boolean},disabled:{type:Boolean},posBy:{},data:{}},emits:["open","close","scrollContentList","submit"],setup(f,{emit:c}){const i=f,p=c,o=e.ref(!1),t=()=>{o.value=!0,p("submit")},s=r=>{if(o.value){o.value=!1;return}p("close",r)},{submitText:a,cancelText:B,isWarning:S,...y}=i;return(r,u)=>(e.openBlock(),e.createBlock(d._sfc_main,e.mergeProps({class:"top-popupConfirm"},y,{onOpen:u[0]||(u[0]=n=>r.$emit("open",n)),onClose:u[1]||(u[1]=n=>s(n)),onScrollContentList:u[2]||(u[2]=(...n)=>r.$emit("scrollContentList",...n))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(r.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(r.$slots,"footer"),e.createVNode($._sfc_main$1,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(B)||r.$i18n.Common.Cancel2),1)]),_:1}),e.createVNode($._sfc_main$1,{onClick:t,color:e.unref(S)?"red":"blue"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)||r.$i18n.Common.Continue),1)]),_:1},8,["color"])]),_:2},[r.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(r.$slots,"header")]),key:"0"}:void 0,r.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),key:"1"}:void 0]),1040))}}),b=e.defineComponent({__name:"popupPrompt",props:{submitText:{},cancelText:{},defaultValue:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByFocusInput:{type:Boolean},openByHover:{type:Boolean},disabled:{type:Boolean},posBy:{},data:{}},emits:["open","close","scrollContentList","submit"],setup(f,{emit:c}){const i=f,p=c,o=()=>s.value=i.defaultValue??"",t=e.ref(!1),s=e.ref();e.watch(()=>i.defaultValue,()=>o(),{immediate:!0});const a=()=>{t.value=!0},B=n=>{if(t.value){t.value=!1,p("submit",s.value),o();return}o(),p("close",n)},{submitText:S,cancelText:y,defaultValue:r,...u}=i;return(n,m)=>(e.openBlock(),e.createBlock(d._sfc_main,e.mergeProps({class:"top-popupPrompt"},u,{onOpen:m[1]||(m[1]=C=>n.$emit("open",C)),onClose:m[2]||(m[2]=C=>B(C)),onScrollContentList:m[3]||(m[3]=(...C)=>n.$emit("scrollContentList",...C))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(n.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(n.$slots,"footer"),e.createVNode($._sfc_main$1,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(y)||n.$i18n.Common.Cancel2),1)]),_:1}),e.createVNode($._sfc_main$1,{onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(S)||n.$i18n.Common.OK),1)]),_:1})]),_:2},[n.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"header")]),key:"0"}:void 0,n.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"default"),e.createVNode(k._sfc_main,{modelValue:s.value,"onUpdate:modelValue":m[0]||(m[0]=C=>s.value=C),modelModifiers:{trim:!0}},null,8,["modelValue"])]),key:"1"}:void 0]),1040))}}),h=e.defineComponent({__name:"popupHint",props:{hint:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByFocusInput:{type:Boolean},openByHover:{type:Boolean},disabled:{type:Boolean},posBy:{},data:{}},setup(f){const c=f,{hint:i,...p}=c;return(o,t)=>{const s=e.resolveDirective("top-tooltip");return e.openBlock(),e.createBlock(d._sfc_main,e.mergeProps({class:"top-popupHint"},p,{onOpen:t[0]||(t[0]=a=>o.$emit("open",a)),onClose:t[1]||(t[1]=a=>o.$emit("close",a)),onScrollContentList:t[2]||(t[2]=(...a)=>o.$emit("scrollContentList",...a))}),e.createSlots({opener:e.withCtx(()=>[e.withDirectives(e.createVNode($._sfc_main$2,{hint:e.unref(i),class:"top-popupHint_opener"},null,8,["hint"]),[[s]])]),_:2},[o.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),key:"0"}:void 0]),1040)}}});l.TopPopup=d._sfc_main,l.TopPopupListItem=d._sfc_main$2,l.TopPopupOpener=d._sfc_main$1,l.TopPopupWidgetInput=k._sfc_main,l.TopPopupAlert=T,l.TopPopupConfirm=w,l.TopPopupHint=h,l.TopPopupPrompt=b,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=popup.amd.js.map
|
package/popup/popup.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popup.amd.js","sources":["../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.
|
|
1
|
+
{"version":3,"file":"popup.amd.js","sources":["../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\r\nimport type { Emits, Props } from './types';\r\nimport TopButton from '@/components/forms/button/button.vue';\r\nimport TopPopup from '@/components/popup/popup/popup.vue';\r\n\r\nconst props = defineProps<Props<T>>();\r\n\r\ndefineEmits<Emits<T>>();\r\n\r\n// сужение объекта для propsPopup\r\nconst {\r\n\tsubmitText,\r\n\t...propsPopup\r\n}: Props<T> = props;\r\n</script>\r\n\r\n<template>\r\n\t<!-- @vue-generic {T} -->\r\n\t<TopPopup\r\n\t\tclass=\"top-popupAlert\"\r\n\t\t:=propsPopup\r\n\t\t@open=\"$emit('open', $event)\"\r\n\t\t@close=\"$emit('close', $event)\"\r\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\r\n\t>\r\n\t\t<template #opener>\r\n\t\t\t<!-- @slot Элемент для открытия Popup -->\r\n\t\t\t<slot name=\"opener\"></slot>\r\n\t\t</template>\r\n\r\n\t\t<template #header v-if=\"$slots.header\">\r\n\t\t\t<!-- @slot Шапка -->\r\n\t\t\t<slot name=\"header\"></slot>\r\n\t\t</template>\r\n\r\n\t\t<template #content v-if=\"$slots.default\">\r\n\t\t\t<!-- @slot Контент в свободной форме -->\r\n\t\t\t<slot></slot>\r\n\t\t</template>\r\n\r\n\t\t<template #footer>\r\n\t\t\t<!-- @slot Футер -->\r\n\t\t\t<slot name=\"footer\"></slot>\r\n\r\n\t\t\t<TopButton>\r\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\r\n\t\t\t</TopButton>\r\n\t\t</template>\r\n\t</TopPopup>\r\n</template>\r\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel2 }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel2 }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\r\nimport TopPopup from '@/components/popup/popup/popup.vue';\r\nimport TopHint from '@/components/forms/hint/hint.vue';\r\nimport type { Props } from './types';\r\n\r\nconst props = defineProps<Props<T>>();\r\n\r\nconst {\r\n\thint,\r\n\t...propsPopup\r\n}: Props<T> = props;\r\n</script>\r\n\r\n<template>\r\n\t<!-- @vue-generic {T} -->\r\n\t<TopPopup\r\n\t\tclass=\"top-popupHint\"\r\n\t\t:=propsPopup\r\n\t\t@open=\"$emit('open', $event)\"\r\n\t\t@close=\"$emit('close', $event)\"\r\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\r\n\t>\r\n\t\t<template #opener>\r\n\t\t\t<!-- Элемент для открытия Popup -->\r\n\t\t\t<TopHint\r\n\t\t\t\t:hint=\"hint\"\r\n\t\t\t\tclass=\"top-popupHint_opener\"\r\n\t\t\t\tv-top-tooltip\r\n\t\t\t/>\r\n\t\t</template>\r\n\r\n\t\t<template #content v-if=\"$slots.default\">\r\n\t\t\t<!-- @slot Контент в свободной форме -->\r\n\t\t\t<slot></slot>\r\n\t\t</template>\r\n\t</TopPopup>\r\n</template>\r\n\r\n<style>\r\n.top-popupHint_opener {\r\n\tcursor: pointer;\r\n}\r\n\r\n.top-popupHint_opener.top-active {\r\n\tcolor: var(--color-text-2);\r\n}\r\n</style>\r\n"],"names":["submitText","propsPopup","props","vue","popupHint_vue_vue_type_style_index_0_lang","_ctx","forms","isSubmit","onClose","popupEvent","emit","cancelText","isWarning","_cache","$event","reset","localValue","defaultValue","hint"],"mappings":"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"}
|
package/popup/popup.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { _ as b } from "../.chunks/popupHint.vue_vue_type_style_index_0_lang-
|
|
2
|
-
import { b as G, a as J } from "../.chunks/popupHint.vue_vue_type_style_index_0_lang-
|
|
3
|
-
import { _ as O } from "../.chunks/widgetInput.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as b } from "../.chunks/popupHint.vue_vue_type_style_index_0_lang-fnjq0yg1.es.js";
|
|
2
|
+
import { b as G, a as J } from "../.chunks/popupHint.vue_vue_type_style_index_0_lang-fnjq0yg1.es.js";
|
|
3
|
+
import { _ as O } from "../.chunks/widgetInput.vue_vue_type_script_setup_true_lang-UUovJzhL.es.js";
|
|
4
4
|
import { defineComponent as T, createBlock as L, openBlock as P, mergeProps as k, createSlots as S, withCtx as t, renderSlot as l, createVNode as y, createTextVNode as B, toDisplayString as v, unref as C, ref as I, watch as g, resolveDirective as F, withDirectives as w } from "vue";
|
|
5
|
-
import { e as c, f as A } from "../.chunks/forms-
|
|
5
|
+
import { e as c, f as A } from "../.chunks/forms-xkXHvvah.es.js";
|
|
6
6
|
const U = /* @__PURE__ */ T({
|
|
7
7
|
__name: "popupAlert",
|
|
8
8
|
props: {
|
|
@@ -106,7 +106,7 @@ const U = /* @__PURE__ */ T({
|
|
|
106
106
|
l(p.$slots, "footer"),
|
|
107
107
|
y(c, { color: "theme" }, {
|
|
108
108
|
default: t(() => [
|
|
109
|
-
B(v(C(V) || p.$i18n.Common.
|
|
109
|
+
B(v(C(V) || p.$i18n.Common.Cancel2), 1)
|
|
110
110
|
]),
|
|
111
111
|
_: 1
|
|
112
112
|
}),
|
|
@@ -186,7 +186,7 @@ const U = /* @__PURE__ */ T({
|
|
|
186
186
|
l(n.$slots, "footer"),
|
|
187
187
|
y(c, { color: "theme" }, {
|
|
188
188
|
default: t(() => [
|
|
189
|
-
B(v(C(D) || n.$i18n.Common.
|
|
189
|
+
B(v(C(D) || n.$i18n.Common.Cancel2), 1)
|
|
190
190
|
]),
|
|
191
191
|
_: 1
|
|
192
192
|
}),
|
package/popup/popup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popup.js","sources":["../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopHint from '@/components/forms/hint/hint.vue';\nimport type { Props } from './types';\n\nconst props = defineProps<Props<T>>();\n\nconst {\n\thint,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupHint\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- Элемент для открытия Popup -->\n\t\t\t<TopHint\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-popupHint_opener\"\n\t\t\t\tv-top-tooltip\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-popupHint_opener {\n\tcursor: pointer;\n}\n\n.top-popupHint_opener.top-active {\n\tcolor: var(--color-text-2);\n}\n</style>\n"],"names":["props","__props","submitText","propsPopup","_openBlock","_createBlock","TopPopup","_mergeProps","_cache","$event","$emit","args","_renderSlot","_ctx","_createVNode","TopButton","_createTextVNode","_toDisplayString","_unref","$i18n","$slots","emit","__emit","isSubmit","ref","onSubmit","onClose","popupEvent","cancelText","isWarning","reset","localValue","watch","defaultValue","TopPopupWidgetInput","hint","TopHint"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAKA,UAAMA,IAAQC,GAKR;AAAA,MACL,YAAAC;AAAA,MACA,GAAGC;AAAA,IAAA,IACUH;sBAKbI,EAAA,GAAAC,EA8BWC,GA9BXC,EA8BW,EA7BV,OAAM,iBAAA,GACJJ,GAAU;AAAA,MACX,QAAIK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEC,EAAAA,MAAK,QAASD,CAAM;AAAA,MAC1B,SAAKD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEC,EAAAA,MAAK,SAAUD,CAAM;AAAA,MAC5B,qBAAiBD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,IAAMG,MAASD,EAAAA,8BAA8BC,CAAI;AAAA,IAAA;MAExD,UAEV,MAA2B;AAAA,QAA3BC,EAA2BC,EAAA,QAAA,QAAA;AAAA,MAAA;MAajB,UAEV,MAA2B;AAAA,QAA3BD,EAA2BC,EAAA,QAAA,QAAA;AAAA,QAE3BC,EAEYC,GAAA,MAAA;AAAA,qBADX,MAAsC;AAAA,YAAnCC,EAAAC,EAAAC,EAAAhB,CAAA,KAAciB,EAAAA,MAAM,OAAO,KAAK,GAAA,CAAA;AAAA,UAAA;;;;;;MAfbC,EAAAA,OAAO;cAApB;AAAA,cAEV,MAA2B;AAAA,UAA3BR,EAA2BC,EAAA,QAAA,QAAA;AAAA,QAAA;;;MAGHO,EAAAA,OAAO;cAArB;AAAA,cAEV,MAAa;AAAA,UAAbR,EAAaC,EAAA,QAAA,SAAA;AAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;AC9BhB,UAAMb,IAAQC,GAERoB,IAAOC,GAEPC,IAAWC,EAAI,EAAK,GAEpBC,IAAW,MAAM;AACtB,MAAAF,EAAS,QAAQ,IAEjBF,EAAK,QAAQ;AAAA,IACd,GAEMK,IAAU,CAACC,MAA8B;AAC9C,UAAIJ,EAAS,OAAO;AACnB,QAAAA,EAAS,QAAQ;AAEjB;AAAA,MACD;AAEA,MAAAF,EAAK,SAASM,CAAU;AAAA,IACzB,GAGM;AAAA,MACL,YAAAzB;AAAA,MACA,YAAA0B;AAAA,MACA,WAAAC;AAAA,MACA,GAAG1B;AAAA,IAAA,IACUH;sBAKbI,EAAA,GAAAC,EAqCWC,GArCXC,EAqCW,EApCV,OAAM,mBAAA,GACJJ,GAAU;AAAA,MACX,QAAIK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEC,EAAAA,MAAK,QAASD,CAAM;AAAA,MAC1B,SAAKD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEiB,EAAQjB,CAAM;AAAA,MACrB,qBAAiBD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,IAAMG,MAASD,EAAAA,8BAA8BC,CAAI;AAAA,IAAA;MAExD,UAEV,MAA2B;AAAA,QAA3BC,EAA2BC,EAAA,QAAA,QAAA;AAAA,MAAA;MAajB,UAEV,MAA2B;AAAA,QAA3BD,EAA2BC,EAAA,QAAA,QAAA;AAAA,QAE3BC,EAEYC,GAAA,EAFD,OAAM,WAAO;AAAA,qBACvB,MAAuC;AAAA,YAApCC,EAAAC,EAAAC,EAAAU,CAAA,KAAcT,EAAAA,MAAM,OAAO,MAAM,GAAA,CAAA;AAAA,UAAA;;;QAGrCL,EAKYC,GAAA;AAAA,UAJV,SAAOU;AAAA,UACP,OAAOP,EAAAW,CAAA,IAAS,QAAA;AAAA,QAAA;qBAEjB,MAAyC;AAAA,YAAtCb,EAAAC,EAAAC,EAAAhB,CAAA,KAAciB,EAAAA,MAAM,OAAO,QAAQ,GAAA,CAAA;AAAA,UAAA;;;;;;MAtBhBC,EAAAA,OAAO;cAApB;AAAA,cAEV,MAA2B;AAAA,UAA3BR,EAA2BC,EAAA,QAAA,QAAA;AAAA,QAAA;;;MAGHO,EAAAA,OAAO;cAArB;AAAA,cAEV,MAAa;AAAA,UAAbR,EAAaC,EAAA,QAAA,SAAA;AAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACnDhB,UAAMb,IAAQC,GAERoB,IAAOC,GAEPQ,IAAQ,MAAMC,EAAW,QAAQ/B,EAAM,gBAAgB,IAEvDuB,IAAWC,EAAI,EAAK,GAEpBO,IAAaP,EAAA;AACnB,IAAAQ,EAAM,MAAMhC,EAAM,cAAc,MAAM8B,KAAS,EAAE,WAAW,IAAM;AAElE,UAAML,IAAW,MAAM;AACtB,MAAAF,EAAS,QAAQ;AAAA,IAClB,GAEMG,IAAU,CAACC,MAA8B;AAC9C,UAAIJ,EAAS,OAAO;AACnB,QAAAA,EAAS,QAAQ,IAEjBF,EAAK,UAAUU,EAAW,KAAK,GAE/BD,EAAA;AAEA;AAAA,MACD;AAEA,MAAAA,EAAA,GAEAT,EAAK,SAASM,CAAU;AAAA,IACzB,GAGM;AAAA,MACL,YAAAzB;AAAA,MACA,YAAA0B;AAAA,MACA,cAAAK;AAAA,MACA,GAAG9B;AAAA,IAAA,IACUH;sBAKbI,EAAA,GAAAC,EAoCWC,GApCXC,EAoCW,EAnCV,OAAM,kBAAA,GACJJ,GAAU;AAAA,MACX,QAAIK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEC,EAAAA,MAAK,QAASD,CAAM;AAAA,MAC1B,SAAKD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEiB,EAAQjB,CAAM;AAAA,MACrB,qBAAiBD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,IAAMG,MAASD,EAAAA,8BAA8BC,CAAI;AAAA,IAAA;MAExD,UAEV,MAA2B;AAAA,QAA3BC,EAA2BC,EAAA,QAAA,QAAA;AAAA,MAAA;MAejB,UAEV,MAA2B;AAAA,QAA3BD,EAA2BC,EAAA,QAAA,QAAA;AAAA,QAE3BC,EAEYC,GAAA,EAFD,OAAM,WAAO;AAAA,qBACvB,MAAuC;AAAA,YAApCC,EAAAC,EAAAC,EAAAU,CAAA,KAAcT,EAAAA,MAAM,OAAO,MAAM,GAAA,CAAA;AAAA,UAAA;;;QAGrCL,EAEYC,GAAA,EAFA,SAAOU,KAAQ;AAAA,qBAC1B,MAAmC;AAAA,YAAhCT,EAAAC,EAAAC,EAAAhB,CAAA,KAAciB,EAAAA,MAAM,OAAO,EAAE,GAAA,CAAA;AAAA,UAAA;;;;;;MArBVC,EAAAA,OAAO;cAApB;AAAA,cAEV,MAA2B;AAAA,UAA3BR,EAA2BC,EAAA,QAAA,QAAA;AAAA,QAAA;;;MAGHO,EAAAA,OAAO;cAArB;AAAA,cAEV,MAAa;AAAA,UAAbR,EAAaC,EAAA,QAAA,SAAA;AAAA,UAEbC,EAAgDoB,GAAA;AAAA,wBAAbH,EAAA;AAAA,0DAAAA,EAAU,QAAAtB;AAAA,4BAAxB,EAAA,MAAA,GAAA;AAAA,UAAA;;;;;;;;;;;;;;;;;;;;;;;AClExB,UAAMT,IAAQC,GAER;AAAA,MACL,MAAAkC;AAAA,MACA,GAAGhC;AAAA,IAAA,IACUH;;;AAKb,aAAAI,EAAA,GAAAC,EAoBWC,GApBXC,EAoBW,EAnBV,OAAM,gBAAA,GACJJ,GAAU;AAAA,QACX,QAAIK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEC,EAAAA,MAAK,QAASD,CAAM;AAAA,QAC1B,SAAKD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEC,EAAAA,MAAK,SAAUD,CAAM;AAAA,QAC5B,qBAAiBD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,IAAMG,MAASD,EAAAA,8BAA8BC,CAAI;AAAA,MAAA;QAExD,UAEV,MAIE;AAAA,YAJFG,EAIEsB,GAAA;AAAA,YAHA,MAAMlB,EAAAiB,CAAA;AAAA,YACP,OAAM;AAAA,UAAA;;;;;;QAKiBf,EAAAA,OAAO;gBAArB;AAAA,gBAEV,MAAa;AAAA,YAAbR,EAAaC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"popup.js","sources":["../../src/components/popup/popupAlert/popupAlert.vue","../../src/components/popup/popupConfirm/popupConfirm.vue","../../src/components/popup/popupPrompt/popupPrompt.vue","../../src/components/popup/popupHint/popupHint.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\r\nimport type { Emits, Props } from './types';\r\nimport TopButton from '@/components/forms/button/button.vue';\r\nimport TopPopup from '@/components/popup/popup/popup.vue';\r\n\r\nconst props = defineProps<Props<T>>();\r\n\r\ndefineEmits<Emits<T>>();\r\n\r\n// сужение объекта для propsPopup\r\nconst {\r\n\tsubmitText,\r\n\t...propsPopup\r\n}: Props<T> = props;\r\n</script>\r\n\r\n<template>\r\n\t<!-- @vue-generic {T} -->\r\n\t<TopPopup\r\n\t\tclass=\"top-popupAlert\"\r\n\t\t:=propsPopup\r\n\t\t@open=\"$emit('open', $event)\"\r\n\t\t@close=\"$emit('close', $event)\"\r\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\r\n\t>\r\n\t\t<template #opener>\r\n\t\t\t<!-- @slot Элемент для открытия Popup -->\r\n\t\t\t<slot name=\"opener\"></slot>\r\n\t\t</template>\r\n\r\n\t\t<template #header v-if=\"$slots.header\">\r\n\t\t\t<!-- @slot Шапка -->\r\n\t\t\t<slot name=\"header\"></slot>\r\n\t\t</template>\r\n\r\n\t\t<template #content v-if=\"$slots.default\">\r\n\t\t\t<!-- @slot Контент в свободной форме -->\r\n\t\t\t<slot></slot>\r\n\t\t</template>\r\n\r\n\t\t<template #footer>\r\n\t\t\t<!-- @slot Футер -->\r\n\t\t\t<slot name=\"footer\"></slot>\r\n\r\n\t\t\t<TopButton>\r\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\r\n\t\t\t</TopButton>\r\n\t\t</template>\r\n\t</TopPopup>\r\n</template>\r\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel2 }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '../popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '../popup/popup.vue';\nimport TopPopupWidgetInput from '../popup/widgetInput/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel2 }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\r\nimport TopPopup from '@/components/popup/popup/popup.vue';\r\nimport TopHint from '@/components/forms/hint/hint.vue';\r\nimport type { Props } from './types';\r\n\r\nconst props = defineProps<Props<T>>();\r\n\r\nconst {\r\n\thint,\r\n\t...propsPopup\r\n}: Props<T> = props;\r\n</script>\r\n\r\n<template>\r\n\t<!-- @vue-generic {T} -->\r\n\t<TopPopup\r\n\t\tclass=\"top-popupHint\"\r\n\t\t:=propsPopup\r\n\t\t@open=\"$emit('open', $event)\"\r\n\t\t@close=\"$emit('close', $event)\"\r\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\r\n\t>\r\n\t\t<template #opener>\r\n\t\t\t<!-- Элемент для открытия Popup -->\r\n\t\t\t<TopHint\r\n\t\t\t\t:hint=\"hint\"\r\n\t\t\t\tclass=\"top-popupHint_opener\"\r\n\t\t\t\tv-top-tooltip\r\n\t\t\t/>\r\n\t\t</template>\r\n\r\n\t\t<template #content v-if=\"$slots.default\">\r\n\t\t\t<!-- @slot Контент в свободной форме -->\r\n\t\t\t<slot></slot>\r\n\t\t</template>\r\n\t</TopPopup>\r\n</template>\r\n\r\n<style>\r\n.top-popupHint_opener {\r\n\tcursor: pointer;\r\n}\r\n\r\n.top-popupHint_opener.top-active {\r\n\tcolor: var(--color-text-2);\r\n}\r\n</style>\r\n"],"names":["props","__props","submitText","propsPopup","_openBlock","_createBlock","TopPopup","_mergeProps","_cache","$event","$emit","args","_renderSlot","_ctx","_createVNode","TopButton","_createTextVNode","_toDisplayString","_unref","$i18n","$slots","emit","__emit","isSubmit","ref","onSubmit","onClose","popupEvent","cancelText","isWarning","reset","localValue","watch","defaultValue","TopPopupWidgetInput","hint","TopHint"],"mappings":"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"}
|
package/popup/worker.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-4D_EVI46.amd","../utils/dom.amd"],(function(require,exports,forms,utils_dom){"use strict";if(typeof vue>"u")var vue=window.Vue;class Worker{static noClose=!1;static vueConnectors=new Map;static options={};static getPopup(t){return utils_dom.default.storage(t,"TopPopup")}static getElPopupOpener(t){return t.closest("[data-top-popup]")}static getPopupFromOpener(t){const o=Worker.getElPopupOpener(t);return o?utils_dom.default.storage(o,"#TopPopup"):null}static getAll(){return utils_dom.default.querySelectorAllArray(document,".top-popup-wrapper")}static getAllVisible(){return utils_dom.default.querySelectorAllVisible(document,".top-popup-wrapper")}static async openByOpener(t){if(!(t instanceof HTMLElement))return;const o={};return o.popup=t.dataset.topPopup,o.id=t.dataset.topPopupId,!o.id&&o.popup&&(t.dataset.topPopupId=btoa(String.fromCharCode(...new TextEncoder().encode(o.popup))),o.id=t.dataset.topPopupId),t.dataset.topPopupP&&(o.p=parseInt(t.dataset.topPopupP)),t.dataset.topPopupPos&&(o.p=parseInt(t.dataset.topPopupPos)),t.dataset.topPopupNotch&&(o.notch=t.dataset.topPopupNotch==="true"||t.dataset.topPopupNotch==="1"),t.dataset.topPopupClass&&(o.class=t.dataset.topPopupClass),t.dataset.topPopupPosBy&&(o.posBy=t.dataset.topPopupPosBy),t.dataset.topPopupFront&&(o.frontSelector=t.dataset.topPopupFront),t.dataset.topPopupInvertX&&(o.invertX=t.dataset.topPopupInvertX==="true"||t.dataset.topPopupInvertX==="1"),t.dataset.topPopupOpenByHovertopPopupOpenByHover&&(o.openByHover=t.dataset.topPopupOpenByHover==="true"||t.dataset.topPopupOpenByHover==="1"),t.dataset.topPopupUseOriginal&&(o.useOriginal=t.dataset.topPopupUseOriginal==="true"||t.dataset.topPopupUseOriginal==="1"),await Worker.open(t,o)}static async open(elOpener,options){elOpener instanceof HTMLElement&&(elOpener.dataset.topPopupOpened="opened");const{TopLibPopup}=await new Promise((t,o)=>require(["../.chunks/popup-Bwmu8rOb.amd"],t,o));if(forms.Core.$){const $elOpener=forms.Core.$(elOpener);if($elOpener.data("aftershow")){let afterShow=$elOpener.data("aftershow");typeof afterShow=="string"&&(afterShow=eval(afterShow.replace(/\W/g,""))),$elOpener.one("aftershow.top-menu-popup",afterShow)}if($elOpener.data("afterclose")){let afterclose=$elOpener.data("afterclose");typeof afterclose=="string"&&(afterclose=eval(afterclose.replace(/\W/g,""))),$elOpener.one("afterclose.top-menu-popup",afterclose)}}return options.isFullScreen=forms.Core.state.isMobile,new TopLibPopup(elOpener,options)}static close(t,o=!1){const e=Worker.getPopup(t);if(e){e.close();const p=e.el.contains(document.activeElement);o&&!p&&setTimeout(()=>{e.el.focus()})}}static recalcPosition(t){const o=Worker.getPopup(t);o&&o.elPopupBody instanceof HTMLElement&&o.recalcPosition()}static scrollToActive(t){if(!utils_dom.default.querySelectorVisible(t,"ul.top-popup_content > li > .top-active"))return;const e=t.querySelector("ul.top-popup_content"),p=utils_dom.default.querySelectorAllVisible(t,"ul.top-popup_content > li");t.classList.add("top-popup-wrapper-no_animate"),setTimeout(()=>t.classList.remove("top-popup-wrapper-no_animate"),100);let a=100;for(const s of p){if(s.querySelector(":scope > .top-active"))break;s instanceof HTMLElement&&(a+=s.offsetHeight)}if(e instanceof HTMLElement){const s=e.offsetHeight;a>s?e.scrollTop=a-s:e.scrollTop=0}}static decoratorBeforeOpen(t){this.options.decoratorBeforeOpen&&this.options.decoratorBeforeOpen(t)}static decoratorAfterOpen(t){this.options.decoratorAfterOpen&&this.options.decoratorAfterOpen(t)}static decoratorIsIgnoreOuterClick(t){return this.options.decoratorIsIgnoreOuterClick?this.options.decoratorIsIgnoreOuterClick(t):!1}static regVueComponent(t,o){if(Worker.vueConnectors.get(t))throw"Vue component Popup use duplicated id: "+t;Worker.vueConnectors.set(t,o)}static unregVueComponent(t){Worker.vueConnectors.delete(t)}static genElPopupOpener(t,o,...e){const p=utils_dom.default.genEl(t,{},...e);p.dataset.topPopup="#"+o.id;for(let a in o){const s="topPopup"+a.charAt(0).toUpperCase()+a.slice(1);p.dataset[s]=o[a]}return p.__TopPopupOpenerProps=o,p}}exports.TopPopupWorker=Worker,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=worker.amd.js.map
|
package/popup/worker.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.amd.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управляет работой Popup\n *\n * Должен грузить TopLibPopup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/opener/types';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\n\t */\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\n}\n\nclass Worker {\n\n\t/**\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\n\t */\n\tstatic noClose = false;\n\n\t/**\n\t * Для взаимодействия с vue\n\t */\n\tstatic vueConnectors = new Map();\n\n\tstatic options: Options = {};\n\n\t/**\n\t * Вернуть объект компонента popup, привязанный к элементу\n\t */\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\n\t}\n\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\n\t}\n\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\n\t\tconst elOpener = Worker.getElPopupOpener(el);\n\t\tif (!elOpener) return null;\n\n\t\treturn DOM.storage(elOpener, '#TopPopup');\n\t}\n\n\t/**\n\t * Вернуть все элементы с Popup\n\t */\n\tstatic getAll(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Вернуть все элементы с открытыми Popup\n\t */\n\tstatic getAllVisible(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открыть Popup от указанного elOpener\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\n\t\tif (!(elOpener instanceof HTMLElement)) return;\n\n\t\tconst options: PopupOptions = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\toptions.id = elOpener.dataset.topPopupId;\n\n\t\t/**\n\t\t * @deprecated в php шаблонах нет data-top-popup-id\n\t\t */\n\t\tif (!options.id && options.popup) {\n\t\t\telOpener.dataset.topPopupId = btoa(\n\t\t\t\tString.fromCharCode(...new TextEncoder().encode(options.popup))\n\t\t\t);\n\n\t\t\toptions.id = elOpener.dataset.topPopupId;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPos) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupClass) {\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPosBy) {\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupOpenByHovertopPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param elOpener - элемент, вызвавший открытие Popup\n\t * @param options - опции Popup\n\t */\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { TopLibPopup } = await import('./popup');\n\n\t\tif (Core.$) {\n\t\t\tconst $elOpener = Core.$(elOpener);\n\n\t\t\t// deprecated, используется aftershow.top-menu-popup\n\t\t\tif ($elOpener.data('aftershow')) {\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\n\t\t\t\tif (typeof (afterShow) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\n\t\t\t}\n\n\t\t\t// deprecated, используется afterclose.top-menu-popup\n\t\t\tif ($elOpener.data('afterclose')) {\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\n\t\t\t\tif (typeof (afterclose) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\n\t\t\t}\n\t\t}\n\n\t\toptions.isFullScreen = Core.state.isMobile;\n\n\t\treturn new TopLibPopup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement, restoreFocus = false): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\n\t\tif (popup) {\n\t\t\tpopup.close();\n\n\t\t\tconst isFocused = popup.el.contains(document.activeElement);\n\n\t\t\tif (restoreFocus && !isFocused) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tpopup.el.focus();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Скролл к активному элементу списка\n\t */\n\tstatic scrollToActive(elPopup: HTMLElement): void {\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\n\t\tif (!elItemActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\n\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\n\n\t\tlet top = 100;\n\t\tfor (const elLi of elsLi) {\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\n\t\t}\n\n\t\tif (elUl instanceof HTMLElement) {\n\t\t\tconst heightWrapper = elUl.offsetHeight;\n\t\t\tif (top > heightWrapper) {\n\t\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t\t} else {\n\t\t\t\telUl.scrollTop = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorAfterOpen) {\n\t\t\tthis.options.decoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Зарегистрировать Vue компонент\n\t *\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\n\t */\n\tstatic regVueComponent(id: string, vueConnector: any): void {\n\t\tif (Worker.vueConnectors.get(id)) {\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\n\t\t}\n\n\t\tWorker.vueConnectors.set(id, vueConnector);\n\t}\n\n\t/**\n\t * Снять с регистрации Vue компонент\n\t */\n\tstatic unregVueComponent(id: string): void {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n\t/**\n\t * Сгенерировать элемент для открытия popup\n\t */\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\n\n\t\tel.dataset.topPopup = '#' + props.id;\n\n\t\t// if (props.pos === undefined) props.pos = '3';\n\t\t// if (props.notch === undefined) props.notch = true;\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\n\n\t\tfor (let name in props) {\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\n\n\t\t\tel.dataset[attrName] = props[name];\n\t\t}\n\n\t\tel.__TopPopupOpenerProps = props;\n\n\t\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","el","elOpener2","options2","isFocused","popup","restoreFocus","elLi","elsLi","elUl","heightWrapper","top","e","id","vueConnector","tagName","elsChildrens","name","props"],"mappings":"6KA6BA,MAAA,MAAA,mBAKkB,OAAA,cAAA,IAAA,sBAOU,OAAA,SAAAA,EAAA,gDAO3B,OAAA,iBAAAC,EAAA,CAGC,OAAAA,EAAA,QAAA,kBAAA,EACD,OAAA,mBAAAA,EAAA,oCAIC,OAAAC,2CAAA,0MAiBD,aAAA,aAAAA,EAAA,CAOC,GAAA,EAAAA,aAAA,aAAA,+FAYCA,EAAA,QAAA,WAAA,KAA8B,OAAA,aAAA,GAAA,IAAA,YAAA,EAAA,OAAAC,EAAA,KAAA,CAAA,8BAU/BD,EAAA,QAAA,+CAIAA,EAAA,QAAA,mDAOAA,EAAA,QAAA,gBACCC,EAAA,MAAAD,EAAA,QAAA,gBAAA,QAAAA,EAAA,QAAA,gBAAA,KAGDA,EAAA,QAAA,iDAIAA,EAAA,QAAA,iDAIAA,EAAA,QAAA,yDAOAA,EAAA,QAAA,kBACCC,EAAA,QAAAD,EAAA,QAAA,kBAAA,QAAAA,EAAA,QAAA,kBAAA,KAMDA,EAAA,QAAA,yCACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,KAMDA,EAAA,QAAA,sBACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,4BAIF,aAAA,KAAA,SAAA,QAAA,yKAYC,GAAA,MAAA,KAAA,EAAA,wCAIC,GAAA,UAAA,KAAA,WAAA,EAAA,2CAEC,OAAA,WAAA,WAGC,UAAA,KAAA,UAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,2BAAA,SAAA,EAID,GAAA,UAAA,KAAA,YAAA,EAAA,6CAEC,OAAA,YAAA,WAGC,WAAA,KAAA,WAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,4BAAA,UAAA,yDAMF,IAAA,YAAA,SAAA,OAAA,kEASC,MAAAE,EAAAC,EAAA,GAAA,SAAA,SAAA,aAAA,EAEAC,GAAA,CAAAF,mBAEEC,EAAA,GAAA,MAAA,CAAe,CAAA,GAInB,OAAA,eAAAL,EAAA,wFAOA,OAAA,eAAAA,EAAA,2NAcCA,EAAA,UAAA,IAAA,8BAAA,EACA,WAAA,IAAAA,EAAA,UAAA,OAAA,8BAAA,EAAA,GAAA,YAGA,UAAAO,KAAAC,EAAA,CACC,GAAAD,EAAA,cAAA,sBAAA,sDAOD,GAAAE,aAAA,YAAA,CACC,MAAAC,EAAAD,EAAA,aACAE,EAAAD,EACCD,EAAA,UAAAE,EAAAD,EAEAD,EAAA,UAAA,GAGH,OAAA,oBAAAJ,EAAA,CAGC,KAAA,QAAA,qBACC,KAAA,QAAA,oBAAAA,CAAA,EAEF,OAAA,mBAAAA,EAAA,CAGC,KAAA,QAAA,oBACC,KAAA,QAAA,mBAAAA,CAAA,EAEF,OAAA,4BAAAO,EAAA,CAGC,OAAA,KAAA,QAAA,wEAIA,GACD,OAAA,gBAAAC,EAAAC,EAAA,+GAaA,OAAA,kBAAAD,EAAA,CAMC,OAAA,cAAA,OAAAA,CAAA,oCAOA,MAAAZ,EAAA,UAAA,QAAA,MAAAc,EAAA,CAAA,EAAA,GAAAC,CAAA,8BAQA,QAAAC,KAAAC,EAAA,2EAMA,OAAAjB,EAAA,sBAAAiB,EAEAjB,EAGF"}
|
|
1
|
+
{"version":3,"file":"worker.amd.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\r\n * PopupWorker управляет работой Popup\r\n *\r\n * Должен грузить TopLibPopup только в отложенном режиме\r\n */\r\n\r\nimport Core from '@/core/core/core';\r\nimport DOM from '@/core/utils/dom';\r\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\r\nimport type { OpenerProps } from '@/components/popup/popup/opener/types';\r\n\r\nexport type Options = {\r\n\t/**\r\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\r\n\t */\r\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\r\n\r\n\t/**\r\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\r\n\t */\r\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\r\n\r\n\t/**\r\n\t * Определитель того, что клик вне Popup нужно игнорировать\r\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\r\n\t */\r\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\r\n}\r\n\r\nclass Worker {\r\n\r\n\t/**\r\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\r\n\t */\r\n\tstatic noClose = false;\r\n\r\n\t/**\r\n\t * Для взаимодействия с vue\r\n\t */\r\n\tstatic vueConnectors = new Map();\r\n\r\n\tstatic options: Options = {};\r\n\r\n\t/**\r\n\t * Вернуть объект компонента popup, привязанный к элементу\r\n\t */\r\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\r\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\r\n\t}\r\n\r\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\r\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\r\n\t}\r\n\r\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\r\n\t\tconst elOpener = Worker.getElPopupOpener(el);\r\n\t\tif (!elOpener) return null;\r\n\r\n\t\treturn DOM.storage(elOpener, '#TopPopup');\r\n\t}\r\n\r\n\t/**\r\n\t * Вернуть все элементы с Popup\r\n\t */\r\n\tstatic getAll(): HTMLElement[] {\r\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\r\n\t}\r\n\r\n\t/**\r\n\t * Вернуть все элементы с открытыми Popup\r\n\t */\r\n\tstatic getAllVisible(): HTMLElement[] {\r\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\r\n\t}\r\n\r\n\t/**\r\n\t * Открыть Popup от указанного elOpener\r\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\r\n\t */\r\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\r\n\t\tif (!(elOpener instanceof HTMLElement)) return;\r\n\r\n\t\tconst options: PopupOptions = {};\r\n\r\n\t\toptions.popup = elOpener.dataset.topPopup;\r\n\r\n\t\toptions.id = elOpener.dataset.topPopupId;\r\n\r\n\t\t/**\r\n\t\t * @deprecated в php шаблонах нет data-top-popup-id\r\n\t\t */\r\n\t\tif (!options.id && options.popup) {\r\n\t\t\telOpener.dataset.topPopupId = btoa(\r\n\t\t\t\tString.fromCharCode(...new TextEncoder().encode(options.popup))\r\n\t\t\t);\r\n\r\n\t\t\toptions.id = elOpener.dataset.topPopupId;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupP) {\r\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupPos) {\r\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupNotch) {\r\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupClass) {\r\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupPosBy) {\r\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupFront) {\r\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupInvertX) {\r\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupOpenByHovertopPopupOpenByHover) {\r\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\r\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\r\n\t\t}\r\n\r\n\t\treturn await Worker.open(elOpener, options);\r\n\t}\r\n\r\n\t/**\r\n\t * Создать и открыть Popup\r\n\t * @param elOpener - элемент, вызвавший открытие Popup\r\n\t * @param options - опции Popup\r\n\t */\r\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\r\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\r\n\r\n\t\tconst { TopLibPopup } = await import('./popup');\r\n\r\n\t\tif (Core.$) {\r\n\t\t\tconst $elOpener = Core.$(elOpener);\r\n\r\n\t\t\t// deprecated, используется aftershow.top-menu-popup\r\n\t\t\tif ($elOpener.data('aftershow')) {\r\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\r\n\t\t\t\tif (typeof (afterShow) == 'string') {\r\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\r\n\t\t\t\t\t// @deprecated\r\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated, используется afterclose.top-menu-popup\r\n\t\t\tif ($elOpener.data('afterclose')) {\r\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\r\n\t\t\t\tif (typeof (afterclose) == 'string') {\r\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\r\n\t\t\t\t\t// @deprecated\r\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toptions.isFullScreen = Core.state.isMobile;\r\n\r\n\t\treturn new TopLibPopup(elOpener, options);\r\n\t}\r\n\r\n\tstatic close(elPopup: HTMLElement, restoreFocus = false): void {\r\n\t\tconst popup = Worker.getPopup(elPopup);\r\n\r\n\t\tif (popup) {\r\n\t\t\tpopup.close();\r\n\r\n\t\t\tconst isFocused = popup.el.contains(document.activeElement);\r\n\r\n\t\t\tif (restoreFocus && !isFocused) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tpopup.el.focus();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic recalcPosition(elPopup: HTMLElement): void {\r\n\t\tconst popup = Worker.getPopup(elPopup);\r\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\r\n\t\t\tpopup.recalcPosition();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Скролл к активному элементу списка\r\n\t */\r\n\tstatic scrollToActive(elPopup: HTMLElement): void {\r\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\r\n\t\tif (!elItemActive) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\r\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\r\n\r\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\r\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\r\n\r\n\t\tlet top = 100;\r\n\t\tfor (const elLi of elsLi) {\r\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\r\n\t\t}\r\n\r\n\t\tif (elUl instanceof HTMLElement) {\r\n\t\t\tconst heightWrapper = elUl.offsetHeight;\r\n\t\t\tif (top > heightWrapper) {\r\n\t\t\t\telUl.scrollTop = top - heightWrapper;\r\n\t\t\t} else {\r\n\t\t\t\telUl.scrollTop = 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\r\n\t\tif (this.options.decoratorBeforeOpen) {\r\n\t\t\tthis.options.decoratorBeforeOpen(popup);\r\n\t\t}\r\n\t};\r\n\r\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\r\n\t\tif (this.options.decoratorAfterOpen) {\r\n\t\t\tthis.options.decoratorAfterOpen(popup);\r\n\t\t}\r\n\t};\r\n\r\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\r\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\r\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Зарегистрировать Vue компонент\r\n\t *\r\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\r\n\t */\r\n\tstatic regVueComponent(id: string, vueConnector: any): void {\r\n\t\tif (Worker.vueConnectors.get(id)) {\r\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\r\n\t\t}\r\n\r\n\t\tWorker.vueConnectors.set(id, vueConnector);\r\n\t}\r\n\r\n\t/**\r\n\t * Снять с регистрации Vue компонент\r\n\t */\r\n\tstatic unregVueComponent(id: string): void {\r\n\t\tWorker.vueConnectors.delete(id);\r\n\t}\r\n\r\n\t/**\r\n\t * Сгенерировать элемент для открытия popup\r\n\t */\r\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\r\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\r\n\r\n\t\tel.dataset.topPopup = '#' + props.id;\r\n\r\n\t\t// if (props.pos === undefined) props.pos = '3';\r\n\t\t// if (props.notch === undefined) props.notch = true;\r\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\r\n\r\n\t\tfor (let name in props) {\r\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\r\n\r\n\t\t\tel.dataset[attrName] = props[name];\r\n\t\t}\r\n\r\n\t\tel.__TopPopupOpenerProps = props;\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n}\r\n\r\nexport default Worker;\r\n"],"names":["elPopup","el","elOpener2","options2","isFocused","popup","restoreFocus","elLi","elsLi","elUl","heightWrapper","top","e","id","vueConnector","tagName","elsChildrens","name","props"],"mappings":"6KA6BA,MAAA,MAAA,mBAKkB,OAAA,cAAA,IAAA,sBAOU,OAAA,SAAAA,EAAA,gDAO3B,OAAA,iBAAAC,EAAA,CAGC,OAAAA,EAAA,QAAA,kBAAA,EACD,OAAA,mBAAAA,EAAA,oCAIC,OAAAC,2CAAA,0MAiBD,aAAA,aAAAA,EAAA,CAOC,GAAA,EAAAA,aAAA,aAAA,+FAYCA,EAAA,QAAA,WAAA,KAA8B,OAAA,aAAA,GAAA,IAAA,YAAA,EAAA,OAAAC,EAAA,KAAA,CAAA,8BAU/BD,EAAA,QAAA,+CAIAA,EAAA,QAAA,mDAOAA,EAAA,QAAA,gBACCC,EAAA,MAAAD,EAAA,QAAA,gBAAA,QAAAA,EAAA,QAAA,gBAAA,KAGDA,EAAA,QAAA,iDAIAA,EAAA,QAAA,iDAIAA,EAAA,QAAA,yDAOAA,EAAA,QAAA,kBACCC,EAAA,QAAAD,EAAA,QAAA,kBAAA,QAAAA,EAAA,QAAA,kBAAA,KAMDA,EAAA,QAAA,yCACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,KAMDA,EAAA,QAAA,sBACCC,EAAA,YAAAD,EAAA,QAAA,sBAAA,QAAAA,EAAA,QAAA,sBAAA,4BAIF,aAAA,KAAA,SAAA,QAAA,yKAYC,GAAA,MAAA,KAAA,EAAA,wCAIC,GAAA,UAAA,KAAA,WAAA,EAAA,2CAEC,OAAA,WAAA,WAGC,UAAA,KAAA,UAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,2BAAA,SAAA,EAID,GAAA,UAAA,KAAA,YAAA,EAAA,6CAEC,OAAA,YAAA,WAGC,WAAA,KAAA,WAAA,QAAA,MAAA,EAAA,CAAA,GAGD,UAAA,IAAA,4BAAA,UAAA,yDAMF,IAAA,YAAA,SAAA,OAAA,kEASC,MAAAE,EAAAC,EAAA,GAAA,SAAA,SAAA,aAAA,EAEAC,GAAA,CAAAF,mBAEEC,EAAA,GAAA,MAAA,CAAe,CAAA,GAInB,OAAA,eAAAL,EAAA,wFAOA,OAAA,eAAAA,EAAA,2NAcCA,EAAA,UAAA,IAAA,8BAAA,EACA,WAAA,IAAAA,EAAA,UAAA,OAAA,8BAAA,EAAA,GAAA,YAGA,UAAAO,KAAAC,EAAA,CACC,GAAAD,EAAA,cAAA,sBAAA,sDAOD,GAAAE,aAAA,YAAA,CACC,MAAAC,EAAAD,EAAA,aACAE,EAAAD,EACCD,EAAA,UAAAE,EAAAD,EAEAD,EAAA,UAAA,GAGH,OAAA,oBAAAJ,EAAA,CAGC,KAAA,QAAA,qBACC,KAAA,QAAA,oBAAAA,CAAA,EAEF,OAAA,mBAAAA,EAAA,CAGC,KAAA,QAAA,oBACC,KAAA,QAAA,mBAAAA,CAAA,EAEF,OAAA,4BAAAO,EAAA,CAGC,OAAA,KAAA,QAAA,wEAIA,GACD,OAAA,gBAAAC,EAAAC,EAAA,+GAaA,OAAA,kBAAAD,EAAA,CAMC,OAAA,cAAA,OAAAA,CAAA,oCAOA,MAAAZ,EAAA,UAAA,QAAA,MAAAc,EAAA,CAAA,EAAA,GAAAC,CAAA,8BAQA,QAAAC,KAAAC,EAAA,2EAMA,OAAAjB,EAAA,sBAAAiB,EAEAjB,EAGF"}
|
package/popup/worker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as Core } from "../.chunks/forms-
|
|
1
|
+
import { C as Core } from "../.chunks/forms-xkXHvvah.es.js";
|
|
2
2
|
import DOM from "../utils/dom.js";
|
|
3
3
|
class Worker {
|
|
4
4
|
/**
|
|
@@ -53,7 +53,7 @@ class Worker {
|
|
|
53
53
|
*/
|
|
54
54
|
static async open(elOpener, options) {
|
|
55
55
|
elOpener instanceof HTMLElement && (elOpener.dataset.topPopupOpened = "opened");
|
|
56
|
-
const { TopLibPopup } = await import("../.chunks/popup-
|
|
56
|
+
const { TopLibPopup } = await import("../.chunks/popup-BeLPdHWv.es.js");
|
|
57
57
|
if (Core.$) {
|
|
58
58
|
const $elOpener = Core.$(elOpener);
|
|
59
59
|
if ($elOpener.data("aftershow")) {
|
package/popup/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\n * PopupWorker управляет работой Popup\n *\n * Должен грузить TopLibPopup только в отложенном режиме\n */\n\nimport Core from '@/core/core/core';\nimport DOM from '@/core/utils/dom';\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\nimport type { OpenerProps } from '@/components/popup/popup/opener/types';\n\nexport type Options = {\n\t/**\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\n\t */\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\n\n\t/**\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\n\t */\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\n\n\t/**\n\t * Определитель того, что клик вне Popup нужно игнорировать\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\n\t */\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\n}\n\nclass Worker {\n\n\t/**\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\n\t */\n\tstatic noClose = false;\n\n\t/**\n\t * Для взаимодействия с vue\n\t */\n\tstatic vueConnectors = new Map();\n\n\tstatic options: Options = {};\n\n\t/**\n\t * Вернуть объект компонента popup, привязанный к элементу\n\t */\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\n\t}\n\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\n\t}\n\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\n\t\tconst elOpener = Worker.getElPopupOpener(el);\n\t\tif (!elOpener) return null;\n\n\t\treturn DOM.storage(elOpener, '#TopPopup');\n\t}\n\n\t/**\n\t * Вернуть все элементы с Popup\n\t */\n\tstatic getAll(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Вернуть все элементы с открытыми Popup\n\t */\n\tstatic getAllVisible(): HTMLElement[] {\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\n\t}\n\n\t/**\n\t * Открыть Popup от указанного elOpener\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\n\t */\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\n\t\tif (!(elOpener instanceof HTMLElement)) return;\n\n\t\tconst options: PopupOptions = {};\n\n\t\toptions.popup = elOpener.dataset.topPopup;\n\n\t\toptions.id = elOpener.dataset.topPopupId;\n\n\t\t/**\n\t\t * @deprecated в php шаблонах нет data-top-popup-id\n\t\t */\n\t\tif (!options.id && options.popup) {\n\t\t\telOpener.dataset.topPopupId = btoa(\n\t\t\t\tString.fromCharCode(...new TextEncoder().encode(options.popup))\n\t\t\t);\n\n\t\t\toptions.id = elOpener.dataset.topPopupId;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupP) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPos) {\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupNotch) {\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupClass) {\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupPosBy) {\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\n\t\t}\n\n\t\tif (elOpener.dataset.topPopupFront) {\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupInvertX) {\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupOpenByHovertopPopupOpenByHover) {\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\n\t\t}\n\n\t\t/**\n\t\t * @deprecated '1' - добавлено для обратной совместимости\n\t\t */\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\n\t\t}\n\n\t\treturn await Worker.open(elOpener, options);\n\t}\n\n\t/**\n\t * Создать и открыть Popup\n\t * @param elOpener - элемент, вызвавший открытие Popup\n\t * @param options - опции Popup\n\t */\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\n\n\t\tconst { TopLibPopup } = await import('./popup');\n\n\t\tif (Core.$) {\n\t\t\tconst $elOpener = Core.$(elOpener);\n\n\t\t\t// deprecated, используется aftershow.top-menu-popup\n\t\t\tif ($elOpener.data('aftershow')) {\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\n\t\t\t\tif (typeof (afterShow) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\n\t\t\t}\n\n\t\t\t// deprecated, используется afterclose.top-menu-popup\n\t\t\tif ($elOpener.data('afterclose')) {\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\n\t\t\t\tif (typeof (afterclose) == 'string') {\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\n\t\t\t\t\t// @deprecated\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\n\t\t\t\t}\n\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\n\t\t\t}\n\t\t}\n\n\t\toptions.isFullScreen = Core.state.isMobile;\n\n\t\treturn new TopLibPopup(elOpener, options);\n\t}\n\n\tstatic close(elPopup: HTMLElement, restoreFocus = false): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\n\t\tif (popup) {\n\t\t\tpopup.close();\n\n\t\t\tconst isFocused = popup.el.contains(document.activeElement);\n\n\t\t\tif (restoreFocus && !isFocused) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tpopup.el.focus();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic recalcPosition(elPopup: HTMLElement): void {\n\t\tconst popup = Worker.getPopup(elPopup);\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\n\t\t\tpopup.recalcPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Скролл к активному элементу списка\n\t */\n\tstatic scrollToActive(elPopup: HTMLElement): void {\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\n\t\tif (!elItemActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\n\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\n\n\t\tlet top = 100;\n\t\tfor (const elLi of elsLi) {\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\n\t\t}\n\n\t\tif (elUl instanceof HTMLElement) {\n\t\t\tconst heightWrapper = elUl.offsetHeight;\n\t\t\tif (top > heightWrapper) {\n\t\t\t\telUl.scrollTop = top - heightWrapper;\n\t\t\t} else {\n\t\t\t\telUl.scrollTop = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorBeforeOpen) {\n\t\t\tthis.options.decoratorBeforeOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\n\t\tif (this.options.decoratorAfterOpen) {\n\t\t\tthis.options.decoratorAfterOpen(popup);\n\t\t}\n\t};\n\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Зарегистрировать Vue компонент\n\t *\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\n\t */\n\tstatic regVueComponent(id: string, vueConnector: any): void {\n\t\tif (Worker.vueConnectors.get(id)) {\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\n\t\t}\n\n\t\tWorker.vueConnectors.set(id, vueConnector);\n\t}\n\n\t/**\n\t * Снять с регистрации Vue компонент\n\t */\n\tstatic unregVueComponent(id: string): void {\n\t\tWorker.vueConnectors.delete(id);\n\t}\n\n\t/**\n\t * Сгенерировать элемент для открытия popup\n\t */\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\n\n\t\tel.dataset.topPopup = '#' + props.id;\n\n\t\t// if (props.pos === undefined) props.pos = '3';\n\t\t// if (props.notch === undefined) props.notch = true;\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\n\n\t\tfor (let name in props) {\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\n\n\t\t\tel.dataset[attrName] = props[name];\n\t\t}\n\n\t\tel.__TopPopupOpenerProps = props;\n\n\t\treturn el;\n\t}\n\n}\n\nexport default Worker;\n"],"names":["elPopup","el","elOpener","options","restoreFocus","popup","isFocused","elUl","elsLi","top","elLi","heightWrapper","e","id","vueConnector","tagName","props","elsChildrens","name","attrName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker.js","sources":["../../src/components/popup/lib/worker.ts"],"sourcesContent":["/**\r\n * PopupWorker управляет работой Popup\r\n *\r\n * Должен грузить TopLibPopup только в отложенном режиме\r\n */\r\n\r\nimport Core from '@/core/core/core';\r\nimport DOM from '@/core/utils/dom';\r\nimport type { PopupOptions, TopLibPopup } from '@/components/popup/lib/popup';\r\nimport type { OpenerProps } from '@/components/popup/popup/opener/types';\r\n\r\nexport type Options = {\r\n\t/**\r\n\t * Глобальное событие, которое будет вызвано перед открытием TopPopup\r\n\t */\r\n\tdecoratorBeforeOpen?: (popup: TopLibPopup) => void,\r\n\r\n\t/**\r\n\t * Глобальное событие, которое будет вызвано после открытия TopPopup\r\n\t */\r\n\tdecoratorAfterOpen?: (popup: TopLibPopup) => void;\r\n\r\n\t/**\r\n\t * Определитель того, что клик вне Popup нужно игнорировать\r\n\t * @returns {boolean} - если true, то click не приведет к закрытию Popup\r\n\t */\r\n\tdecoratorIsIgnoreOuterClick?: (e: MouseEvent) => boolean\r\n}\r\n\r\nclass Worker {\r\n\r\n\t/**\r\n\t * Глобальное выключение закрытия меню, используется при различных оверлеях\r\n\t */\r\n\tstatic noClose = false;\r\n\r\n\t/**\r\n\t * Для взаимодействия с vue\r\n\t */\r\n\tstatic vueConnectors = new Map();\r\n\r\n\tstatic options: Options = {};\r\n\r\n\t/**\r\n\t * Вернуть объект компонента popup, привязанный к элементу\r\n\t */\r\n\tstatic getPopup(elPopup: HTMLElement): TopLibPopup {\r\n\t\treturn DOM.storage(elPopup, 'TopPopup') as TopLibPopup;\r\n\t}\r\n\r\n\tstatic getElPopupOpener(el: Element): HTMLElement | null {\r\n\t\treturn el.closest<HTMLElement>('[data-top-popup]');\r\n\t}\r\n\r\n\tstatic getPopupFromOpener(el: HTMLElement): TopLibPopup | null {\r\n\t\tconst elOpener = Worker.getElPopupOpener(el);\r\n\t\tif (!elOpener) return null;\r\n\r\n\t\treturn DOM.storage(elOpener, '#TopPopup');\r\n\t}\r\n\r\n\t/**\r\n\t * Вернуть все элементы с Popup\r\n\t */\r\n\tstatic getAll(): HTMLElement[] {\r\n\t\treturn DOM.querySelectorAllArray(document, '.top-popup-wrapper');\r\n\t}\r\n\r\n\t/**\r\n\t * Вернуть все элементы с открытыми Popup\r\n\t */\r\n\tstatic getAllVisible(): HTMLElement[] {\r\n\t\treturn DOM.querySelectorAllVisible(document, '.top-popup-wrapper');\r\n\t}\r\n\r\n\t/**\r\n\t * Открыть Popup от указанного elOpener\r\n\t * @param {HTMLElement} elOpener - элемент, который должен вызвать открытие Popup\r\n\t */\r\n\tstatic async openByOpener(elOpener: HTMLElement): Promise<TopLibPopup | undefined> {\r\n\t\tif (!(elOpener instanceof HTMLElement)) return;\r\n\r\n\t\tconst options: PopupOptions = {};\r\n\r\n\t\toptions.popup = elOpener.dataset.topPopup;\r\n\r\n\t\toptions.id = elOpener.dataset.topPopupId;\r\n\r\n\t\t/**\r\n\t\t * @deprecated в php шаблонах нет data-top-popup-id\r\n\t\t */\r\n\t\tif (!options.id && options.popup) {\r\n\t\t\telOpener.dataset.topPopupId = btoa(\r\n\t\t\t\tString.fromCharCode(...new TextEncoder().encode(options.popup))\r\n\t\t\t);\r\n\r\n\t\t\toptions.id = elOpener.dataset.topPopupId;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated topPopupP - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupP) {\r\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupP);\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupPos) {\r\n\t\t\toptions.p = parseInt(elOpener.dataset.topPopupPos);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupNotch) {\r\n\t\t\toptions.notch = elOpener.dataset.topPopupNotch === 'true' || elOpener.dataset.topPopupNotch === '1';\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupClass) {\r\n\t\t\toptions.class = elOpener.dataset.topPopupClass;\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupPosBy) {\r\n\t\t\toptions.posBy = elOpener.dataset.topPopupPosBy as PopupOptions['posBy'];\r\n\t\t}\r\n\r\n\t\tif (elOpener.dataset.topPopupFront) {\r\n\t\t\toptions.frontSelector = elOpener.dataset.topPopupFront;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupInvertX) {\r\n\t\t\toptions.invertX = elOpener.dataset.topPopupInvertX === 'true' || elOpener.dataset.topPopupInvertX === '1';\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupOpenByHovertopPopupOpenByHover) {\r\n\t\t\toptions.openByHover = elOpener.dataset.topPopupOpenByHover === 'true' || elOpener.dataset.topPopupOpenByHover === '1';\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @deprecated '1' - добавлено для обратной совместимости\r\n\t\t */\r\n\t\tif (elOpener.dataset.topPopupUseOriginal) {\r\n\t\t\toptions.useOriginal = elOpener.dataset.topPopupUseOriginal === 'true' || elOpener.dataset.topPopupUseOriginal === '1';\r\n\t\t}\r\n\r\n\t\treturn await Worker.open(elOpener, options);\r\n\t}\r\n\r\n\t/**\r\n\t * Создать и открыть Popup\r\n\t * @param elOpener - элемент, вызвавший открытие Popup\r\n\t * @param options - опции Popup\r\n\t */\r\n\tprivate static async open(elOpener: HTMLElement, options: PopupOptions): Promise<TopLibPopup> {\r\n\t\tif (elOpener instanceof HTMLElement) elOpener.dataset.topPopupOpened = 'opened';\r\n\r\n\t\tconst { TopLibPopup } = await import('./popup');\r\n\r\n\t\tif (Core.$) {\r\n\t\t\tconst $elOpener = Core.$(elOpener);\r\n\r\n\t\t\t// deprecated, используется aftershow.top-menu-popup\r\n\t\t\tif ($elOpener.data('aftershow')) {\r\n\t\t\t\tlet afterShow = $elOpener.data('aftershow');\r\n\t\t\t\tif (typeof (afterShow) == 'string') {\r\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\r\n\t\t\t\t\t// @deprecated\r\n\t\t\t\t\tafterShow = eval(afterShow.replace(/\\W/g, ''));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$elOpener.one('aftershow.top-menu-popup', afterShow);\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated, используется afterclose.top-menu-popup\r\n\t\t\tif ($elOpener.data('afterclose')) {\r\n\t\t\t\tlet afterclose = $elOpener.data('afterclose');\r\n\t\t\t\tif (typeof (afterclose) == 'string') {\r\n\t\t\t\t\t// TODO: Удалить с сайта указание кода функции в html\r\n\t\t\t\t\t// @deprecated\r\n\t\t\t\t\tafterclose = eval(afterclose.replace(/\\W/g, ''));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$elOpener.one('afterclose.top-menu-popup', afterclose);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toptions.isFullScreen = Core.state.isMobile;\r\n\r\n\t\treturn new TopLibPopup(elOpener, options);\r\n\t}\r\n\r\n\tstatic close(elPopup: HTMLElement, restoreFocus = false): void {\r\n\t\tconst popup = Worker.getPopup(elPopup);\r\n\r\n\t\tif (popup) {\r\n\t\t\tpopup.close();\r\n\r\n\t\t\tconst isFocused = popup.el.contains(document.activeElement);\r\n\r\n\t\t\tif (restoreFocus && !isFocused) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tpopup.el.focus();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic recalcPosition(elPopup: HTMLElement): void {\r\n\t\tconst popup = Worker.getPopup(elPopup);\r\n\t\tif (popup && popup.elPopupBody instanceof HTMLElement) {\r\n\t\t\tpopup.recalcPosition();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Скролл к активному элементу списка\r\n\t */\r\n\tstatic scrollToActive(elPopup: HTMLElement): void {\r\n\t\tconst elItemActive = DOM.querySelectorVisible(elPopup, 'ul.top-popup_content > li > .top-active');\r\n\t\tif (!elItemActive) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst elUl = elPopup.querySelector('ul.top-popup_content');\r\n\t\tconst elsLi = DOM.querySelectorAllVisible(elPopup, 'ul.top-popup_content > li');\r\n\r\n\t\telPopup.classList.add('top-popup-wrapper-no_animate');\r\n\t\tsetTimeout(() => elPopup.classList.remove('top-popup-wrapper-no_animate'), 100);\r\n\r\n\t\tlet top = 100;\r\n\t\tfor (const elLi of elsLi) {\r\n\t\t\tif (elLi.querySelector(':scope > .top-active')) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (elLi instanceof HTMLElement) top += elLi.offsetHeight;\r\n\t\t}\r\n\r\n\t\tif (elUl instanceof HTMLElement) {\r\n\t\t\tconst heightWrapper = elUl.offsetHeight;\r\n\t\t\tif (top > heightWrapper) {\r\n\t\t\t\telUl.scrollTop = top - heightWrapper;\r\n\t\t\t} else {\r\n\t\t\t\telUl.scrollTop = 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic decoratorBeforeOpen(popup: TopLibPopup<any>): void {\r\n\t\tif (this.options.decoratorBeforeOpen) {\r\n\t\t\tthis.options.decoratorBeforeOpen(popup);\r\n\t\t}\r\n\t};\r\n\r\n\tstatic decoratorAfterOpen(popup: TopLibPopup<any>): void {\r\n\t\tif (this.options.decoratorAfterOpen) {\r\n\t\t\tthis.options.decoratorAfterOpen(popup);\r\n\t\t}\r\n\t};\r\n\r\n\tstatic decoratorIsIgnoreOuterClick(e: MouseEvent): boolean {\r\n\t\tif (this.options.decoratorIsIgnoreOuterClick) {\r\n\t\t\treturn this.options.decoratorIsIgnoreOuterClick(e);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Зарегистрировать Vue компонент\r\n\t *\r\n\t * Каждый экземляр Popup регистрируется в словаре vueConnectors для последующего доступа из js\r\n\t */\r\n\tstatic regVueComponent(id: string, vueConnector: any): void {\r\n\t\tif (Worker.vueConnectors.get(id)) {\r\n\t\t\tthrow 'Vue component Popup use duplicated id: ' + id;\r\n\t\t}\r\n\r\n\t\tWorker.vueConnectors.set(id, vueConnector);\r\n\t}\r\n\r\n\t/**\r\n\t * Снять с регистрации Vue компонент\r\n\t */\r\n\tstatic unregVueComponent(id: string): void {\r\n\t\tWorker.vueConnectors.delete(id);\r\n\t}\r\n\r\n\t/**\r\n\t * Сгенерировать элемент для открытия popup\r\n\t */\r\n\tstatic genElPopupOpener(tagName: string, props: OpenerProps, ...elsChildrens: HTMLElement[] | string[]): HTMLElement {\r\n\t\tconst el = DOM.genEl(tagName, {}, ...elsChildrens) as TopLibPopup['el'];\r\n\r\n\t\tel.dataset.topPopup = '#' + props.id;\r\n\r\n\t\t// if (props.pos === undefined) props.pos = '3';\r\n\t\t// if (props.notch === undefined) props.notch = true;\r\n\t\t// if (props.posBy === undefined) props.posBy = 'fixed';\r\n\r\n\t\tfor (let name in props) {\r\n\t\t\tconst attrName = 'topPopup' + name.charAt(0).toUpperCase() + name.slice(1);\r\n\r\n\t\t\tel.dataset[attrName] = props[name];\r\n\t\t}\r\n\r\n\t\tel.__TopPopupOpenerProps = props;\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n}\r\n\r\nexport default Worker;\r\n"],"names":["elPopup","el","elOpener","options","restoreFocus","popup","isFocused","elUl","elsLi","top","elLi","heightWrapper","e","id","vueConnector","tagName","props","elsChildrens","name","attrName"],"mappings":";;AA6BA,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA,EAKZ,OAAO,UAAU;AAAA;AAAA;AAAA;AAAA,EAKjB,OAAO,gBAAgB,oBAAI,IAAA;AAAA,EAE3B,OAAO,UAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,EAK1B,OAAO,SAASA,GAAmC;AAClD,WAAO,IAAI,QAAQA,GAAS,UAAU;AAAA,EACvC;AAAA,EAEA,OAAO,iBAAiBC,GAAiC;AACxD,WAAOA,EAAG,QAAqB,kBAAkB;AAAA,EAClD;AAAA,EAEA,OAAO,mBAAmBA,GAAqC;AAC9D,UAAMC,IAAW,OAAO,iBAAiBD,CAAE;AAC3C,WAAKC,IAEE,IAAI,QAAQA,GAAU,WAAW,IAFlB;AAAA,EAGvB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,SAAwB;AAC9B,WAAO,IAAI,sBAAsB,UAAU,oBAAoB;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,gBAA+B;AACrC,WAAO,IAAI,wBAAwB,UAAU,oBAAoB;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,aAAaA,GAAyD;AAClF,QAAI,EAAEA,aAAoB,aAAc;AAExC,UAAMC,IAAwB,CAAA;AAE9BA,WAAAA,EAAQ,QAAQD,EAAS,QAAQ,UAEjCC,EAAQ,KAAKD,EAAS,QAAQ,YAK1B,CAACC,EAAQ,MAAMA,EAAQ,UAC1BD,EAAS,QAAQ,aAAa;AAAA,MAC7B,OAAO,aAAa,GAAG,IAAI,cAAc,OAAOC,EAAQ,KAAK,CAAC;AAAA,IAAA,GAG/DA,EAAQ,KAAKD,EAAS,QAAQ,aAM3BA,EAAS,QAAQ,cACpBC,EAAQ,IAAI,SAASD,EAAS,QAAQ,SAAS,IAG5CA,EAAS,QAAQ,gBACpBC,EAAQ,IAAI,SAASD,EAAS,QAAQ,WAAW,IAM9CA,EAAS,QAAQ,kBACpBC,EAAQ,QAAQD,EAAS,QAAQ,kBAAkB,UAAUA,EAAS,QAAQ,kBAAkB,MAG7FA,EAAS,QAAQ,kBACpBC,EAAQ,QAAQD,EAAS,QAAQ,gBAG9BA,EAAS,QAAQ,kBACpBC,EAAQ,QAAQD,EAAS,QAAQ,gBAG9BA,EAAS,QAAQ,kBACpBC,EAAQ,gBAAgBD,EAAS,QAAQ,gBAMtCA,EAAS,QAAQ,oBACpBC,EAAQ,UAAUD,EAAS,QAAQ,oBAAoB,UAAUA,EAAS,QAAQ,oBAAoB,MAMnGA,EAAS,QAAQ,2CACpBC,EAAQ,cAAcD,EAAS,QAAQ,wBAAwB,UAAUA,EAAS,QAAQ,wBAAwB,MAM/GA,EAAS,QAAQ,wBACpBC,EAAQ,cAAcD,EAAS,QAAQ,wBAAwB,UAAUA,EAAS,QAAQ,wBAAwB,MAG5G,MAAM,OAAO,KAAKA,GAAUC,CAAO;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAqB,KAAK,UAAuB,SAA6C;AAC7F,IAAI,oBAAoB,gBAAa,SAAS,QAAQ,iBAAiB;AAEvE,UAAM,EAAE,YAAA,IAAgB,MAAM,OAAO,iCAAS;AAE9C,QAAI,KAAK,GAAG;AACX,YAAM,YAAY,KAAK,EAAE,QAAQ;AAGjC,UAAI,UAAU,KAAK,WAAW,GAAG;AAChC,YAAI,YAAY,UAAU,KAAK,WAAW;AAC1C,QAAI,OAAQ,aAAc,aAGzB,YAAY,KAAK,UAAU,QAAQ,OAAO,EAAE,CAAC,IAG9C,UAAU,IAAI,4BAA4B,SAAS;AAAA,MACpD;AAGA,UAAI,UAAU,KAAK,YAAY,GAAG;AACjC,YAAI,aAAa,UAAU,KAAK,YAAY;AAC5C,QAAI,OAAQ,cAAe,aAG1B,aAAa,KAAK,WAAW,QAAQ,OAAO,EAAE,CAAC,IAGhD,UAAU,IAAI,6BAA6B,UAAU;AAAA,MACtD;AAAA,IACD;AAEA,mBAAQ,eAAe,KAAK,MAAM,UAE3B,IAAI,YAAY,UAAU,OAAO;AAAA,EACzC;AAAA,EAEA,OAAO,MAAMH,GAAsBI,IAAe,IAAa;AAC9D,UAAMC,IAAQ,OAAO,SAASL,CAAO;AAErC,QAAIK,GAAO;AACV,MAAAA,EAAM,MAAA;AAEN,YAAMC,IAAYD,EAAM,GAAG,SAAS,SAAS,aAAa;AAE1D,MAAID,KAAgB,CAACE,KACpB,WAAW,MAAM;AAChB,QAAAD,EAAM,GAAG,MAAA;AAAA,MACV,CAAC;AAAA,IAEH;AAAA,EACD;AAAA,EAEA,OAAO,eAAeL,GAA4B;AACjD,UAAMK,IAAQ,OAAO,SAASL,CAAO;AACrC,IAAIK,KAASA,EAAM,uBAAuB,eACzCA,EAAM,eAAA;AAAA,EAER;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,eAAeL,GAA4B;AAEjD,QAAI,CADiB,IAAI,qBAAqBA,GAAS,yCAAyC;AAE/F;AAGD,UAAMO,IAAOP,EAAQ,cAAc,sBAAsB,GACnDQ,IAAQ,IAAI,wBAAwBR,GAAS,2BAA2B;AAE9E,IAAAA,EAAQ,UAAU,IAAI,8BAA8B,GACpD,WAAW,MAAMA,EAAQ,UAAU,OAAO,8BAA8B,GAAG,GAAG;AAE9E,QAAIS,IAAM;AACV,eAAWC,KAAQF,GAAO;AACzB,UAAIE,EAAK,cAAc,sBAAsB;AAC5C;AAGD,MAAIA,aAAgB,gBAAaD,KAAOC,EAAK;AAAA,IAC9C;AAEA,QAAIH,aAAgB,aAAa;AAChC,YAAMI,IAAgBJ,EAAK;AAC3B,MAAIE,IAAME,IACTJ,EAAK,YAAYE,IAAME,IAEvBJ,EAAK,YAAY;AAAA,IAEnB;AAAA,EACD;AAAA,EAEA,OAAO,oBAAoBF,GAA+B;AACzD,IAAI,KAAK,QAAQ,uBAChB,KAAK,QAAQ,oBAAoBA,CAAK;AAAA,EAExC;AAAA,EAEA,OAAO,mBAAmBA,GAA+B;AACxD,IAAI,KAAK,QAAQ,sBAChB,KAAK,QAAQ,mBAAmBA,CAAK;AAAA,EAEvC;AAAA,EAEA,OAAO,4BAA4BO,GAAwB;AAC1D,WAAI,KAAK,QAAQ,8BACT,KAAK,QAAQ,4BAA4BA,CAAC,IAG3C;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,gBAAgBC,GAAYC,GAAyB;AAC3D,QAAI,OAAO,cAAc,IAAID,CAAE;AAC9B,YAAM,4CAA4CA;AAGnD,WAAO,cAAc,IAAIA,GAAIC,CAAY;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,kBAAkBD,GAAkB;AAC1C,WAAO,cAAc,OAAOA,CAAE;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,iBAAiBE,GAAiBC,MAAuBC,GAAqD;AACpH,UAAMhB,IAAK,IAAI,MAAMc,GAAS,CAAA,GAAI,GAAGE,CAAY;AAEjD,IAAAhB,EAAG,QAAQ,WAAW,MAAMe,EAAM;AAMlC,aAASE,KAAQF,GAAO;AACvB,YAAMG,IAAW,aAAaD,EAAK,OAAO,CAAC,EAAE,gBAAgBA,EAAK,MAAM,CAAC;AAEzE,MAAAjB,EAAG,QAAQkB,CAAQ,IAAIH,EAAME,CAAI;AAAA,IAClC;AAEA,WAAAjB,EAAG,wBAAwBe,GAEpBf;AAAA,EACR;AAED;"}
|