@topvisor/ui 1.3.5-5.0 → 1.4.0-TopGroupSelector.10
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-BL-38XF7.es.js +196 -0
- package/.chunks/core-BL-38XF7.es.js.map +1 -0
- package/.chunks/core-BsPx05H9.amd.js +2 -0
- package/.chunks/core-BsPx05H9.amd.js.map +1 -0
- package/.chunks/{datepicker-CPrHVH4x.amd.js → datepicker-3coUsFW2.amd.js} +2 -2
- package/.chunks/{datepicker-CPrHVH4x.amd.js.map → datepicker-3coUsFW2.amd.js.map} +1 -1
- package/.chunks/{datepicker-J8Zg9mKt.es.js → datepicker-D1Hw3a3o.es.js} +14 -17
- package/.chunks/{datepicker-J8Zg9mKt.es.js.map → datepicker-D1Hw3a3o.es.js.map} +1 -1
- package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js +180 -0
- package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js.map +1 -0
- package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js +2 -0
- package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js.map +1 -0
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DvkvzHEY.es.js → dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js} +111 -112
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DvkvzHEY.es.js.map → dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js.map} +1 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js +2 -0
- package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-8KsNy0Bd.amd.js.map → dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js.map} +1 -1
- package/.chunks/forms-BseC3Ftz.es.js +2035 -0
- package/.chunks/{forms-COXAfg9G.es.js.map → forms-BseC3Ftz.es.js.map} +1 -1
- package/.chunks/forms-CUSCBQu3.amd.js +3 -0
- package/.chunks/{forms-DXX5M4DO.amd.js.map → forms-CUSCBQu3.amd.js.map} +1 -1
- package/.chunks/index-DLUtoTUg.amd.js +2 -0
- package/.chunks/index-DLUtoTUg.amd.js.map +1 -0
- package/.chunks/index-DkQWJkMc.es.js +54 -0
- package/.chunks/index-DkQWJkMc.es.js.map +1 -0
- package/.chunks/notice-Cl3ZgiHm.es.js +191 -0
- package/.chunks/{notice-P7CXfEuX.es.js.map → notice-Cl3ZgiHm.es.js.map} +1 -1
- package/.chunks/notice-DwjipV21.amd.js +4 -0
- package/.chunks/{notice-CSGn_jTM.amd.js.map → notice-DwjipV21.amd.js.map} +1 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js +2 -0
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-DHPOnLj5.amd.js.map → page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js.map} +1 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js +139 -0
- package/.chunks/{page.vue_vue_type_script_setup_true_lang-D9m45rLs.es.js.map → page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js.map} +1 -1
- package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js +496 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js.map +1 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js +2 -0
- package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js.map +1 -0
- package/.chunks/popup-DRuyYFGB.amd.js +2 -0
- package/.chunks/popup-DRuyYFGB.amd.js.map +1 -0
- package/.chunks/popup-Jw_Yyg3U.es.js +470 -0
- package/.chunks/popup-Jw_Yyg3U.es.js.map +1 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js +209 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js.map +1 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js +2 -0
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js.map +1 -0
- package/.chunks/utils-CzHUG_xz.amd.js +2 -0
- package/.chunks/{utils-D505nRsu.amd.js.map → utils-CzHUG_xz.amd.js.map} +1 -1
- package/.chunks/utils-D9nYQabE.amd.js +2 -0
- package/.chunks/{utils-DmxcQpWA.amd.js.map → utils-D9nYQabE.amd.js.map} +1 -1
- package/.chunks/{utils-CWm0zAtM.es.js → utils-Q69SXlnV.es.js} +192 -208
- package/.chunks/{utils-CWm0zAtM.es.js.map → utils-Q69SXlnV.es.js.map} +1 -1
- package/.chunks/{utils-Rbz9mxy6.es.js → utils-YrUExsH7.es.js} +23 -24
- package/.chunks/{utils-Rbz9mxy6.es.js.map → utils-YrUExsH7.es.js.map} +1 -1
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-TVpBXc9F.es.js → widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js} +2 -2
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-TVpBXc9F.es.js.map → widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js.map} +1 -1
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-BU-FdL6d.amd.js → widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js} +2 -2
- package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-BU-FdL6d.amd.js.map → widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js.map} +1 -1
- package/api/index.amd.js +1 -1
- package/api/index.amd.js.map +1 -1
- package/api/index.js +138 -133
- package/api/index.js.map +1 -1
- package/assets/dialog_regionSelectorRegions.css +1 -0
- package/assets/forms.css +1 -1
- package/assets/policy.css +1 -0
- package/assets/popupHint.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 +80 -80
- 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 +93 -96
- 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 +13 -13
- package/dialog/dialog.js.map +1 -1
- package/extra/extra.amd.js +1 -1
- package/extra/extra.amd.js.map +1 -1
- package/extra/extra.js +20 -23
- package/extra/extra.js.map +1 -1
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +5 -5
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +180 -541
- package/formsExt/formsExt.js.map +1 -1
- package/layout/layout.amd.js +1 -1
- package/layout/layout.js +6 -6
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.amd.js.map +1 -1
- package/popup/popup.js +43 -46
- 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 +11 -9
- 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 +847 -579
- package/project/project.js.map +1 -1
- package/src/api/api/client/client.d.ts +5 -0
- package/src/api/api/mocker/index.d.ts +3 -3
- package/src/api/api/types/client/request.d.ts +6 -0
- package/src/api/api/types/mocker.d.ts +2 -2
- package/src/components/formsExt/formsExt.d.ts +1 -0
- package/src/components/formsExt/selector2/cache.d.ts +12 -0
- package/src/components/formsExt/selector2/composables/useAPI.d.ts +2033 -0
- package/src/components/formsExt/selector2/composables/useMenu.d.ts +2045 -5
- package/src/components/formsExt/selector2/itemMulti.vue.d.ts +3 -3
- package/src/components/formsExt/selector2/selector2.vue.d.ts +9 -3
- package/src/components/formsExt/selector2/types.d.ts +25 -8
- package/src/components/formsExt/selector2/utils.d.ts +16 -0
- package/src/components/popup/lib/popup.d.ts +1 -2
- package/src/components/popup/popup/opener/types.d.ts +6 -2
- package/src/components/popup/popup/types.d.ts +3 -2
- package/src/components/popup/popup.d.ts +1 -1
- package/src/components/project/groupSelector/folders/folders.vue.d.ts +18 -0
- package/src/components/project/groupSelector/folders/types.d.ts +63 -0
- package/src/components/project/groupSelector/folders/utils.d.ts +63 -0
- package/src/components/project/groupSelector/groupSelector.vue.d.ts +33 -0
- package/src/components/project/groupSelector/groups/groups.vue.d.ts +126 -0
- package/src/components/project/groupSelector/groups/types.d.ts +58 -0
- package/src/components/project/groupSelector/groups/utils.d.ts +92 -0
- package/src/components/project/groupSelector/stories/mocks/folders.d.ts +4 -0
- package/src/components/project/groupSelector/stories/mocks/groups.d.ts +2 -0
- package/src/components/project/groupSelector/stories/mocks/index.d.ts +7 -0
- package/src/components/project/groupSelector/types.d.ts +133 -0
- package/src/components/project/project.d.ts +5 -4
- package/src/components/project/{selectorRegion → regionSelector}/utils/utils.d.ts +3 -3
- package/src/core/utils/composables/useWatch.d.ts +32 -0
- package/tabs/tabs.amd.js +1 -1
- package/tabs/tabs.amd.js.map +1 -1
- package/tabs/tabs.js +24 -24
- 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 +131 -133
- package/tabsView/tabsView.js.map +1 -1
- package/utils/clipboard.amd.js +1 -1
- package/utils/clipboard.js +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/lodash.amd.js +1 -1
- package/utils/lodash.js +1 -1
- package/utils/price.amd.js +1 -1
- package/utils/price.js +1 -1
- package/utils/scroll.amd.js +1 -1
- package/utils/scroll.amd.js.map +1 -1
- package/utils/scroll.js +14 -14
- package/utils/scroll.js.map +1 -1
- package/utils/searchers.amd.js +1 -1
- package/utils/searchers.js +3 -3
- package/utils/string.amd.js +1 -1
- package/utils/string.amd.js.map +1 -1
- package/utils/string.js +3 -7
- package/utils/string.js.map +1 -1
- package/.chunks/core-CaWxDXrZ.es.js +0 -197
- package/.chunks/core-CaWxDXrZ.es.js.map +0 -1
- package/.chunks/core-DmO1i1Ua.amd.js +0 -2
- package/.chunks/core-DmO1i1Ua.amd.js.map +0 -1
- package/.chunks/dialog_selectorRegions-DoEjgXtb.es.js +0 -190
- package/.chunks/dialog_selectorRegions-DoEjgXtb.es.js.map +0 -1
- package/.chunks/dialog_selectorRegions-DzufTzj9.amd.js +0 -2
- package/.chunks/dialog_selectorRegions-DzufTzj9.amd.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-8KsNy0Bd.amd.js +0 -2
- package/.chunks/forms-COXAfg9G.es.js +0 -2047
- package/.chunks/forms-DXX5M4DO.amd.js +0 -3
- package/.chunks/index-BEI7XZmU.amd.js +0 -2
- package/.chunks/index-BEI7XZmU.amd.js.map +0 -1
- package/.chunks/index-igPkes8X.es.js +0 -48
- package/.chunks/index-igPkes8X.es.js.map +0 -1
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang--W1RouXP.es.js +0 -199
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang--W1RouXP.es.js.map +0 -1
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-DzV225TL.amd.js +0 -2
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-DzV225TL.amd.js.map +0 -1
- package/.chunks/menu.vue_vue_type_style_index_0_lang-BiyxTfdE.es.js +0 -112
- package/.chunks/menu.vue_vue_type_style_index_0_lang-BiyxTfdE.es.js.map +0 -1
- package/.chunks/menu.vue_vue_type_style_index_0_lang-D3OAqOqX.amd.js +0 -2
- package/.chunks/menu.vue_vue_type_style_index_0_lang-D3OAqOqX.amd.js.map +0 -1
- package/.chunks/notice-CSGn_jTM.amd.js +0 -4
- package/.chunks/notice-P7CXfEuX.es.js +0 -194
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js +0 -36
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-DRzrTv7Q.es.js.map +0 -1
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js +0 -2
- package/.chunks/opener.vue_vue_type_script_setup_true_lang-gNZhYkDf.amd.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-D9m45rLs.es.js +0 -143
- package/.chunks/page.vue_vue_type_script_setup_true_lang-DHPOnLj5.amd.js +0 -2
- package/.chunks/popup-CF4k7j3U.amd.js +0 -2
- package/.chunks/popup-CF4k7j3U.amd.js.map +0 -1
- package/.chunks/popup-G7FYKscC.es.js +0 -485
- package/.chunks/popup-G7FYKscC.es.js.map +0 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js +0 -2
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js.map +0 -1
- package/.chunks/utils-D505nRsu.amd.js +0 -2
- package/.chunks/utils-DmxcQpWA.amd.js +0 -2
- package/assets/dialog_selectorRegions.css +0 -1
- package/assets/formsExt.css +0 -1
- package/assets/listItem.css +0 -1
- package/assets/menu.css +0 -1
- package/src/components/popup/popup/opener.vue.d.ts +0 -17
- /package/src/components/project/{selectorCompetitors/selectorCompetitors.vue.d.ts → competitorSelector/competitorSelector.vue.d.ts} +0 -0
- /package/src/components/project/{selectorCompetitors → competitorSelector}/composables.d.ts +0 -0
- /package/src/components/project/{selectorCompetitors → competitorSelector}/types.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/compare.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/selectRegion.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/selectSearcher.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/composables/selectorRegion.d.ts +0 -0
- /package/src/components/project/{selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue.d.ts → regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue.d.ts} +0 -0
- /package/src/components/project/{selectorRegion/dialog_selectorRegions → regionSelector/dialog_regionSelectorRegions}/types.d.ts +0 -0
- /package/src/components/project/{selectorRegion/selectorRegion.vue.d.ts → regionSelector/regionSelector.vue.d.ts} +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/types.d.ts +0 -0
- /package/src/components/project/{selectorRegion → regionSelector}/utils/consts.d.ts +0 -0
package/assets/forms.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.top-avatar{width:var(--52a765e6);height:var(--52a765e6);display:flex;flex-grow:0;flex-shrink:0;position:relative;top:0;left:0}.top-avatar_image{border-radius:50%;width:100%;height:100%}.top-avatar_status{border-radius:50%;border:2px solid var(--color-layout-front-1);background-color:var(--color-bg-positive-1);width:25%;height:25%;position:absolute;right:0;bottom:0}.top-button{cursor:pointer;box-sizing:border-box;box-shadow:var(--top-button-box-shadow);border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-button-background-color);height:var(--top-forms-base-height);padding-right:var(--top-forms-padding);padding-left:var(--top-forms-padding);color:var(--top-button-color);line-height:1;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,box-shadow .15s}.top-button:hover{box-shadow:var(--top-button-box-shadow-hover);background-color:var(--top-button-background-color-hover)}.top-button:active{box-shadow:var(--top-button-box-shadow-active);background-color:var(--top-button-background-color-active)}.top-button.top-active{box-shadow:var(--top-button-box-shadow-selected);background-color:var(--top-button-background-color-selected)}.top-button.top-button-progress{cursor:help;box-shadow:inset #00000080 0 0 64px;background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:32px 32px;animation:progress 1s linear infinite}@keyframes progress{0%{background-position-x:0px}to{background-position-x:32px}}a.top-button,button.top-button{min-width:100px;text-decoration:none}.top-button.top-button-autoWidth{min-width:auto}button.top-selector2{width:180px}a.top-button,a.top-button:hover{min-width:var(--top-forms-base-height);text-decoration:none}.top-button[data-top-icon]:not(:empty):not(.top-button-withoutText),.top-button[data-top-icon2]:not(:empty):not(.top-button-withoutText){justify-content:flex-start;text-align:left}.top-button[data-top-icon]{padding-left:0}.top-button[data-top-icon2]{padding-right:var(--top-selector-arrow-width)}.top-button[data-top-icon2]:after{margin-left:auto}.top-button:empty,.top-button.top-button-withoutText{min-width:var(--top-forms-base-height)}.top-button[data-top-icon]:empty,.top-button[data-top-icon2]:empty,.top-button[data-top-icon].top-button-withoutText,.top-button[data-top-icon2].top-button-withoutText{padding-right:0;padding-left:0}.top-button.top-color_blue{--top-button-background-color: var(--color-bg-primary-1)}.top-button.top-color_green{--top-button-background-color: var(--color-bg-positive-1)}.top-button.top-color_orange{--top-button-background-color: var(--color-bg-warning-1)}.top-button.top-color_red{--top-button-background-color: var(--color-bg-negative-1)}.top-button.top-color_pink{--top-button-background-color: var(--color-bg-info-1)}.top-button.top-color_brand{--top-button-color: var(--color-text-1-inverse);--top-button-background-color: var(--color-brand-1)}.top-button.top-color_theme{--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-color: var(--color-text-1);--top-button-background-color: transparent;--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-2)}.top-button.top-color_theme:hover{--top-icon-color: var(--color-text-1);--top-icon2-color: var(--color-text-1)}.top-button.top-color_theme.top-active{--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2)}.top-button.top-style_outline{--top-button-box-shadow: none;--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-button-background-color: var(--color-layout-front-1);--top-forms-border-width: 1px}.top-button.top-style_outline.top-color_theme{--top-button-color: var(--color-text-2);--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-2);--top-button-background-color-selected: var(--color-layer-3);--top-forms-border-color: var(--color-line-3)}.top-button.top-style_outline.top-color_theme:hover{--top-forms-border-color: var(--color-line-4)}.top-button.top-style_outline.top-color_blue{--top-button-color: var(--color-text-primary);--top-icon-color: var(--color-text-primary);--top-icon2-color: var(--color-text-primary);--top-button-background-color-hover: var(--color-layer-primary-1);--top-button-background-color-active: var(--color-layer-primary-2);--top-button-background-color-selected: var(--color-layer-primary-3);--top-forms-border-color: var(--color-line-primary-1)}.top-button.top-style_outline.top-color_blue:hover{--top-forms-border-color: var(--color-line-primary-2)}.top-button.top-style_outline.top-color_green{--top-button-color: var(--color-text-positive);--top-icon-color: var(--color-text-positive);--top-icon2-color: var(--color-text-positive);--top-button-background-color-hover: var(--color-layer-positive-1);--top-button-background-color-active: var(--color-layer-positive-2);--top-button-background-color-selected: var(--color-layer-positive-3);--top-forms-border-color: var(--color-line-positive-1)}.top-button.top-style_outline.top-color_green:hover{--top-forms-border-color: var(--color-line-positive-2)}.top-button.top-style_outline.top-color_orange{--top-button-color: var(--color-text-warning);--top-icon-color: var(--color-text-warning);--top-icon2-color: var(--color-text-warning);--top-button-background-color-hover: var(--color-layer-warning-1);--top-button-background-color-active: var(--color-layer-warning-2);--top-button-background-color-selected: var(--color-layer-warning-3);--top-forms-border-color: var(--color-line-warning-1)}.top-button.top-style_outline.top-color_orange:hover{--top-forms-border-color: var(--color-line-warning-2)}.top-button.top-style_outline.top-color_red{--top-button-color: var(--color-text-negative);--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative);--top-button-background-color-hover: var(--color-layer-negative-1);--top-button-background-color-active: var(--color-layer-negative-2);--top-button-background-color-selected: var(--color-layer-negative-3);--top-forms-border-color: var(--color-line-negative-1)}.top-button.top-style_outline.top-color_red:hover{--top-forms-border-color: var(--color-line-negative-2)}.top-button.top-style_outline.top-color_pink{--top-button-color: var(--color-text-info);--top-icon-color: var(--color-text-info);--top-icon2-color: var(--color-text-info);--top-button-background-color-hover: var(--color-layer-info-1);--top-button-background-color-active: var(--color-layer-info-2);--top-button-background-color-selected: var(--color-layer-info-3);--top-forms-border-color: var(--color-line-info-1)}.top-button.top-style_outline.top-color_pink:hover{--top-forms-border-color: var(--color-line-info-2)}.top-button.top-style_outline.top-color_brand{--top-button-color: var(--color-brand-1);--top-icon-color: var(--color-brand-1);--top-icon2-color: var(--color-brand-1);--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-2);--top-button-background-color-selected: var(--color-layer-3);--top-forms-border-color: var(--color-brand-1)}.top-button.top-style_outline.top-color_brand:hover{--top-forms-border-color: var(--color-brand-2)}.top-button.top-style_soft{--top-shadow-darken-1: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none}.top-button.top-style_soft.top-color_theme{--top-button-color: var(--color-text-1);--top-icon-color: var(--color-text-1);--top-icon2-color: var(--color-text-1);--top-button-background-color: var(--color-layer-1);--top-button-background-color-hover: var(--color-layer-2);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_soft.top-color_blue{--top-button-color: var(--color-text-primary);--top-icon-color: var(--color-text-primary);--top-icon2-color: var(--color-text-primary);--top-button-background-color: var(--color-layer-primary-1);--top-button-background-color-hover: var(--color-layer-primary-2);--top-button-background-color-active: var(--color-layer-primary-3);--top-button-background-color-selected: var(--color-layer-primary-3)}.top-button.top-style_soft.top-color_green{--top-button-color: var(--color-text-positive);--top-icon-color: var(--color-text-positive);--top-icon2-color: var(--color-text-positive);--top-button-background-color: var(--color-layer-positive-1);--top-button-background-color-hover: var(--color-layer-positive-2);--top-button-background-color-active: var(--color-layer-positive-3);--top-button-background-color-selected: var(--color-layer-positive-3)}.top-button.top-style_soft.top-color_orange{--top-button-color: var(--color-text-warning);--top-icon-color: var(--color-text-warning);--top-icon2-color: var(--color-text-warning);--top-button-background-color: var(--color-layer-warning-1);--top-button-background-color-hover: var(--color-layer-warning-2);--top-button-background-color-active: var(--color-layer-warning-3);--top-button-background-color-selected: var(--color-layer-warning-3)}.top-button.top-style_soft.top-color_red{--top-button-color: var(--color-text-negative);--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative);--top-button-background-color: var(--color-layer-negative-1);--top-button-background-color-hover: var(--color-layer-negative-2);--top-button-background-color-active: var(--color-layer-negative-3);--top-button-background-color-selected: var(--color-layer-negative-3)}.top-button.top-style_soft.top-color_pink{--top-button-color: var(--color-text-info);--top-icon-color: var(--color-text-info);--top-icon2-color: var(--color-text-info);--top-button-background-color: var(--color-layer-info-1);--top-button-background-color-hover: var(--color-layer-info-2);--top-button-background-color-active: var(--color-layer-info-3);--top-button-background-color-selected: var(--color-layer-info-3)}.top-button.top-style_soft.top-color_brand{--top-button-color: var(--color-brand-1);--top-icon-color: var(--color-brand-1);--top-icon2-color: var(--color-brand-1);--top-button-background-color: var(--color-layer-1);--top-button-background-color-hover: var(--color-layer-2);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_transparent{--top-shadow-darken-1: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: transparent;--top-button-background-color-hover: transparent;--top-button-background-color-active: transparent;--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_transparent:hover{opacity:.8}.top-button.top-style_transparent.top-color_blue{--top-button-color: var(--color-text-primary)}.top-button.top-style_transparent.top-color_green{--top-button-color: var(--color-text-positive)}.top-button.top-style_transparent.top-color_orange{--top-button-color: var(--color-text-warning)}.top-button.top-style_transparent.top-color_red{--top-button-color: var(--color-text-negative)}.top-button.top-style_transparent.top-color_pink{--top-button-color: var(--color-text-info)}.top-button.top-style_transparent.top-color_brand{--top-button-color: var(--color-brand-1)}.top-button{--top-button-color: var(--color-white);--top-button-background-color: transparent;--top-button-background-color-hover: var(--top-button-background-color);--top-button-background-color-active: var(--top-button-background-color-hover);--top-button-background-color-selected: var(--top-button-background-color-hover);--top-button-box-shadow: none;--top-button-box-shadow-hover: var(--top-shadow-darken-2);--top-button-box-shadow-active: var(--top-shadow-darken-3);--top-button-box-shadow-selected: var(--top-shadow-darken-3);--top-forms-border-width: 0px;--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding))}.top-button>span{pointer-events:none}.top-button>.top-ellipsis{flex-grow:0}.top-button.top-size_xs{--top-forms-padding: var(--top-forms-padding_xs);--top-forms-base-height: var(--top-forms-base-height_xs)}.top-button.top-size_m{--top-forms-padding: var(--top-forms-padding_m);--top-forms-base-height: var(--top-forms-base-height_m)}.top-button.top-size_l{--top-forms-padding: var(--top-forms-padding_l);--top-forms-base-height: var(--top-forms-base-height_l)}.top-button_badge-afterText{order:100}.top-button:not([data-top-icon2])>.top-button_badge-afterText{margin-left:0}.top-caption{display:flex;flex-direction:column;gap:var(--top-gap-1)}.top-caption_title{color:var(--color-text-3);font-size:12px}.top-forms-optionLabel{flex-grow:1}.top-forms-optionLabel_title{color:var(--color-text-1);min-height:var(--top-forms-option-height);display:flex;align-items:center}.top-forms-optionLabel_title-disabled{color:var(--color-text-3)}.top-forms-optionLabel_description{color:var(--color-text-2);font-size:.85em;line-height:var(--top-forms-option-height)}.top-forms-optionLabel_description-disabled{color:var(--color-text-3)}.top-checkbox{cursor:pointer;display:inline-flex}.top-checkbox_input{cursor:inherit;border-radius:4px;background:var(--color-layout-front-1);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-checkbox_input:before{content:" ";color:#fff;font-family:Topvisor-2;font-size:16px;line-height:1}.top-checkbox_input:hover{border-color:var(--top-forms-border-color-hover);background:var(--color-layer-primary-1)}.top-checkbox_input:checked,.top-checkbox_input:indeterminate{border-color:var(--top-forms-option-color);background:var(--top-forms-option-color)}.top-checkbox_input:checked:before{content:""}.top-checkbox_input:indeterminate:before{content:""}.top-checkbox_input:checked:hover,.top-checkbox_input:indeterminate:hover{border-color:var(--top-forms-option-color-hover);background:var(--top-forms-option-color-hover)}.top-checkbox_input.top-error{border-color:var(--color-bg-negative-1)}.top-checkbox_input.top-error:hover{border-color:var(--color-bg-negative-2)}.top-checkbox_input:checked.top-error,.top-checkbox_input:indeterminate.top-error{background:var(--color-bg-negative-1)}.top-checkbox_input:checked.top-error:hover,.top-checkbox_input:indeterminate.top-error:hover{background:var(--color-bg-negative-2)}.top-hint{--top-icon-size: 16px;--top-icon-width: var(--top-icon-size);border-radius:50%;background:inherit;padding:1px;color:var(--color-text-3);line-height:1;z-index:1;pointer-events:all}.top-hint:hover{color:var(--color-text-2)}:root{--top-loadbar-duration: 10s;--top-loadbar-color: var(--color-line-primary-1)}.top-loadbar{background:var(--top-loadbar-color);width:0;height:4px;position:absolute;top:0;left:0;animation:top-loadbar var(--top-loadbar-duration) forwards}@keyframes top-loadbar{0%{width:4px}4%{width:4%}5%{width:5%}to{width:95%}}.top-input{--top-forms_clear-width: 0px;width:180px;position:relative;display:inline-flex;align-items:center;gap:var(--top-gap-1)}.top-input_input{color:var(--color-text-2);height:var(--top-forms-base-height);padding:0;padding-right:max(var(--top-forms-padding),calc(var(--top-icon2-width) + var(--top-forms_clear-width)));padding-left:max(var(--top-forms-padding),var(--top-icon-width))}.top-input[data-top-icon]:before,.top-input[data-top-icon2]:after{--top-icon-color: var(--color-text-4);--top-icon2-color: var(--color-text-4);position:absolute;z-index:3;font-size:20px}.top-input[data-top-icon]:before{left:0}.top-input[data-top-icon2]:after{right:0}.top-input-withCleaner{--top-forms_clear-width: 24px}.top-input_cleaner[data-top-icon]{--top-icon-size: 16px;--top-icon-width: 20px;--top-icon-color: var(--color-text-3);cursor:pointer;border-radius:50%;width:20px;height:16px;position:absolute;right:calc(var(--top-forms-border-width) + max(var(--top-icon2-width),var(--top-forms-padding) / 2));z-index:1;display:flex;align-items:center;justify-content:center}.top-input_cleaner[data-top-icon]:hover{--top-icon-color: var(--color-text-2)}.top-input_input{width:50%;flex-grow:1}.top-input .top-loadbar{border-radius:var(--top-forms-radius) 0 0 0}.top-input-datepicker{width:calc(105px + var(--top-icon-width) + var(--top-icon2-width))}.top-input_input-date{opacity:0;position:absolute;inset:0;z-index:-1}.top-input_input-date::-webkit-inner-spin-button{display:none}.top-input_input-date::-webkit-calendar-picker-indicator{opacity:0}.top-inputRange{max-width:320px;vertical-align:baseline;display:inline-flex;gap:8px}.top-inputRange_dash{height:var(--top-forms-base-height);color:var(--color-text-4);align-self:flex-end;display:inline-flex;align-items:center}.top-inputRange>.top-input{flex-grow:1}:root{--top-radio-background-color: var(--color-layout-front-1);--top-radio-background-color-hover: var(--top-radio-background-color);--top-radio-background-color-active: var(--top-radio-background-color)}.top-radio{cursor:pointer}.top-radio_input{border-radius:50%;background:var(--color-layout-front-1);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-radio_input:hover{border-color:var(--top-forms-border-color-hover);background:var(--color-layer-primary-1)}.top-radio_input:checked{border-color:var(--top-forms-option-color);border-width:5px}.top-radio_input:checked:hover{border-color:var(--color-bg-primary-2)}.top-radio_input.top-error,.top-radio_input.top-error:hover{border-color:var(--color-bg-negative-1)}.top-checkboxSwitcher{cursor:pointer;display:inline-flex;gap:4px}.top-checkboxSwitcher_input{border-radius:9px;border:none;background:var(--color-layer-3);width:36px;height:18px;position:relative}.top-checkboxSwitcher_input:before{content:"";border-radius:50%;background:var(--color-white);width:12px;height:12px;margin:3px;position:absolute;top:0;left:0;transition:left .1s}.top-checkboxSwitcher_input:hover{background:var(--color-layer-4)}.top-checkboxSwitcher_input:checked{background:var(--top-forms-option-color)}.top-checkboxSwitcher_input:checked:hover{background:var(--top-forms-option-color-hover)}.top-checkboxSwitcher_input:checked:before{left:50%}.top-checkboxSwitcher_input.top-error{background:var(--color-layer-negative-3)}.top-checkboxSwitcher_input.top-error:hover{background:var(--color-layer-negative-4)}.top-checkboxSwitcher_input.top-error:checked{background:var(--color-bg-negative-2)}.top-checkboxSwitcher_input.top-error:checked:hover{background:var(--color-bg-negative-1)}.top-textarea{width:180px;display:inline-flex;align-items:center;position:relative}.top-textarea_textarea{color:var(--color-text-1);width:100%;padding:var(--top-forms-padding);resize:none}html .top-textarea_textarea.top-textarea_textarea-expandable{width:100%;height:calc(100% + var(--top-forms-border-width) * 2);position:absolute;top:0;left:0}.top-textarea_pseudoContent{pointer-events:none;box-sizing:border-box;min-height:var(--049aac9f);max-height:60vh;padding:var(--top-forms-padding);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;display:block;opacity:0;z-index:-1}.top-textarea_hint{height:var(--top-icon-width);display:flex;position:absolute;top:2px;right:2px}.top-textarea_counter{box-shadow:var(--top-forms-background-color) -2px -2px 4px;border-radius:8px;background:var(--top-forms-background-color);padding:var(--top-padding-1);color:var(--color-text-4);position:absolute;right:var(--top-scrollbar-width, var(--top-forms-border-width));bottom:var(--top-forms-border-width);z-index:1}.top-textarea_counter-max{color:var(--color-text-negative)}.top-select{color:var(--color-text-1);--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);align-items:center;width:180px;max-width:100%;display:inline-flex}.top-select-error{--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative)}.top-select_select{padding-left:var(--top-forms-padding);text-indent:clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)));width:100%;height:var(--top-forms-base-height);text-overflow:ellipsis;white-space:nowrap;flex-grow:1;overflow:hidden}.top-select optgroup{color:var(--color-text-1);font-style:normal}.top-select option:not(:disabled){background:var(--color-layout-front-1);color:var(--color-text-1)}.top-select option:disabled{background:unset;color:unset}@-moz-document url-prefix(){.top-select_select{text-indent:calc(clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)))/2)}}@media only screen and (min-width: 900px){.top-changer{cursor:pointer;border-radius:100%;width:0;transform:translate(-44px);color:var(--color-text-2);font-size:16px;line-height:1;display:none;z-index:2;order:4}.top-changer:hover{color:var(--color-text-primary)}.top-changer:after{content:"";background-color:var(--top-forms-background-color);font-family:Topvisor-2}*:hover>.top-changer{display:block}}:root{--top-preloader-size: 12px;--top-preloader-color: var(--color-bg-primary-1)}.top-preloader-throbber{border-radius:50%;border:2px solid var(--top-preloader-color);border-top-color:transparent;border-left-color:transparent;width:var(--top-preloader-size);height:var(--top-preloader-size);display:inline-block;animation:top-preloader-throbber .9s linear infinite}@keyframes top-preloader-throbber{to{transform:rotate(360deg)}}.top-preloader-circles{--top-preloader-color: var(--color-line-1-opacity)}.top-preloader-circles>i{border-radius:100%;background-color:var(--top-preloader-color);width:var(--top-preloader-size);height:var(--top-preloader-size);vertical-align:middle;display:inline-block;animation-duration:.5s;animation-timing-function:linear;animation-iteration-count:infinite}.top-preloader-circles>i:first-child{animation-name:top-preloader-circles_1}.top-preloader-circles>i:not(:first-child):not(:last-child){animation-name:top-preloader-circles_2}.top-preloader-circles>i:last-child{animation-name:top-preloader-circles_3}@keyframes top-preloader-circles_1{0%{opacity:0;transform:translate(-12px)}30%{opacity:1;transform:translate(-2px)}to{transform:translate(6px)}}@keyframes top-preloader-circles_2{0%{transform:translate(-6px)}to{transform:translate(6px)}}@keyframes top-preloader-circles_3{0%{transform:translate(-6px)}70%{opacity:1;transform:translate(2px)}to{opacity:0;transform:translate(12px)}}
|
|
1
|
+
.top-avatar{width:var(--v52a765e6);height:var(--v52a765e6);display:flex;flex-grow:0;flex-shrink:0;position:relative;top:0;left:0}.top-avatar_image{border-radius:50%;width:100%;height:100%}.top-avatar_status{border-radius:50%;border:2px solid var(--color-layout-front-1);background-color:var(--color-bg-positive-1);width:25%;height:25%;position:absolute;right:0;bottom:0}.top-button{cursor:pointer;box-sizing:border-box;box-shadow:var(--top-button-box-shadow);border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-button-background-color);height:var(--top-forms-base-height);padding-right:var(--top-forms-padding);padding-left:var(--top-forms-padding);color:var(--top-button-color);line-height:1;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,box-shadow .15s}.top-button:hover{box-shadow:var(--top-button-box-shadow-hover);background-color:var(--top-button-background-color-hover)}.top-button:active{box-shadow:var(--top-button-box-shadow-active);background-color:var(--top-button-background-color-active)}.top-button.top-active{box-shadow:var(--top-button-box-shadow-selected);background-color:var(--top-button-background-color-selected)}.top-button.top-button-progress{cursor:help;box-shadow:inset #00000080 0 0 64px;background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:32px 32px;animation:progress 1s linear infinite}@keyframes progress{0%{background-position-x:0px}to{background-position-x:32px}}a.top-button,button.top-button{min-width:100px;text-decoration:none}.top-button.top-button-autoWidth{min-width:auto}button.top-selector2{width:180px}a.top-button,a.top-button:hover{min-width:var(--top-forms-base-height);text-decoration:none}.top-button[data-top-icon]:not(:empty):not(.top-button-withoutText),.top-button[data-top-icon2]:not(:empty):not(.top-button-withoutText){justify-content:flex-start;text-align:left}.top-button[data-top-icon]{padding-left:0}.top-button[data-top-icon2]{padding-right:var(--top-selector-arrow-width)}.top-button[data-top-icon2]:after{margin-left:auto}.top-button:empty,.top-button.top-button-withoutText{min-width:var(--top-forms-base-height)}.top-button[data-top-icon]:empty,.top-button[data-top-icon2]:empty,.top-button[data-top-icon].top-button-withoutText,.top-button[data-top-icon2].top-button-withoutText{padding-right:0;padding-left:0}.top-button.top-color_blue{--top-button-background-color: var(--color-bg-primary-1)}.top-button.top-color_green{--top-button-background-color: var(--color-bg-positive-1)}.top-button.top-color_orange{--top-button-background-color: var(--color-bg-warning-1)}.top-button.top-color_red{--top-button-background-color: var(--color-bg-negative-1)}.top-button.top-color_pink{--top-button-background-color: var(--color-bg-info-1)}.top-button.top-color_brand{--top-button-color: var(--color-text-1-inverse);--top-button-background-color: var(--color-brand-1)}.top-button.top-color_theme{--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-color: var(--color-text-1);--top-button-background-color: transparent;--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-2)}.top-button.top-color_theme:hover{--top-icon-color: var(--color-text-1);--top-icon2-color: var(--color-text-1)}.top-button.top-color_theme.top-active{--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2)}.top-button.top-style_outline{--top-button-box-shadow: none;--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-button-background-color: var(--color-layout-front-1);--top-forms-border-width: 1px}.top-button.top-style_outline.top-color_theme{--top-button-color: var(--color-text-2);--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-2);--top-button-background-color-selected: var(--color-layer-3);--top-forms-border-color: var(--color-line-3)}.top-button.top-style_outline.top-color_theme:hover{--top-forms-border-color: var(--color-line-4)}.top-button.top-style_outline.top-color_blue{--top-button-color: var(--color-text-primary);--top-icon-color: var(--color-text-primary);--top-icon2-color: var(--color-text-primary);--top-button-background-color-hover: var(--color-layer-primary-1);--top-button-background-color-active: var(--color-layer-primary-2);--top-button-background-color-selected: var(--color-layer-primary-3);--top-forms-border-color: var(--color-line-primary-1)}.top-button.top-style_outline.top-color_blue:hover{--top-forms-border-color: var(--color-line-primary-2)}.top-button.top-style_outline.top-color_green{--top-button-color: var(--color-text-positive);--top-icon-color: var(--color-text-positive);--top-icon2-color: var(--color-text-positive);--top-button-background-color-hover: var(--color-layer-positive-1);--top-button-background-color-active: var(--color-layer-positive-2);--top-button-background-color-selected: var(--color-layer-positive-3);--top-forms-border-color: var(--color-line-positive-1)}.top-button.top-style_outline.top-color_green:hover{--top-forms-border-color: var(--color-line-positive-2)}.top-button.top-style_outline.top-color_orange{--top-button-color: var(--color-text-warning);--top-icon-color: var(--color-text-warning);--top-icon2-color: var(--color-text-warning);--top-button-background-color-hover: var(--color-layer-warning-1);--top-button-background-color-active: var(--color-layer-warning-2);--top-button-background-color-selected: var(--color-layer-warning-3);--top-forms-border-color: var(--color-line-warning-1)}.top-button.top-style_outline.top-color_orange:hover{--top-forms-border-color: var(--color-line-warning-2)}.top-button.top-style_outline.top-color_red{--top-button-color: var(--color-text-negative);--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative);--top-button-background-color-hover: var(--color-layer-negative-1);--top-button-background-color-active: var(--color-layer-negative-2);--top-button-background-color-selected: var(--color-layer-negative-3);--top-forms-border-color: var(--color-line-negative-1)}.top-button.top-style_outline.top-color_red:hover{--top-forms-border-color: var(--color-line-negative-2)}.top-button.top-style_outline.top-color_pink{--top-button-color: var(--color-text-info);--top-icon-color: var(--color-text-info);--top-icon2-color: var(--color-text-info);--top-button-background-color-hover: var(--color-layer-info-1);--top-button-background-color-active: var(--color-layer-info-2);--top-button-background-color-selected: var(--color-layer-info-3);--top-forms-border-color: var(--color-line-info-1)}.top-button.top-style_outline.top-color_pink:hover{--top-forms-border-color: var(--color-line-info-2)}.top-button.top-style_outline.top-color_brand{--top-button-color: var(--color-brand-1);--top-icon-color: var(--color-brand-1);--top-icon2-color: var(--color-brand-1);--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-2);--top-button-background-color-selected: var(--color-layer-3);--top-forms-border-color: var(--color-brand-1)}.top-button.top-style_outline.top-color_brand:hover{--top-forms-border-color: var(--color-brand-2)}.top-button.top-style_soft{--top-shadow-darken-1: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none}.top-button.top-style_soft.top-color_theme{--top-button-color: var(--color-text-1);--top-icon-color: var(--color-text-1);--top-icon2-color: var(--color-text-1);--top-button-background-color: var(--color-layer-1);--top-button-background-color-hover: var(--color-layer-2);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_soft.top-color_blue{--top-button-color: var(--color-text-primary);--top-icon-color: var(--color-text-primary);--top-icon2-color: var(--color-text-primary);--top-button-background-color: var(--color-layer-primary-1);--top-button-background-color-hover: var(--color-layer-primary-2);--top-button-background-color-active: var(--color-layer-primary-3);--top-button-background-color-selected: var(--color-layer-primary-3)}.top-button.top-style_soft.top-color_green{--top-button-color: var(--color-text-positive);--top-icon-color: var(--color-text-positive);--top-icon2-color: var(--color-text-positive);--top-button-background-color: var(--color-layer-positive-1);--top-button-background-color-hover: var(--color-layer-positive-2);--top-button-background-color-active: var(--color-layer-positive-3);--top-button-background-color-selected: var(--color-layer-positive-3)}.top-button.top-style_soft.top-color_orange{--top-button-color: var(--color-text-warning);--top-icon-color: var(--color-text-warning);--top-icon2-color: var(--color-text-warning);--top-button-background-color: var(--color-layer-warning-1);--top-button-background-color-hover: var(--color-layer-warning-2);--top-button-background-color-active: var(--color-layer-warning-3);--top-button-background-color-selected: var(--color-layer-warning-3)}.top-button.top-style_soft.top-color_red{--top-button-color: var(--color-text-negative);--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative);--top-button-background-color: var(--color-layer-negative-1);--top-button-background-color-hover: var(--color-layer-negative-2);--top-button-background-color-active: var(--color-layer-negative-3);--top-button-background-color-selected: var(--color-layer-negative-3)}.top-button.top-style_soft.top-color_pink{--top-button-color: var(--color-text-info);--top-icon-color: var(--color-text-info);--top-icon2-color: var(--color-text-info);--top-button-background-color: var(--color-layer-info-1);--top-button-background-color-hover: var(--color-layer-info-2);--top-button-background-color-active: var(--color-layer-info-3);--top-button-background-color-selected: var(--color-layer-info-3)}.top-button.top-style_soft.top-color_brand{--top-button-color: var(--color-brand-1);--top-icon-color: var(--color-brand-1);--top-icon2-color: var(--color-brand-1);--top-button-background-color: var(--color-layer-1);--top-button-background-color-hover: var(--color-layer-2);--top-button-background-color-active: var(--color-layer-3);--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_transparent{--top-shadow-darken-1: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: transparent;--top-button-background-color-hover: transparent;--top-button-background-color-active: transparent;--top-button-background-color-selected: var(--color-layer-3)}.top-button.top-style_transparent:hover{opacity:.8}.top-button.top-style_transparent.top-color_blue{--top-button-color: var(--color-text-primary)}.top-button.top-style_transparent.top-color_green{--top-button-color: var(--color-text-positive)}.top-button.top-style_transparent.top-color_orange{--top-button-color: var(--color-text-warning)}.top-button.top-style_transparent.top-color_red{--top-button-color: var(--color-text-negative)}.top-button.top-style_transparent.top-color_pink{--top-button-color: var(--color-text-info)}.top-button.top-style_transparent.top-color_brand{--top-button-color: var(--color-brand-1)}.top-button{--top-button-color: var(--color-white);--top-button-background-color: transparent;--top-button-background-color-hover: var(--top-button-background-color);--top-button-background-color-active: var(--top-button-background-color-hover);--top-button-background-color-selected: var(--top-button-background-color-hover);--top-button-box-shadow: none;--top-button-box-shadow-hover: var(--top-shadow-darken-2);--top-button-box-shadow-active: var(--top-shadow-darken-3);--top-button-box-shadow-selected: var(--top-shadow-darken-3);--top-forms-border-width: 0px;--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding))}.top-button>span{pointer-events:none}.top-button>.top-ellipsis{flex-grow:0}.top-button.top-size_xs{--top-forms-padding: var(--top-forms-padding_xs);--top-forms-base-height: var(--top-forms-base-height_xs)}.top-button.top-size_m{--top-forms-padding: var(--top-forms-padding_m);--top-forms-base-height: var(--top-forms-base-height_m)}.top-button.top-size_l{--top-forms-padding: var(--top-forms-padding_l);--top-forms-base-height: var(--top-forms-base-height_l)}.top-button_badge-afterText{order:100}.top-button:not([data-top-icon2])>.top-button_badge-afterText{margin-left:0}.top-caption{display:flex;flex-direction:column;gap:var(--top-gap-1)}.top-caption_title{color:var(--color-text-3);font-size:12px}.top-forms-optionLabel{flex-grow:1}.top-forms-optionLabel_title{color:var(--color-text-1);min-height:var(--top-forms-option-height);display:flex;align-items:center}.top-forms-optionLabel_title-disabled{color:var(--color-text-3)}.top-forms-optionLabel_description{color:var(--color-text-2);font-size:.85em;line-height:var(--top-forms-option-height)}.top-forms-optionLabel_description-disabled{color:var(--color-text-3)}.top-checkbox{cursor:pointer;display:inline-flex}.top-checkbox_input{cursor:inherit;border-radius:4px;background:var(--color-layout-front-1);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-checkbox_input:before{content:" ";color:#fff;font-family:Topvisor-2;font-size:16px;line-height:1}.top-checkbox_input:hover{border-color:var(--top-forms-border-color-hover);background:var(--color-layer-primary-1)}.top-checkbox_input:checked,.top-checkbox_input:indeterminate{border-color:var(--top-forms-option-color);background:var(--top-forms-option-color)}.top-checkbox_input:checked:before{content:""}.top-checkbox_input:indeterminate:before{content:""}.top-checkbox_input:checked:hover,.top-checkbox_input:indeterminate:hover{border-color:var(--top-forms-option-color-hover);background:var(--top-forms-option-color-hover)}.top-checkbox_input.top-error{border-color:var(--color-bg-negative-1)}.top-checkbox_input.top-error:hover{border-color:var(--color-bg-negative-2)}.top-checkbox_input:checked.top-error,.top-checkbox_input:indeterminate.top-error{background:var(--color-bg-negative-1)}.top-checkbox_input:checked.top-error:hover,.top-checkbox_input:indeterminate.top-error:hover{background:var(--color-bg-negative-2)}.top-hint{--top-icon-size: 16px;--top-icon-width: var(--top-icon-size);border-radius:50%;background:inherit;padding:1px;color:var(--color-text-3);line-height:1;z-index:1;pointer-events:all}.top-hint:hover{color:var(--color-text-2)}:root{--top-loadbar-duration: 10s;--top-loadbar-color: var(--color-line-primary-1)}.top-loadbar{background:var(--top-loadbar-color);width:0;height:4px;position:absolute;top:0;left:0;animation:top-loadbar var(--top-loadbar-duration) forwards}@keyframes top-loadbar{0%{width:4px}4%{width:4%}5%{width:5%}to{width:95%}}.top-input{--top-forms_clear-width: 0px;width:180px;position:relative;display:inline-flex;align-items:center;gap:var(--top-gap-1)}.top-input_input{color:var(--color-text-2);height:var(--top-forms-base-height);padding:0;padding-right:max(var(--top-forms-padding),calc(var(--top-icon2-width) + var(--top-forms_clear-width)));padding-left:max(var(--top-forms-padding),var(--top-icon-width))}.top-input[data-top-icon]:before,.top-input[data-top-icon2]:after{--top-icon-color: var(--color-text-3);--top-icon2-color: var(--color-text-3);position:absolute;z-index:3;font-size:20px}.top-input[data-top-icon]:before{left:0}.top-input[data-top-icon2]:after{right:0}.top-input-withCleaner{--top-forms_clear-width: 24px}.top-input_cleaner[data-top-icon]{--top-icon-size: 16px;--top-icon-width: 20px;--top-icon-color: var(--color-text-3);cursor:pointer;border-radius:50%;width:20px;height:16px;position:absolute;right:calc(var(--top-forms-border-width) + max(var(--top-icon2-width),var(--top-forms-padding) / 2));z-index:1;display:flex;align-items:center;justify-content:center}.top-input_cleaner[data-top-icon]:hover{--top-icon-color: var(--color-text-2)}.top-input_input{width:50%;flex-grow:1}.top-input .top-loadbar{border-radius:var(--top-forms-radius) 0 0 0}.top-input-datepicker{width:calc(105px + var(--top-icon-width) + var(--top-icon2-width))}.top-input_input-date{opacity:0;position:absolute;inset:0;z-index:-1}.top-input_input-date::-webkit-inner-spin-button{display:none}.top-input_input-date::-webkit-calendar-picker-indicator{opacity:0}.top-inputRange{max-width:320px;vertical-align:baseline;display:inline-flex;gap:8px}.top-inputRange_dash{height:var(--top-forms-base-height);color:var(--color-text-4);align-self:flex-end;display:inline-flex;align-items:center}.top-inputRange>.top-input{flex-grow:1}:root{--top-radio-background-color: var(--color-layout-front-1);--top-radio-background-color-hover: var(--top-radio-background-color);--top-radio-background-color-active: var(--top-radio-background-color)}.top-radio{cursor:pointer}.top-radio_input{border-radius:50%;background:var(--color-layout-front-1);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-radio_input:hover{border-color:var(--top-forms-border-color-hover);background:var(--color-layer-primary-1)}.top-radio_input:checked{border-color:var(--top-forms-option-color);border-width:5px}.top-radio_input:checked:hover{border-color:var(--color-bg-primary-2)}.top-radio_input.top-error,.top-radio_input.top-error:hover{border-color:var(--color-bg-negative-1)}.top-checkboxSwitcher{cursor:pointer;display:inline-flex;gap:4px}.top-checkboxSwitcher_input{border-radius:9px;border:none;background:var(--color-layer-3);width:36px;height:18px;position:relative}.top-checkboxSwitcher_input:before{content:"";border-radius:50%;background:var(--color-white);width:12px;height:12px;margin:3px;position:absolute;top:0;left:0;transition:left .1s}.top-checkboxSwitcher_input:hover{background:var(--color-layer-4)}.top-checkboxSwitcher_input:checked{background:var(--top-forms-option-color)}.top-checkboxSwitcher_input:checked:hover{background:var(--top-forms-option-color-hover)}.top-checkboxSwitcher_input:checked:before{left:50%}.top-checkboxSwitcher_input.top-error{background:var(--color-layer-negative-3)}.top-checkboxSwitcher_input.top-error:hover{background:var(--color-layer-negative-4)}.top-checkboxSwitcher_input.top-error:checked{background:var(--color-bg-negative-2)}.top-checkboxSwitcher_input.top-error:checked:hover{background:var(--color-bg-negative-1)}.top-textarea{width:180px;display:inline-flex;align-items:center;position:relative}.top-textarea_textarea{color:var(--color-text-1);width:100%;padding:var(--top-forms-padding);resize:none}html .top-textarea_textarea.top-textarea_textarea-expandable{width:100%;height:calc(100% + var(--top-forms-border-width) * 2);position:absolute;top:0;left:0}.top-textarea_pseudoContent{pointer-events:none;box-sizing:border-box;min-height:var(--v049aac9f);max-height:60vh;padding:var(--top-forms-padding);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;display:block;opacity:0;z-index:-1}.top-textarea_hint{height:var(--top-icon-width);display:flex;position:absolute;top:2px;right:2px}.top-textarea_counter{box-shadow:var(--top-forms-background-color) -2px -2px 4px;border-radius:8px;background:var(--top-forms-background-color);padding:var(--top-padding-1);color:var(--color-text-4);position:absolute;right:var(--top-scrollbar-width, var(--top-forms-border-width));bottom:var(--top-forms-border-width);z-index:1}.top-textarea_counter-max{color:var(--color-text-negative)}.top-select{color:var(--color-text-1);--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);align-items:center;width:180px;max-width:100%;display:inline-flex}.top-select-error{--top-icon-color: var(--color-text-negative);--top-icon2-color: var(--color-text-negative)}.top-select_select{padding-left:var(--top-forms-padding);text-indent:clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)));width:100%;height:var(--top-forms-base-height);text-overflow:ellipsis;white-space:nowrap;flex-grow:1;overflow:hidden}.top-select optgroup{color:var(--color-text-1);font-style:normal}.top-select option:not(:disabled){background:var(--color-layout-front-1);color:var(--color-text-1)}.top-select option:disabled{background:unset;color:unset}@-moz-document url-prefix(){.top-select_select{text-indent:calc(clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)))/2)}}@media only screen and (min-width: 900px){.top-changer{cursor:pointer;border-radius:100%;width:0;transform:translate(-44px);color:var(--color-text-2);font-size:16px;line-height:1;display:none;z-index:2;order:4}.top-changer:hover{color:var(--color-text-primary)}.top-changer:after{content:"";background-color:var(--top-forms-background-color);font-family:Topvisor-2}*:hover>.top-changer{display:block}}:root{--top-preloader-size: 12px;--top-preloader-color: var(--color-bg-primary-1)}.top-preloader-throbber{border-radius:50%;border:2px solid var(--top-preloader-color);border-top-color:transparent;border-left-color:transparent;width:var(--top-preloader-size);height:var(--top-preloader-size);display:inline-block;animation:top-preloader-throbber .9s linear infinite}@keyframes top-preloader-throbber{to{transform:rotate(360deg)}}.top-preloader-circles{--top-preloader-color: var(--color-line-1-opacity)}.top-preloader-circles>i{border-radius:100%;background-color:var(--top-preloader-color);width:var(--top-preloader-size);height:var(--top-preloader-size);vertical-align:middle;display:inline-block;animation-duration:.5s;animation-timing-function:linear;animation-iteration-count:infinite}.top-preloader-circles>i:first-child{animation-name:top-preloader-circles_1}.top-preloader-circles>i:not(:first-child):not(:last-child){animation-name:top-preloader-circles_2}.top-preloader-circles>i:last-child{animation-name:top-preloader-circles_3}@keyframes top-preloader-circles_1{0%{opacity:0;transform:translate(-12px)}30%{opacity:1;transform:translate(-2px)}to{transform:translate(6px)}}@keyframes top-preloader-circles_2{0%{transform:translate(-6px)}to{transform:translate(6px)}}@keyframes top-preloader-circles_3{0%{transform:translate(-6px)}70%{opacity:1;transform:translate(2px)}to{opacity:0;transform:translate(12px)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.top-menu{--scroll-thumb-color: var(--color-line-1);--scroll-thumb-color-hover: var(--color-line-2);--scroll-thumb-color-active: var(--color-line-3);max-width:100%;display:flex;align-items:flex-start;gap:var(--top-gap-2);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}.top-menu::-webkit-scrollbar{display:none}.top-menu .top-menu_item{--top-button-color: var(--color-text-2);outline-offset:-2px!important;min-width:0;max-width:200px;margin:0;flex-shrink:0}.top-menu .top-menu_item[data-top-icon]{--top-icon-color: var(--color-text-2)}.top-menu_selectAll{position:sticky;right:0;background:var(--color-layout-front-1);border-left:1px solid var(--color-line-1);padding-left:var(--top-padding-1);box-shadow:var(--color-layout-front-1) var(--top-padding-2) 0}.top-menu.top-style_default .top-menu_item{--top-forms-radius: 0;--top-forms-border-color: transparent;--top-forms-border-width: 2px;filter:none;box-shadow:none;border:none;border-bottom:var(--top-forms-border-width) solid var(--top-forms-border-color);background:none}.top-style_default>.top-menu_item>[data-top-badge]{margin-top:0}.top-menu.top-style_default .top-menu_item:hover{--top-icon-color: var(--color-text-1);--top-button-color: var(--color-text-1);--top-forms-border-color: var(--color-line-2)}.top-menu.top-style_default .top-menu_item:active,.top-menu.top-style_default .top-menu_item.top-active{--top-icon-color: var(--color-text-primary);--top-button-color: var(--color-text-1);--top-forms-border-color: var(--color-line-primary-1)}.top-menu.top-style_default .top-menu_selectAll{padding-left:var(--top-padding-2)}.top-menu.top-style_bar{border-radius:var(--top-radius-3);border:1px solid var(--color-line-2);padding:var(--top-padding-1);gap:3px}.top-menu.top-style_bar .top-menu_item{--top-button-background-color-hover: var(--color-layer-1);--top-button-background-color-active: var(--color-layer-2);--top-button-background-color-selected: var(--color-layer-primary-1);position:relative}.top-menu.top-style_bar .top-menu_item:hover{--top-icon-color: var(--color-text-1);--top-button-color: var(--color-text-1)}.top-menu.top-style_bar .top-menu_item.top-active{--top-icon-color: var(--color-text-primary);--top-button-color: var(--color-text-primary)}.top-menu.top-style_bar .top-menu_item:not(:first-child):not(.top-active):not(:hover):after{content:"";background:var(--color-line-1-opacity);width:1px;height:60%;display:block;position:absolute;left:-2px}.top-menu.top-style_bar .top-menu_item.top-active+.top-menu_item:after,.top-menu.top-style_bar .top-menu_item:hover+.top-menu_item:after{content:none!important}.top-selector2_itemMulti{box-sizing:border-box;padding-left:var(--top-padding-2);border-radius:var(--top-radius-1, 4px);border:1px solid var(--color-line-primary-1);background:var(--color-layer-primary-2);min-height:22px;max-width:100%;color:var(--color-text-1);flex-grow:0;display:inline-flex;align-items:center;gap:var(--top-gap-1)}.top-selector2_itemMultiDelete{--top-icon-size: 14px;--top-icon-width: 18px;--top-icon-color: var(--color-text-1);display:flex;align-items:center;justify-content:center;height:100%;cursor:pointer}.top-selector2_itemMultiDelete:hover{background:var(--color-layer-primary-2)}@media screen and (min-width: 900px){.top-selector2.top-active .top-selector2_itemMultiDelete{z-index:calc(var(--top-popup-z-index) + 1)}}.top-selector2{width:180px}.top-selector2::placeholder,.top-selector2_placeholder{color:var(--color-text-2)}.top-selector2_placeholder{padding-left:var(--top-padding-1)}.top-selector2.top-as-input{padding:var(--top-padding-1) var(--top-forms-padding)}.top-selector2.top-selector2-multiselect{width:auto;padding:var(--top-padding-1);flex-grow:1}.top-selector2.top-active{--top-forms-border-color: var(--top-forms-border-color-hover)}.top-selector2_activeItems{display:flex;flex-wrap:wrap;gap:var(--top-padding-1);max-width:100%}.top-selector2_activeName{white-space:nowrap}.top-changer-selector{width:auto;padding:var(--top-padding-1);margin:calc(0px - var(--top-padding-1));transform:translate(0)}.top-selector2.top-button{justify-content:start}.top-selector2.top-input_input~.top-changer-selector{transform:translate(-52px)}.top-selector2.top-as-selector{padding-right:calc(var(--top-selector-arrow-width) + var(--top-padding-2))}.top-editArea{--top-editArea-bottom: env(keyboard-inset-height, 0px);--top-editArea-offset-bottom: 0px;display:flex;flex-direction:column;gap:6px}.top-editArea_title{font-size:12px}.top-editArea_form{flex-direction:column}.top-textarea{width:100%}.top-editArea_element.top-textarea_textarea{--top-forms-border-width: 0px;outline:none;animation:none}.top-editArea_footer{padding:var(--top-forms-padding);display:flex;min-height:32px;align-self:flex-end;justify-content:flex-end;gap:var(--top-forms-padding)}.top-editArea-attachedToKeyboard{background:var(--top-forms-background-color);position:fixed;bottom:calc(var(--top-editArea-offset-bottom) + var(--top-editArea-bottom));right:0;left:0;z-index:2;gap:0;transition:bottom var(--transition-fast)}.top-editArea-attachedToKeyboard .top-editArea_form{border-radius:0;border:none;border-top:1px solid var(--top-forms-border-color)}.top-editArea-attachedToKeyboard .top-editArea_title{cursor:pointer;border-top:1px solid var(--color-line-2-opacity);padding:var(--top-forms-padding)}.top-editArea-attachedToKeyboard .top-editArea_footer>[data-top-icon]{border-radius:100%}@media screen and (max-width: 900px){.top-editArea_form{flex-direction:row}}.top-editInput{width:220px;flex-grow:1;display:flex;align-items:flex-end;gap:var(--top-gap-1)}.top-editInput .top-input{width:unset;flex-grow:1}.top-optionGroup{-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:8px;background-color:var(--color-layout-middle);height:var(--top-forms-base-height);padding:2px;gap:2px;display:flex;align-items:flex-start}.top-optionGroup_item{cursor:pointer;box-sizing:border-box;border-radius:6px;height:calc(var(--top-forms-base-height) - 4px);padding:1px var(--top-padding-2);color:var(--color-text-2);font-weight:400;white-space:nowrap;display:flex;align-items:center;justify-content:center;flex-grow:1;gap:var(--top-gap-1)}.top-optionGroup_item:hover{background-color:var(--color-layout-front-1);box-shadow:0 4px 32px #0409541a,0 0 4px #04095414}.top-optionGroup_item-selected{color:var(--color-text-1);background-color:var(--color-bg-lightning-1);box-shadow:0 4px 32px #0409541a,0 0 4px #04095414}.top-optionGroup_item>.top-forms-optionLabel{flex-grow:0}.top-optionGroup-showIndicator_0>.top-optionGroup_item{justify-content:center}.top-optionGroup-showIndicator_0>.top-optionGroup_item:has(:focus-visible){outline:2px solid var(--color-bg-primary-2);outline-offset:-1px}.top-optionGroup-showIndicator_1>.top-optionGroup_item{padding:1px 3px;justify-content:flex-start}.top-optionGroup-showIndicator_0>.top-optionGroup_item>.top-forms-option{opacity:0;width:0;height:0;position:absolute}.top-optionGroup_item>.top-forms-option{order:-1}.top-info{--top-icon-width: var(--top-icon-size);border-radius:var(--top-forms-radius);box-sizing:border-box;min-height:var(--top-forms-base-height);padding:var(--top-padding-1) var(--top-padding-2);flex-grow:5;display:flex;align-items:center;justify-content:space-between;gap:var(--top-gap-2)}.top-info_text{flex-grow:1}.top-info_value{font-weight:700}.top-info.top-size_default{border-radius:var(--top-radius-3);padding:var(--top-padding-4)}.top-info-styling_default{--top-icon-color: var(--color-text-2);background:var(--color-layer-1)}.top-info-styling_info{--top-icon-color: var(--color-text-primary);background:var(--color-layer-primary-1)}.top-info-styling_warning{--top-icon-color: var(--color-text-warning);background:var(--color-layer-warning-1)}.top-info-styling_negative{--top-icon-color: var(--color-text-negative);background:var(--color-layer-negative-1)}.top-policy{box-sizing:border-box;box-shadow:var(--top-shadow-b);border-radius:var(--top-radius-4);background:var(--color-bg-lightning-1);width:600px;padding:var(--top-padding-4);position:fixed;right:var(--top-gap-10);bottom:var(--top-gap-10);display:flex;flex-direction:column;gap:var(--top-gap-4);z-index:10000}.top-policy_title{font-size:24px;font-weight:700}.top-policy_description{font-size:14px}@media screen and (max-width: 900px){.top-policy{width:100%;right:0;bottom:calc(var(--top-gap-5) + var(--toolbar-height, 0px))}}
|
package/assets/popupHint.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.top-input-popupWidgetInput{--top-loadbar-color: var(--color-line-2);width:100%}.top-input_input-popupWidgetInput{border:none;background:var(--color-layer-1)}.top-input_input-popupWidgetInput:hover{background:var(--color-layer-2)}.top-input_input-popupWidgetInput:focus{background:var(--color-layer-1);outline:unset}.top-popupHint_opener{cursor:pointer}.top-popupHint_opener.top-active{color:var(--color-text-2)}
|
|
1
|
+
h3[data-top-popup],div[data-top-popup],i[data-top-popup]:not(.btn),b[data-top-popup]:not(.btn){cursor:pointer;-webkit-user-select:none;user-select:none;font-style:normal;text-decoration:none;display:inline-flex;align-items:center}i[contenteditable]{cursor:text!important}.top-popup_footerSupportLink{margin-right:auto}.top-input-popupWidgetInput{--top-loadbar-color: var(--color-line-2);width:100%}.top-input_input-popupWidgetInput{border:none;background:var(--color-layer-1)}.top-input_input-popupWidgetInput:hover{background:var(--color-layer-2)}.top-input_input-popupWidgetInput:focus{background:var(--color-layer-1);outline:unset}.top-popupHint_opener{cursor:pointer}.top-popupHint_opener.top-active{color:var(--color-text-2)}
|
package/assets/project.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.top-
|
|
1
|
+
.top-competitorSelector_opener.top-button{width:100%}.top-select-searcher_key[data-value="0"]:after,.top-select-searcher_key[data-value="20"]:after,.top-select-searcher_key[data-value="21"]:after{color:red}.top-select-searcher_key[data-value="1"]:after{color:var(--color-bg-primary-2)}.top-select-searcher_key[data-value="2"]:after{color:#005ff9}.top-select-searcher_key[data-value="3"]:after{color:#01509b}.top-select-searcher_key[data-value="4"]:after{color:red}.top-select-searcher_key[data-value="5"]:after{color:#008373}.top-select-searcher_key[data-value="6"]:after{color:#4800b5}.top-select-searcher_key[data-value="7"]:after{color:#c00}.top-select-searcher_key[data-value="8"]:after{color:#1badf8}.top-select-searcher_key[data-value="9"]:after{color:#00ceff}.top-selectorRegion{width:340px;display:inline-flex;vertical-align:middle}.top-selectorRegion>.top-select{flex-grow:1}.top-selectorRegion>.top-select:focus-within{z-index:4}.top-selectorRegion>.top-select>.top-select_select:hover,.top-selectorRegion>.top-select>.top-select_select.top-error{z-index:1}.top-selectorRegion>.top-select-searcher_key{width:140px;max-width:160px;margin-right:-1px}.top-selectorRegion>.top-select-region>select{border-top-left-radius:0;border-bottom-left-radius:0}.top-selectorRegion>.top-select-region{--top-icon-size: 20px;--top-icon-color: var(--color-text-primary);--top-icon2-size: 20px;--top-icon2-color: var(--color-text-primary)}.top-selectorRegion>.top-select-region[data-top-icon][data-top-icon2]{--top-icon2-size: 16px}.top-selectorRegion>.top-select-region[data-top-icon][data-top-icon2]:after{text-indent:-4px}.top-selectorRegion>[name=compare]{border-top-left-radius:0;border-bottom-left-radius:0;flex-grow:1}.top-selectorRegion>[name=compare]:after{content:"(" attr(data-count-compare-regions-indexes) ")";margin:0 0 0 6px}.top-selectorRegion:not(.top-selectorRegion-onlySearcher)>.top-select-searcher_key>select{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.top-selectorRegion:not(.top-selectorRegion-onlySearcher)>.top-select-searcher_key[data-value="-1"]>select{border-right:none}.top-selectorRegion-onlySearcher{width:140px}.top-groupSelector_groupItem{display:flex;flex-direction:column;gap:var(--top-padding-1)}.top-groupSelector_groupItemFolderPath{width:100%;color:var(--color-text-4);font-size:12px}.top-groupSelector{display:inline-flex;gap:var(--top-padding-1)}[data-tag_id]{display:inline-flex;gap:var(--top-gap-2);align-items:center}[data-tag_id=""]{border-color:#bdc3c7!important;color:#55555f!important}[data-tag_color_id="1"]{border-color:var(--color-tag-1)!important;color:#55555f!important}[data-tag_color_id="2"]{border-color:var(--color-tag-2)!important;color:var(--color-tag-2)!important}[data-tag_color_id="3"]{border-color:var(--color-tag-3)!important;color:var(--color-tag-3)!important}[data-tag_color_id="4"]{border-color:var(--color-tag-4)!important;color:var(--color-tag-4)!important}[data-tag_color_id="5"]{border-color:var(--color-tag-5)!important;color:var(--color-tag-5)!important}[data-tag_color_id="6"]{border-color:var(--color-tag-6)!important;color:var(--color-tag-6)!important}[data-tag_color_id="7"]{border-color:var(--color-tag-7)!important;color:var(--color-tag-7)!important}[data-tag_color_id="8"]{border-color:var(--color-tag-8)!important;color:var(--color-tag-8)!important}[data-tag_color_id="9"]{border-color:var(--color-tag-9)!important;color:var(--color-tag-9)!important}[data-tag_color_id="10"]{border-color:var(--color-tag-10)!important;color:var(--color-tag-10)!important}[data-tag_id=""].top-tagSelector-active{background:#bdc3c7!important}[data-tag_color_id="1"].top-tagSelector-active{background:var(--color-tag-1)!important}[data-tag_color_id="2"].top-tagSelector-active{background:var(--color-tag-2)!important}[data-tag_color_id="3"].top-tagSelector-active{background:var(--color-tag-3)!important}[data-tag_color_id="4"].top-tagSelector-active{background:var(--color-tag-4)!important}[data-tag_color_id="5"].top-tagSelector-active{background:var(--color-tag-5)!important}[data-tag_color_id="6"].top-tagSelector-active{background:var(--color-tag-6)!important}[data-tag_color_id="7"].top-tagSelector-active{background:var(--color-tag-7)!important}[data-tag_color_id="8"].top-tagSelector-active{background:var(--color-tag-8)!important}[data-tag_color_id="9"].top-tagSelector-active{background:var(--color-tag-9)!important}[data-tag_color_id="10"].top-tagSelector-active{background:var(--color-tag-10)!important}[data-tag_id=all]{border-color:transparent!important;background:none!important}[data-tag_id=all]:before{content:"";color:var(--color-tag-all)!important;font-size:26px;min-width:calc(100% + 4px);height:calc(100% + 4px);margin-top:-18px;margin-left:-8px}.top-tagSelector-useTopButton [data-tag_id],.top-tagSelector_popup [data-tag_id]{--top-tag-selector-size: 10px;box-sizing:content-box;border-radius:100%;border:2px solid var(--color-layout-front-1);background:var(--color-layout-front-1);width:var(--top-tag-selector-size);height:var(--top-tag-selector-size);font-size:calc(var(--top-tag-selector-size) + 4px)}.top-body-press_ctrl .top-tagSelector_tagListItem-canExclude:hover [data-tag_id],[data-tag_id].top-tagSelector-excluded{position:relative}.top-body-press_ctrl .top-tagSelector_tagListItem-canExclude:hover [data-tag_id]:before,[data-tag_id].top-tagSelector-excluded:before{content:"";width:calc(var(--top-tag-selector-size) * 2);height:1px;background:inherit;transform:rotate(-45deg);filter:brightness(80%);display:block;position:absolute;top:calc(var(--top-tag-selector-size) / 2);left:calc(0px - var(--top-tag-selector-size) / 2)}.top-body-press_ctrl .top-tagSelector_tagListItem-canExclude:hover [data-tag_id]:not([data-tag_id=all]):not(.top-tagSelector-active):before{background:#aaa}[data-tag_id].top-tagSelector-excluded:after,[data-tag_id].top-tagSelector-excluded~.top-tagSelector_tagListItemName{text-decoration:line-through}.top-popup_listItem.top-tagSelector-active{background:var(--top-popup-background-color-active)!important}.top-popup_listItem:hover [data-tag_id=all]:before{border-color:var(--top-popup-background-color-hover)}.top-popup_listItem.top-tagSelector-active [data-tag_id=all]:before,.top-popup_listItem.top-active [data-tag_id=all]:before{border-color:var(--top-popup-background-color-active)}.top-tagSelector_tagListItem.top-popup_listItem{padding-top:var(--top-padding-2)!important;padding-bottom:var(--top-padding-2)!important;gap:10px}.top-tagSelector_tagListItemName{border-radius:var(--top-radius-1);width:120px;padding:4px 2px;margin:-4px -2px;text-overflow:ellipsis;overflow:hidden;flex-grow:1}.top-tagSelector_edit{--top-icon-size: 18px;--top-icon-color: var(--color-text-3);width:20px;flex-grow:0}.top-tagSelector_edit:before{line-height:0}.top-tagSelector_edit{opacity:0}.top-tagSelector_edit:hover{--top-icon-color: var(--color-text-primary)}.top-tagSelector_tagListItem:hover .top-tagSelector_edit,.top-tagSelector_tagListItem-inEdit .top-tagSelector_edit{cursor:pointer;opacity:1}.top-tagSelector_tagListItem-inEdit{background:var(--color-layout-front-3)!important;outline:1px dashed var(--color-line-2);outline-offset:-1px}.top-tagSelector_tagListItem-inEdit .top-tagSelector_tagListItemName{cursor:text;background:var(--color-layout-front-1)}.top-tagSelector_tagListItem-disabled{cursor:not-allowed!important;opacity:.85}.top-tagSelector_tagListItem-disabled:hover{background:inherit}.top-tagSelector_tagListItem-disabled [data-tag_id]{opacity:.6}.top-tagSelector{cursor:pointer;min-width:0;white-space:nowrap;justify-content:left}.top-tagSelector-useTopButton{width:112px;gap:var(--top-gap-1);vertical-align:middle}.top-tagSelector.top-button.top-as-selector{width:120px}.top-tagSelector-useTopButton [data-tag_id=all]:before{margin-right:6px}.top-tagSelector-useTopButton.top-tagSelector-selectedOne [data-tag_id]:after{content:attr(title);margin-left:20px;min-width:74px;text-align:left;line-height:1.2;text-overflow:ellipsis;overflow:hidden}.top-tagSelector-useTopButton.top-tagSelector-selectedOne [data-tag_id=all]:after{margin-left:0}.top-button.top-tagSelector-useTopButton.top-tagSelector-toTwoLine{flex-wrap:wrap;align-content:center}.top-button.top-tagSelector-useTopButton.top-tagSelector-toTwoLine [data-tag_id]{--top-tag-selector-size: 8px}.top-button.top-tagSelector-useTopButton.top-tagSelector-toTwoLine [data-tag_id]:nth-child(5){margin-right:5px}.top-tagSelector-useTopButton.top-tagSelector-setter_several,.top-tagSelector-useTopButton.top-tagSelector-setter_several.top-as-selector{width:auto}.top-tagSelector-custom{position:relative;display:flex!important;flex-direction:column;flex-wrap:wrap;align-items:stretch!important}.top-tagSelector-custom [data-tag_id]{width:auto;min-height:20%;min-width:50%;flex:1 1 auto}.top-tagSelector_popup .top-popup{-webkit-user-select:none;user-select:none;min-width:220px!important;text-align:left}.top-tagSelector_popup .top-popup_header .top-select{flex-grow:1}
|
package/charts/charts.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","../.chunks/forms-
|
|
1
|
+
define(["require","exports","vue","../.chunks/forms-CUSCBQu3.amd","../utils/number.amd","../require/css.amd!../assets/charts.css"],(function(x,C,e,M,g){"use strict";if(typeof e>"u")var e=window.Vue;const k=90,y=10,V=["data-top-icon"],B={class:"top-miniChart_chart"},b=["onMouseenter"],E={class:"top-miniChart_data"},w={class:"top-miniChart_dataValue"},D=["innerHTML"],N=e.defineComponent({__name:"miniChart",props:e.mergeModels({title:{},gIcon:{},color:{default:"blue"},dates:{},values:{},activeDates:{},keysForDyn:{},dynamic:{},isInvert:{type:Boolean},numberCols:{default:k},additionalHTML:{},modelValue:{},valueSuffix:{},hideChartInMobile:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const n=l,c=e.useModel(l,"modelValue"),r=t=>{let o=u.value;n.isInvert&&(t-=1,o-=1);let i=o>0?Math.round(t/o*(100-y)):0;return n.isInvert?100-i:i+y},v=t=>n.activeDates.includes(t),u=e.computed(()=>Math.max(...n.values)),d=e.computed(()=>n.dates.slice().reverse()),h=e.computed(()=>n.dates.length?n.numberCols-n.dates.length:0),p=()=>{c.value=null},s=(t,o,i)=>{t.target instanceof HTMLElement&&(c.value={elCol:t.target,date:M.dateFormat(o),value:i===null?"--":i+(n.valueSuffix??"")})},a=e.computed(()=>{let t=n.dynamic;if(typeof t>"u"){const i=n.values[n.keysForDyn.start];t=n.values[n.keysForDyn.end]-i}return(t<0?-1:1)*g.percentOfNumber(Math.abs(t))}),m=e.computed(()=>{let t="stay";return n.isInvert?(a.value>0&&(t="down"),a.value<0&&(t="up")):(a.value>0&&(t="up"),a.value<0&&(t="down")),t});return(t,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-miniChart":!0,"top-miniChart_hideChartInMobile":l.hideChartInMobile,[`top-color_${l.color}`]:!0})},[e.createElementVNode("div",{class:"top-miniChart_title top-ellipsis","data-top-icon":l.gIcon},e.toDisplayString(l.title),9,V),e.createElementVNode("div",B,[e.createElementVNode("div",{class:"top-miniChart_chartGrid",onMouseleave:o[1]||(o[1]=i=>p())},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(i,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-miniChart_chartGridCol":!0,"top-active":v(i)}),onMouseenter:T=>s(T,i,l.values[l.values.length-f-1])},[e.createElementVNode("div",{style:e.normalizeStyle("height:"+r(l.values[l.values.length-f-1])+"%")},null,4)],42,b))),256)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,()=>(e.openBlock(),e.createElementBlock("div",{class:"top-miniChart_chartGridCol top-miniChart_chartGridCol-none",onMouseenter:o[0]||(o[0]=i=>p())},[...o[2]||(o[2]=[e.createElementVNode("div",null,null,-1)])],32))),256))],32)]),e.createElementVNode("div",E,[e.createElementVNode("span",{class:e.normalizeClass({"top-miniChart_dataDynamic":!0,[`top-miniChart_dataDynamic-direction_${m.value}`]:!0})},e.toDisplayString(Math.abs(a.value)||""),3),e.createElementVNode("span",w,e.toDisplayString(e.unref(g.percentOfNumber)(l.values[l.values.length-1])||0),1)]),l.additionalHTML?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:l.additionalHTML},null,8,D)):e.createCommentVNode("",!0)],2))}}),S={key:0,class:"top-miniCharts_pages"},H=["onClick"],I=e.defineComponent({__name:"miniCharts",props:e.mergeModels({modelValue:{},countCharts:{},hideChartInMobile:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const n=l,c=e.useModel(l,"modelValue"),r=e.ref(null);let v;const u=e.ref(1),d=e.ref(1),h=()=>{u.value=Math.round(r.value.scrollHeight/r.value.clientHeight)};e.watch(u,()=>{u.value<d.value&&(d.value=1)}),e.watch(()=>n.countCharts,()=>h(),{flush:"post"});const p=e.computed(()=>{if(!c.value)return{};const s=c.value.elCol.getBoundingClientRect(),a={top:s.bottom+window.scrollY+"px"};return document.documentElement.clientWidth/2>s.right?a.left=s.right+window.scrollX+10+"px":(a.left=s.left+window.scrollX-10+"px",a.transform="translate(-100%, 0)"),a});return e.onMounted(()=>{v=new ResizeObserver(()=>h()),v.observe(r.value),e.watch(d,()=>{const m=(r.value.children[0].clientHeight+parseInt(window.getComputedStyle(r.value).getPropertyValue("row-gap")))*(d.value-1);r.value.scrollTo({top:m,behavior:"smooth"})})}),e.onUnmounted(()=>{v.disconnect()}),(s,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["top-miniCharts",{"top-miniCharts":!0,scrollable:u.value>1,"top-miniCharts_hideChartInMobile":l.hideChartInMobile}]),ref_key:"elRef",ref:r},[e.renderSlot(s.$slots,"default"),u.value>1?(e.openBlock(),e.createElementBlock("div",S,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,m=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass({"top-active":m===d.value}),onClick:t=>d.value=m},null,10,H))),256))])):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[c.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-miniCharts_tooltip",style:e.normalizeStyle(p.value)},[e.createElementVNode("span",null,e.toDisplayString(c.value.date),1),e.createElementVNode("span",null,e.toDisplayString(c.value.value),1)],4)):e.createCommentVNode("",!0)]))],2))}});C.TopMiniChart=N,C.TopMiniCharts=I,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=charts.amd.js.map
|
package/charts/charts.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.amd.js","sources":["../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"],"names":["genColHeight","value","maximumValue","maxValue","props","isActiveDate","date","vue","reversedDates","numOfEmptyCols","model","e","forms","localDynamic","dynamic","prevPeriodValue","dynamicDirection","direction","_hoisted_2$1","_cache","$event","resetModel","_hoisted_5","utils_number","
|
|
1
|
+
{"version":3,"file":"charts.amd.js","sources":["../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"],"names":["genColHeight","value","maximumValue","maxValue","props","isActiveDate","date","vue","reversedDates","numOfEmptyCols","model","e","forms","localDynamic","dynamic","prevPeriodValue","dynamicDirection","direction","_hoisted_2$1","_cache","$event","resetModel","_hoisted_5","utils_number","__props","_hoisted_6","elRef","pagesResizeObserver","countPages","activePage","tooltipStyle","box","style","scrollTop","_hoisted_1","n","_hoisted_2"],"mappings":"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"}
|
package/charts/charts.js
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
const fileNames = ['../assets/charts.css'].map(fileName => import.meta.resolve(fileName));
|
|
4
4
|
_autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
|
|
5
5
|
|
|
6
|
-
import { defineComponent as T, mergeModels as $, useModel as
|
|
7
|
-
import {
|
|
8
|
-
import { percentOfNumber as
|
|
9
|
-
const
|
|
6
|
+
import { defineComponent as T, mergeModels as $, useModel as _, computed as C, createElementBlock as s, openBlock as i, normalizeClass as f, createElementVNode as r, createCommentVNode as H, toDisplayString as g, Fragment as I, renderList as k, normalizeStyle as B, unref as S, ref as V, watch as w, onMounted as E, onUnmounted as F, renderSlot as P, createBlock as R, Teleport as z } from "vue";
|
|
7
|
+
import { c as G } from "../.chunks/forms-BseC3Ftz.es.js";
|
|
8
|
+
import { percentOfNumber as D } from "../utils/number.js";
|
|
9
|
+
const N = 90, x = 10, O = ["data-top-icon"], X = { class: "top-miniChart_chart" }, A = ["onMouseenter"], U = { class: "top-miniChart_data" }, W = { class: "top-miniChart_dataValue" }, Y = ["innerHTML"], Z = /* @__PURE__ */ T({
|
|
10
10
|
__name: "miniChart",
|
|
11
11
|
props: /* @__PURE__ */ $({
|
|
12
12
|
title: {},
|
|
@@ -18,7 +18,7 @@ const O = 90, D = 10, X = ["data-top-icon"], A = { class: "top-miniChart_chart"
|
|
|
18
18
|
keysForDyn: {},
|
|
19
19
|
dynamic: {},
|
|
20
20
|
isInvert: { type: Boolean },
|
|
21
|
-
numberCols: { default:
|
|
21
|
+
numberCols: { default: N },
|
|
22
22
|
additionalHTML: {},
|
|
23
23
|
modelValue: {},
|
|
24
24
|
valueSuffix: {},
|
|
@@ -28,85 +28,85 @@ const O = 90, D = 10, X = ["data-top-icon"], A = { class: "top-miniChart_chart"
|
|
|
28
28
|
modelModifiers: {}
|
|
29
29
|
}),
|
|
30
30
|
emits: ["update:modelValue"],
|
|
31
|
-
setup(
|
|
32
|
-
const
|
|
33
|
-
let
|
|
34
|
-
|
|
35
|
-
let
|
|
36
|
-
return
|
|
37
|
-
},
|
|
31
|
+
setup(t) {
|
|
32
|
+
const l = t, d = _(t, "modelValue"), u = (e) => {
|
|
33
|
+
let n = m.value;
|
|
34
|
+
l.isInvert && (e -= 1, n -= 1);
|
|
35
|
+
let o = n > 0 ? Math.round(e / n * (100 - x)) : 0;
|
|
36
|
+
return l.isInvert ? 100 - o : o + x;
|
|
37
|
+
}, p = (e) => l.activeDates.includes(e), m = C(() => Math.max(...l.values)), v = C(() => l.dates.slice().reverse()), y = C(() => l.dates.length ? l.numberCols - l.dates.length : 0), M = () => {
|
|
38
38
|
d.value = null;
|
|
39
|
-
},
|
|
39
|
+
}, c = (e, n, o) => {
|
|
40
40
|
e.target instanceof HTMLElement && (d.value = {
|
|
41
41
|
elCol: e.target,
|
|
42
|
-
date:
|
|
43
|
-
value:
|
|
42
|
+
date: G(n),
|
|
43
|
+
value: o === null ? "--" : o + (l.valueSuffix ?? "")
|
|
44
44
|
});
|
|
45
|
-
},
|
|
46
|
-
let e =
|
|
45
|
+
}, a = C(() => {
|
|
46
|
+
let e = l.dynamic;
|
|
47
47
|
if (typeof e > "u") {
|
|
48
|
-
const
|
|
49
|
-
e =
|
|
48
|
+
const o = l.values[l.keysForDyn.start];
|
|
49
|
+
e = l.values[l.keysForDyn.end] - o;
|
|
50
50
|
}
|
|
51
|
-
return (e < 0 ? -1 : 1) *
|
|
52
|
-
}),
|
|
51
|
+
return (e < 0 ? -1 : 1) * D(Math.abs(e));
|
|
52
|
+
}), h = C(() => {
|
|
53
53
|
let e = "stay";
|
|
54
|
-
return
|
|
54
|
+
return l.isInvert ? (a.value > 0 && (e = "down"), a.value < 0 && (e = "up")) : (a.value > 0 && (e = "up"), a.value < 0 && (e = "down")), e;
|
|
55
55
|
});
|
|
56
|
-
return (e,
|
|
56
|
+
return (e, n) => (i(), s("div", {
|
|
57
57
|
class: f({
|
|
58
58
|
"top-miniChart": !0,
|
|
59
|
-
"top-miniChart_hideChartInMobile":
|
|
60
|
-
[`top-color_${
|
|
59
|
+
"top-miniChart_hideChartInMobile": t.hideChartInMobile,
|
|
60
|
+
[`top-color_${t.color}`]: !0
|
|
61
61
|
})
|
|
62
62
|
}, [
|
|
63
63
|
r("div", {
|
|
64
64
|
class: "top-miniChart_title top-ellipsis",
|
|
65
|
-
"data-top-icon":
|
|
66
|
-
}, g(
|
|
67
|
-
r("div",
|
|
65
|
+
"data-top-icon": t.gIcon
|
|
66
|
+
}, g(t.title), 9, O),
|
|
67
|
+
r("div", X, [
|
|
68
68
|
r("div", {
|
|
69
69
|
class: "top-miniChart_chartGrid",
|
|
70
|
-
onMouseleave:
|
|
70
|
+
onMouseleave: n[1] || (n[1] = (o) => M())
|
|
71
71
|
}, [
|
|
72
|
-
(
|
|
72
|
+
(i(!0), s(I, null, k(v.value, (o, b) => (i(), s("div", {
|
|
73
73
|
class: f({
|
|
74
74
|
"top-miniChart_chartGridCol": !0,
|
|
75
|
-
"top-active":
|
|
75
|
+
"top-active": p(o)
|
|
76
76
|
}),
|
|
77
|
-
onMouseenter: (
|
|
77
|
+
onMouseenter: (L) => c(L, o, t.values[t.values.length - b - 1])
|
|
78
78
|
}, [
|
|
79
79
|
r("div", {
|
|
80
|
-
style:
|
|
80
|
+
style: B("height:" + u(t.values[t.values.length - b - 1]) + "%")
|
|
81
81
|
}, null, 4)
|
|
82
|
-
], 42,
|
|
83
|
-
(
|
|
82
|
+
], 42, A))), 256)),
|
|
83
|
+
(i(!0), s(I, null, k(y.value, () => (i(), s("div", {
|
|
84
84
|
class: "top-miniChart_chartGridCol top-miniChart_chartGridCol-none",
|
|
85
|
-
onMouseenter:
|
|
86
|
-
}, [...
|
|
85
|
+
onMouseenter: n[0] || (n[0] = (o) => M())
|
|
86
|
+
}, [...n[2] || (n[2] = [
|
|
87
87
|
r("div", null, null, -1)
|
|
88
88
|
])], 32))), 256))
|
|
89
89
|
], 32)
|
|
90
90
|
]),
|
|
91
|
-
r("div",
|
|
91
|
+
r("div", U, [
|
|
92
92
|
r("span", {
|
|
93
93
|
class: f({
|
|
94
94
|
"top-miniChart_dataDynamic": !0,
|
|
95
|
-
[`top-miniChart_dataDynamic-direction_${
|
|
95
|
+
[`top-miniChart_dataDynamic-direction_${h.value}`]: !0
|
|
96
96
|
})
|
|
97
|
-
}, g(Math.abs(
|
|
98
|
-
r("span",
|
|
97
|
+
}, g(Math.abs(a.value) || ""), 3),
|
|
98
|
+
r("span", W, g(S(D)(t.values[t.values.length - 1]) || 0), 1)
|
|
99
99
|
]),
|
|
100
|
-
|
|
100
|
+
t.additionalHTML ? (i(), s("div", {
|
|
101
101
|
key: 0,
|
|
102
|
-
innerHTML:
|
|
103
|
-
}, null, 8,
|
|
102
|
+
innerHTML: t.additionalHTML
|
|
103
|
+
}, null, 8, Y)) : H("", !0)
|
|
104
104
|
], 2));
|
|
105
105
|
}
|
|
106
|
-
}),
|
|
106
|
+
}), j = {
|
|
107
107
|
key: 0,
|
|
108
108
|
class: "top-miniCharts_pages"
|
|
109
|
-
},
|
|
109
|
+
}, q = ["onClick"], ee = /* @__PURE__ */ T({
|
|
110
110
|
__name: "miniCharts",
|
|
111
111
|
props: /* @__PURE__ */ $({
|
|
112
112
|
modelValue: {},
|
|
@@ -117,64 +117,64 @@ const O = 90, D = 10, X = ["data-top-icon"], A = { class: "top-miniChart_chart"
|
|
|
117
117
|
modelModifiers: {}
|
|
118
118
|
}),
|
|
119
119
|
emits: ["update:modelValue"],
|
|
120
|
-
setup(
|
|
121
|
-
const
|
|
122
|
-
let
|
|
123
|
-
const
|
|
124
|
-
|
|
120
|
+
setup(t) {
|
|
121
|
+
const l = t, d = _(t, "modelValue"), u = V(null);
|
|
122
|
+
let p;
|
|
123
|
+
const m = V(1), v = V(1), y = () => {
|
|
124
|
+
m.value = Math.round(u.value.scrollHeight / u.value.clientHeight);
|
|
125
125
|
};
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}),
|
|
129
|
-
() =>
|
|
126
|
+
w(m, () => {
|
|
127
|
+
m.value < v.value && (v.value = 1);
|
|
128
|
+
}), w(
|
|
129
|
+
() => l.countCharts,
|
|
130
130
|
() => y(),
|
|
131
131
|
{ flush: "post" }
|
|
132
132
|
);
|
|
133
|
-
const M =
|
|
133
|
+
const M = C(() => {
|
|
134
134
|
if (!d.value) return {};
|
|
135
|
-
const
|
|
136
|
-
top:
|
|
135
|
+
const c = d.value.elCol.getBoundingClientRect(), a = {
|
|
136
|
+
top: c.bottom + window.scrollY + "px"
|
|
137
137
|
};
|
|
138
|
-
return document.documentElement.clientWidth / 2 >
|
|
138
|
+
return document.documentElement.clientWidth / 2 > c.right ? a.left = c.right + window.scrollX + 10 + "px" : (a.left = c.left + window.scrollX - 10 + "px", a.transform = "translate(-100%, 0)"), a;
|
|
139
139
|
});
|
|
140
|
-
return
|
|
141
|
-
|
|
142
|
-
const
|
|
143
|
-
u.value.scrollTo({ top:
|
|
140
|
+
return E(() => {
|
|
141
|
+
p = new ResizeObserver(() => y()), p.observe(u.value), w(v, () => {
|
|
142
|
+
const h = (u.value.children[0].clientHeight + parseInt(window.getComputedStyle(u.value).getPropertyValue("row-gap"))) * (v.value - 1);
|
|
143
|
+
u.value.scrollTo({ top: h, behavior: "smooth" });
|
|
144
144
|
});
|
|
145
|
-
}),
|
|
146
|
-
|
|
147
|
-
}), (
|
|
145
|
+
}), F(() => {
|
|
146
|
+
p.disconnect();
|
|
147
|
+
}), (c, a) => (i(), s("div", {
|
|
148
148
|
class: f(["top-miniCharts", {
|
|
149
149
|
"top-miniCharts": !0,
|
|
150
|
-
scrollable:
|
|
151
|
-
"top-miniCharts_hideChartInMobile":
|
|
150
|
+
scrollable: m.value > 1,
|
|
151
|
+
"top-miniCharts_hideChartInMobile": t.hideChartInMobile
|
|
152
152
|
}]),
|
|
153
153
|
ref_key: "elRef",
|
|
154
154
|
ref: u
|
|
155
155
|
}, [
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
(
|
|
159
|
-
class: f({ "top-active":
|
|
160
|
-
onClick: (e) =>
|
|
161
|
-
}, null, 10,
|
|
162
|
-
])) :
|
|
163
|
-
(
|
|
164
|
-
d.value ? (
|
|
156
|
+
P(c.$slots, "default"),
|
|
157
|
+
m.value > 1 ? (i(), s("div", j, [
|
|
158
|
+
(i(!0), s(I, null, k(m.value, (h) => (i(), s("span", {
|
|
159
|
+
class: f({ "top-active": h === v.value }),
|
|
160
|
+
onClick: (e) => v.value = h
|
|
161
|
+
}, null, 10, q))), 256))
|
|
162
|
+
])) : H("", !0),
|
|
163
|
+
(i(), R(z, { to: "body" }, [
|
|
164
|
+
d.value ? (i(), s("div", {
|
|
165
165
|
key: 0,
|
|
166
166
|
class: "top-miniCharts_tooltip",
|
|
167
|
-
style:
|
|
167
|
+
style: B(M.value)
|
|
168
168
|
}, [
|
|
169
169
|
r("span", null, g(d.value.date), 1),
|
|
170
170
|
r("span", null, g(d.value.value), 1)
|
|
171
|
-
], 4)) :
|
|
171
|
+
], 4)) : H("", !0)
|
|
172
172
|
]))
|
|
173
173
|
], 2));
|
|
174
174
|
}
|
|
175
175
|
});
|
|
176
176
|
export {
|
|
177
|
-
|
|
177
|
+
Z as TopMiniChart,
|
|
178
178
|
ee as TopMiniCharts
|
|
179
179
|
};
|
|
180
180
|
//# sourceMappingURL=charts.js.map
|
package/charts/charts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.js","sources":["../../src/components/charts/miniChart/utils/consts.ts","../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"sourcesContent":["/**\n * Кол-во столбцов по умолчанию\n */\nexport const defaultNumberCols = 90;\n\n/**\n * Минимальная высота колонки (в процентах)\n */\nexport const minHeight = 10; // %","<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"],"names":["defaultNumberCols","minHeight","props","__props","model","_useModel","genColHeight","value","maximumValue","maxValue","height","isActiveDate","date","computed","reversedDates","numOfEmptyCols","resetModel","setModel","dateFormat","localDynamic","dynamic","prevPeriodValue","percentOfNumber","dynamicDirection","direction","_createElementBlock","_normalizeClass","hideChartInMobile","color","_createElementVNode","gIcon","title","_hoisted_1","_hoisted_2","_openBlock","_Fragment","_renderList","i","$event","values","_normalizeStyle","_hoisted_4","_hoisted_5","_toDisplayString","_unref","additionalHTML","elRef","ref","pagesResizeObserver","countPages","activePage","setCountPages","watch","tooltipStyle","box","style","onMounted","scrollTop","onUnmounted","_renderSlot","_ctx","n","_createBlock","_Teleport"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"charts.js","sources":["../../src/components/charts/miniChart/utils/consts.ts","../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"sourcesContent":["/**\n * Кол-во столбцов по умолчанию\n */\nexport const defaultNumberCols = 90;\n\n/**\n * Минимальная высота колонки (в процентах)\n */\nexport const minHeight = 10; // %","<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"],"names":["defaultNumberCols","minHeight","props","__props","model","_useModel","genColHeight","value","maximumValue","maxValue","height","isActiveDate","date","computed","reversedDates","numOfEmptyCols","resetModel","setModel","dateFormat","localDynamic","dynamic","prevPeriodValue","percentOfNumber","dynamicDirection","direction","_createElementBlock","_normalizeClass","_createElementVNode","_hoisted_1","_hoisted_2","_openBlock","_Fragment","_renderList","i","$event","_normalizeStyle","_hoisted_4","_hoisted_5","_toDisplayString","_unref","elRef","ref","pagesResizeObserver","countPages","activePage","setCountPages","watch","tooltipStyle","box","style","onMounted","scrollTop","onUnmounted","_renderSlot","_ctx","n","_createBlock","_Teleport"],"mappings":"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"}
|