@topvisor/ui 1.5.0-updates.0 → 1.5.0-updates.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/api-CawzY1Cw.amd.js +2 -0
- package/.chunks/api-CawzY1Cw.amd.js.map +1 -0
- package/.chunks/api-CawzY1Cw.esm.js +208 -0
- package/.chunks/api-CawzY1Cw.esm.js.map +1 -0
- package/.chunks/app-CCX-gNqz.amd.js +2 -0
- package/.chunks/app-CCX-gNqz.amd.js.map +1 -0
- package/.chunks/app-CCX-gNqz.esm.js +396 -0
- package/.chunks/app-CCX-gNqz.esm.js.map +1 -0
- package/.chunks/datepicker-BTkZOq7d.amd.js +2 -0
- package/.chunks/datepicker-BTkZOq7d.amd.js.map +1 -0
- package/.chunks/datepicker-BTkZOq7d.esm.js +38 -0
- package/.chunks/datepicker-BTkZOq7d.esm.js.map +1 -0
- package/.chunks/dialog-DeM4SApg.amd.js +2 -0
- package/.chunks/dialog-DeM4SApg.amd.js.map +1 -0
- package/.chunks/dialog-DeM4SApg.esm.js +117 -0
- package/.chunks/dialog-DeM4SApg.esm.js.map +1 -0
- package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.amd.js +2 -0
- package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.amd.js.map +1 -0
- package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.esm.js +169 -0
- package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.esm.js.map +1 -0
- package/.chunks/dialogs-CMrERMI7.amd.js +2 -0
- package/.chunks/dialogs-CMrERMI7.amd.js.map +1 -0
- package/.chunks/dialogs-CMrERMI7.esm.js +237 -0
- package/.chunks/dialogs-CMrERMI7.esm.js.map +1 -0
- package/.chunks/field-CjkpGeA7.amd.js +2 -0
- package/.chunks/field-CjkpGeA7.amd.js.map +1 -0
- package/.chunks/field-CjkpGeA7.esm.js +16 -0
- package/.chunks/field-CjkpGeA7.esm.js.map +1 -0
- package/.chunks/forms-CbUt-6Ff.amd.js +2 -0
- package/.chunks/forms-CbUt-6Ff.amd.js.map +1 -0
- package/.chunks/forms-CbUt-6Ff.esm.js +1991 -0
- package/.chunks/forms-CbUt-6Ff.esm.js.map +1 -0
- package/.chunks/formsExt-CrTmBhja.amd.js +2 -0
- package/.chunks/formsExt-CrTmBhja.amd.js.map +1 -0
- package/.chunks/formsExt-CrTmBhja.esm.js +807 -0
- package/.chunks/formsExt-CrTmBhja.esm.js.map +1 -0
- package/.chunks/lazy-CGswTOPj.amd.js +2 -0
- package/.chunks/lazy-CGswTOPj.amd.js.map +1 -0
- package/.chunks/lazy-CGswTOPj.esm.js +68 -0
- package/.chunks/lazy-CGswTOPj.esm.js.map +1 -0
- package/.chunks/mocker-CwZe-g4N.amd.js +2 -0
- package/.chunks/mocker-CwZe-g4N.amd.js.map +1 -0
- package/.chunks/mocker-CwZe-g4N.esm.js +45 -0
- package/.chunks/mocker-CwZe-g4N.esm.js.map +1 -0
- package/.chunks/notice-CslVdVNm.amd.js +4 -0
- package/.chunks/notice-CslVdVNm.amd.js.map +1 -0
- package/.chunks/notice-CslVdVNm.esm.js +191 -0
- package/.chunks/notice-CslVdVNm.esm.js.map +1 -0
- package/.chunks/popup-DrByVU-k.amd.js +2 -0
- package/.chunks/popup-DrByVU-k.amd.js.map +1 -0
- package/.chunks/popup-DrByVU-k.esm.js +444 -0
- package/.chunks/popup-DrByVU-k.esm.js.map +1 -0
- package/.chunks/popup-dNrN-eKi.amd.js +2 -0
- package/.chunks/popup-dNrN-eKi.amd.js.map +1 -0
- package/.chunks/popup-dNrN-eKi.esm.js +323 -0
- package/.chunks/popup-dNrN-eKi.esm.js.map +1 -0
- package/.chunks/punycode.es6-B-5kB2YI.amd.js +2 -0
- package/.chunks/{punycode.es6-CgGegfA_.es.js.map → punycode.es6-B-5kB2YI.amd.js.map} +1 -1
- package/.chunks/punycode.es6-B-5kB2YI.esm.js +105 -0
- package/.chunks/punycode.es6-B-5kB2YI.esm.js.map +1 -0
- package/.chunks/store-DuQpSSLL.amd.js +2 -0
- package/.chunks/store-DuQpSSLL.amd.js.map +1 -0
- package/.chunks/store-DuQpSSLL.esm.js +27 -0
- package/.chunks/store-DuQpSSLL.esm.js.map +1 -0
- package/.chunks/utils-BwiXsV0S.amd.js +2 -0
- package/.chunks/{utils-BNzP9anP.es.js.map → utils-BwiXsV0S.amd.js.map} +1 -1
- package/.chunks/utils-BwiXsV0S.esm.js +43 -0
- package/.chunks/utils-BwiXsV0S.esm.js.map +1 -0
- package/.chunks/utils-Dd0MZgyw.amd.js +2 -0
- package/.chunks/utils-Dd0MZgyw.amd.js.map +1 -0
- package/.chunks/utils-Dd0MZgyw.esm.js +287 -0
- package/.chunks/utils-Dd0MZgyw.esm.js.map +1 -0
- package/.chunks/worker-Db8YrEHo.amd.js +2 -0
- package/.chunks/worker-Db8YrEHo.amd.js.map +1 -0
- package/.chunks/worker-Db8YrEHo.esm.js +100 -0
- package/.chunks/worker-Db8YrEHo.esm.js.map +1 -0
- package/api/additional.amd.js +2 -2
- package/api/additional.amd.js.map +1 -1
- package/api/additional.d.ts +1 -0
- package/api/additional.js +70 -66
- package/api/additional.js.map +1 -1
- package/api/index.amd.js +2 -2
- package/api/index.amd.js.map +1 -1
- package/api/index.d.ts +1 -0
- package/api/index.js +3 -285
- package/assets/charts.css +1 -1
- package/assets/core.css +1 -1
- package/assets/dialog_regionSelectorRegions.css +1 -1
- package/assets/extra.css +1 -1
- package/assets/forms.css +1 -1
- package/assets/formsExt.css +1 -0
- package/assets/layout.css +1 -1
- package/assets/notice.css +1 -1
- package/assets/popup.css +1 -0
- package/assets/project.css +1 -1
- package/assets/tabs.css +1 -1
- package/assets/tabsView.css +1 -1
- package/assets/themes/dark-th.css +1 -1
- package/assets/themes/dark.css +1 -1
- package/assets/themes/light.css +1 -1
- package/autoload-css-manifest.amd.json +79 -0
- package/autoload-css-manifest.json +90 -0
- package/charts/charts.amd.js +2 -2
- package/charts/charts.amd.js.map +1 -1
- package/charts/charts.d.ts +1 -0
- package/charts/charts.js +146 -174
- package/charts/charts.js.map +1 -1
- package/core/app.amd.js +2 -2
- package/core/app.amd.js.map +1 -1
- package/core/app.d.ts +1 -0
- package/core/app.js +5 -213
- package/dialog/dialog.amd.js +2 -2
- package/dialog/dialog.amd.js.map +1 -1
- package/dialog/dialog.d.ts +1 -0
- package/dialog/dialog.js +4 -60
- package/extra/extra.amd.js +2 -2
- package/extra/extra.amd.js.map +1 -1
- package/extra/extra.d.ts +1 -0
- package/extra/extra.js +73 -69
- package/extra/extra.js.map +1 -1
- package/forms/forms.amd.js +2 -2
- package/forms/forms.amd.js.map +1 -1
- package/forms/forms.d.ts +1 -0
- package/forms/forms.js +2 -19
- package/forms/helpers.amd.js +2 -2
- package/forms/helpers.amd.js.map +1 -1
- package/forms/helpers.js +0 -2
- package/formsExt/formsExt.amd.js +2 -2
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.d.ts +1 -0
- package/formsExt/formsExt.js +2 -373
- package/icomoon/Topvisor icons.json +259 -231
- package/icomoon/demo-files/demo.amd.js +2 -0
- package/icomoon/demo-files/demo.amd.js.map +1 -0
- package/icomoon/demo.amd.js +2 -0
- package/icomoon/demo.amd.js.map +1 -0
- package/icomoon/demo.html +15 -1
- package/icomoon/fonts/Topvisor-2.eot +0 -0
- package/icomoon/fonts/Topvisor-2.svg +1 -0
- package/icomoon/fonts/Topvisor-2.ttf +0 -0
- package/icomoon/fonts/Topvisor-2.woff +0 -0
- package/icomoon/selection.json +1 -1
- package/icomoon/style.css +8 -5
- package/layout/layout.amd.js +2 -2
- package/layout/layout.amd.js.map +1 -1
- package/layout/layout.d.ts +1 -0
- package/layout/layout.js +41 -57
- package/layout/layout.js.map +1 -1
- package/package.json +1 -1
- package/popup/popup.amd.js +2 -2
- package/popup/popup.amd.js.map +1 -1
- package/popup/popup.d.ts +1 -0
- package/popup/popup.js +2 -282
- package/popup/worker.amd.js +2 -2
- package/popup/worker.amd.js.map +1 -1
- package/popup/worker.d.ts +1 -0
- package/popup/worker.js +2 -144
- package/project/project.amd.js +2 -2
- package/project/project.amd.js.map +1 -1
- package/project/project.d.ts +1 -0
- package/project/project.js +1678 -1643
- package/project/project.js.map +1 -1
- package/src/{src/components → components}/charts/miniCharts/miniCharts.d.ts +1 -1
- package/src/{src/components → components}/core/notice/item/types.d.ts +1 -1
- package/src/{src/components → components}/core/notice/utils.d.ts +1 -1
- package/src/{src/components → components}/dialog/dialog/composables/dialogHandle.d.ts +1 -1
- package/src/{src/components → components}/dialog/dialog/dialogs/dialogs.vue.d.ts +2 -2
- package/src/{src/components → components}/dialog/dialog/stories/dialog_example/pages/utils.d.ts +1 -1
- package/src/components/dialog/dialog.d.ts +6 -0
- package/src/{src/components → components}/dialog/lib/worker.d.ts +1 -1
- package/src/{src/components → components}/forms/button/types.d.ts +1 -1
- package/src/{src/components → components}/forms/input/types.d.ts +1 -1
- package/src/components/forms/inputDate/types.d.ts +1 -0
- package/src/{src/components → components}/forms/select/types.d.ts +1 -1
- package/src/{src/components → components}/formsExt/editArea/types.d.ts +1 -1
- package/src/{src/components → components}/formsExt/editInput/types.d.ts +2 -2
- package/src/{src/components → components}/formsExt/libs/optionGroup/types.d.ts +1 -1
- package/src/{src/components → components}/formsExt/menu/types.d.ts +1 -1
- package/src/{src/components → components}/formsExt/policy/policy.vue.d.ts +1 -1
- package/src/{src/components → components}/formsExt/selector2/types.d.ts +3 -3
- package/src/{src/components → components}/popup/lib/popup.d.ts +2 -2
- package/src/{src/components → components}/popup/lib/worker.d.ts +2 -2
- package/src/{src/components → components}/popup/popup/popup.vue.d.ts +1 -1
- package/src/{src/components → components}/popup/popup/widgetInput/widgetInput.vue.d.ts +1 -1
- package/src/{src/components → components}/popup/popupConfirm/popupConfirm.vue.d.ts +1 -1
- package/src/{src/components → components}/project/competitorSelector/composables.d.ts +1 -1
- package/src/{src/components → components}/project/competitorSelector/types.d.ts +1 -1
- package/src/{src/components → components}/project/groupSelector/folders/types.d.ts +2 -2
- package/src/components/project/groupSelector/folders/utils.d.ts +57 -0
- package/src/{src/components → components}/project/groupSelector/groups/groups.vue.d.ts +1 -1
- package/src/{src/components → components}/project/groupSelector/groups/types.d.ts +2 -2
- package/src/components/project/groupSelector/groups/utils.d.ts +78 -0
- package/src/{src/components → components}/project/groupSelector/stories/mocks/index.d.ts +1 -1
- package/src/{src/components → components}/project/projectSelector/cache.d.ts +1 -1
- package/src/{src/components → components}/project/projectSelector/projectSelector.vue.d.ts +1 -1
- package/src/{src/components → components}/project/projectSelector/types.d.ts +2 -2
- package/src/{src/components → components}/project/projectSelector/utils.d.ts +41 -40
- package/src/{src/components → components}/project/regionSelector/composables/selectRegion.d.ts +1 -1
- package/src/{src/components → components}/project/regionSelector/composables/selectSearcher.d.ts +1 -1
- package/src/{src/components → components}/project/regionSelector/dialog_regionSelectorRegions/types.d.ts +1 -1
- package/src/{src/components → components}/project/tagSelector/popupOpener/types.d.ts +1 -1
- package/src/{src/components → components}/project/tagSelector/types.d.ts +1 -1
- package/src/{src/components → components}/project/tagSelector/utils/el.d.ts +1 -1
- package/src/{src/components → components}/tabsView/tabsView/store.d.ts +1 -1
- package/src/{src/core → core}/app.d.ts +2 -2
- package/src/{src/core → core}/core/core.d.ts +3 -3
- package/src/{src/core → core}/plugins/core.d.ts +6 -6
- package/src/{src/core → core}/utils/price.d.ts +2 -2
- package/src/core/utils/store.d.ts +6 -0
- package/tabs/tabs.amd.js +2 -2
- package/tabs/tabs.amd.js.map +1 -1
- package/tabs/tabs.d.ts +1 -0
- package/tabs/tabs.js +63 -77
- package/tabs/tabs.js.map +1 -1
- package/tabsView/tabsView.amd.js +2 -2
- package/tabsView/tabsView.amd.js.map +1 -1
- package/tabsView/tabsView.d.ts +1 -0
- package/tabsView/tabsView.js +245 -288
- package/tabsView/tabsView.js.map +1 -1
- package/utils/check.amd.js +2 -2
- package/utils/check.amd.js.map +1 -1
- package/utils/check.d.ts +1 -0
- package/utils/check.js +15 -19
- package/utils/check.js.map +1 -1
- package/utils/clipboard.amd.js +6 -6
- package/utils/clipboard.amd.js.map +1 -1
- package/utils/clipboard.d.ts +1 -0
- package/utils/clipboard.js +26 -31
- package/utils/clipboard.js.map +1 -1
- package/utils/date.amd.js +2 -2
- package/utils/date.amd.js.map +1 -1
- package/utils/date.d.ts +1 -0
- package/utils/date.js +2 -12
- package/utils/device.amd.js +2 -2
- package/utils/device.amd.js.map +1 -1
- package/utils/device.d.ts +1 -0
- package/utils/device.js +2 -15
- package/utils/dom.amd.js +2 -2
- package/utils/dom.amd.js.map +1 -1
- package/utils/dom.d.ts +5 -0
- package/utils/dom.js +53 -67
- package/utils/dom.js.map +1 -1
- package/utils/image.amd.js +3 -3
- package/utils/image.amd.js.map +1 -1
- package/utils/image.d.ts +1 -0
- package/utils/image.js +12 -22
- package/utils/image.js.map +1 -1
- package/utils/keyboard.amd.js +2 -2
- package/utils/keyboard.amd.js.map +1 -1
- package/utils/keyboard.d.ts +1 -0
- package/utils/keyboard.js +10 -11
- package/utils/keyboard.js.map +1 -1
- package/utils/lodash.amd.js +2 -2
- package/utils/lodash.amd.js.map +1 -1
- package/utils/lodash.d.ts +1 -0
- package/utils/lodash.js +2 -9
- package/utils/number.amd.js +2 -2
- package/utils/number.amd.js.map +1 -1
- package/utils/number.d.ts +1 -0
- package/utils/number.js +12 -12
- package/utils/number.js.map +1 -1
- package/utils/price.amd.js +2 -2
- package/utils/price.amd.js.map +1 -1
- package/utils/price.d.ts +1 -0
- package/utils/price.js +14 -9
- package/utils/price.js.map +1 -1
- package/utils/route.amd.js +2 -2
- package/utils/route.amd.js.map +1 -1
- package/utils/route.d.ts +1 -0
- package/utils/route.js +33 -37
- package/utils/route.js.map +1 -1
- package/utils/scroll.amd.js +2 -2
- package/utils/scroll.amd.js.map +1 -1
- package/utils/scroll.d.ts +1 -0
- package/utils/scroll.js +39 -43
- package/utils/scroll.js.map +1 -1
- package/utils/searchers.amd.js +2 -2
- package/utils/searchers.amd.js.map +1 -1
- package/utils/searchers.d.ts +1 -0
- package/utils/searchers.js +128 -133
- package/utils/searchers.js.map +1 -1
- package/utils/store.amd.js +2 -2
- package/utils/store.amd.js.map +1 -1
- package/utils/store.d.ts +1 -0
- package/utils/store.js +2 -7
- package/utils/string.amd.js +2 -2
- package/utils/string.amd.js.map +1 -1
- package/utils/string.d.ts +1 -0
- package/utils/string.js +120 -147
- package/utils/string.js.map +1 -1
- package/utils/system.amd.js +2 -2
- package/utils/system.amd.js.map +1 -1
- package/utils/system.d.ts +1 -0
- package/utils/system.js +25 -28
- package/utils/system.js.map +1 -1
- package/utils/url.amd.js +3 -3
- package/utils/url.amd.js.map +1 -1
- package/utils/url.d.ts +1 -0
- package/utils/url.js +36 -47
- package/utils/url.js.map +1 -1
- package/.chunks/core-Dgj_YGWh.es.js +0 -268
- package/.chunks/core-Dgj_YGWh.es.js.map +0 -1
- package/.chunks/core-DzDFXOdI.amd.js +0 -2
- package/.chunks/core-DzDFXOdI.amd.js.map +0 -1
- package/.chunks/datepicker-oa8ZwRhq.amd.js +0 -2
- package/.chunks/datepicker-oa8ZwRhq.amd.js.map +0 -1
- package/.chunks/datepicker-qToxk2nN.es.js +0 -41
- package/.chunks/datepicker-qToxk2nN.es.js.map +0 -1
- package/.chunks/dialog_regionSelectorRegions-CZ0tMVSq.amd.js +0 -2
- package/.chunks/dialog_regionSelectorRegions-CZ0tMVSq.amd.js.map +0 -1
- package/.chunks/dialog_regionSelectorRegions-qDW2Ejsv.es.js +0 -180
- package/.chunks/dialog_regionSelectorRegions-qDW2Ejsv.es.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BBix_8WK.amd.js +0 -2
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BBix_8WK.amd.js.map +0 -1
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CJ97l1ST.es.js +0 -323
- package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CJ97l1ST.es.js.map +0 -1
- package/.chunks/field-Cvv0SRcJ.amd.js +0 -2
- package/.chunks/field-Cvv0SRcJ.amd.js.map +0 -1
- package/.chunks/field-CyyFzM-Y.es.js +0 -16
- package/.chunks/field-CyyFzM-Y.es.js.map +0 -1
- package/.chunks/forms-DDNzqU6o.amd.js +0 -3
- package/.chunks/forms-DDNzqU6o.amd.js.map +0 -1
- package/.chunks/forms-DtC-EKJL.es.js +0 -2053
- package/.chunks/forms-DtC-EKJL.es.js.map +0 -1
- package/.chunks/index-DLUtoTUg.amd.js +0 -2
- package/.chunks/index-DLUtoTUg.amd.js.map +0 -1
- package/.chunks/index-DkQWJkMc.es.js +0 -54
- package/.chunks/index-DkQWJkMc.es.js.map +0 -1
- package/.chunks/lazy-DDNqYkXn.amd.js +0 -2
- package/.chunks/lazy-DDNqYkXn.amd.js.map +0 -1
- package/.chunks/lazy-HKSyLh72.es.js +0 -75
- package/.chunks/lazy-HKSyLh72.es.js.map +0 -1
- package/.chunks/notice-BvQl911b.es.js +0 -191
- package/.chunks/notice-BvQl911b.es.js.map +0 -1
- package/.chunks/notice-CJ3WOTCM.amd.js +0 -4
- package/.chunks/notice-CJ3WOTCM.amd.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-Dd5-B4Ss.es.js +0 -139
- package/.chunks/page.vue_vue_type_script_setup_true_lang-Dd5-B4Ss.es.js.map +0 -1
- package/.chunks/page.vue_vue_type_script_setup_true_lang-fl6-Ql4d.amd.js +0 -2
- package/.chunks/page.vue_vue_type_script_setup_true_lang-fl6-Ql4d.amd.js.map +0 -1
- package/.chunks/policy.vue_vue_type_style_index_0_lang-Bv3LwNDC.es.js +0 -519
- package/.chunks/policy.vue_vue_type_style_index_0_lang-Bv3LwNDC.es.js.map +0 -1
- package/.chunks/policy.vue_vue_type_style_index_0_lang-Da7rztT5.amd.js +0 -2
- package/.chunks/policy.vue_vue_type_style_index_0_lang-Da7rztT5.amd.js.map +0 -1
- package/.chunks/popup-OuDglAOF.es.js +0 -470
- package/.chunks/popup-OuDglAOF.es.js.map +0 -1
- package/.chunks/popup-yXIpyok3.amd.js +0 -2
- package/.chunks/popup-yXIpyok3.amd.js.map +0 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Bu_HvFoW.amd.js +0 -2
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Bu_HvFoW.amd.js.map +0 -1
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DAQIAxvu.es.js +0 -209
- package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DAQIAxvu.es.js.map +0 -1
- package/.chunks/punycode.es6-CNOnFR2-.amd.js +0 -2
- package/.chunks/punycode.es6-CNOnFR2-.amd.js.map +0 -1
- package/.chunks/punycode.es6-CgGegfA_.es.js +0 -134
- package/.chunks/store-CX_6ZXhO.es.js +0 -29
- package/.chunks/store-CX_6ZXhO.es.js.map +0 -1
- package/.chunks/store-YRW59xEF.amd.js +0 -2
- package/.chunks/store-YRW59xEF.amd.js.map +0 -1
- package/.chunks/utils-BNzP9anP.es.js +0 -78
- package/.chunks/utils-CWn_G7OO.amd.js +0 -2
- package/.chunks/utils-CWn_G7OO.amd.js.map +0 -1
- package/.chunks/utils-DIviuVEw.amd.js +0 -2
- package/.chunks/utils-DIviuVEw.amd.js.map +0 -1
- package/.chunks/utils-Dma85ehT.es.js +0 -288
- package/.chunks/utils-Dma85ehT.es.js.map +0 -1
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CX_BOcVY.es.js +0 -39
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CX_BOcVY.es.js.map +0 -1
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CkOmb3VD.amd.js +0 -2
- package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CkOmb3VD.amd.js.map +0 -1
- package/api/index.js.map +0 -1
- package/assets/policy.css +0 -1
- package/assets/popupHint.css +0 -1
- package/core/app.js.map +0 -1
- package/dialog/dialog.js.map +0 -1
- package/forms/forms.js.map +0 -1
- package/forms/helpers.js.map +0 -1
- package/formsExt/formsExt.js.map +0 -1
- package/popup/popup.js.map +0 -1
- package/popup/worker.js.map +0 -1
- package/src/src/components/dialog/dialog.d.ts +0 -6
- package/src/src/components/forms/inputDate/types.d.ts +0 -1
- package/src/src/components/project/groupSelector/folders/utils.d.ts +0 -422
- package/src/src/components/project/groupSelector/groups/utils.d.ts +0 -791
- package/src/src/components/project/groupSelector/utils.d.ts +0 -37
- package/src/src/core/utils/store.d.ts +0 -6
- package/utils/date.js.map +0 -1
- package/utils/device.js.map +0 -1
- package/utils/lodash.js.map +0 -1
- package/utils/store.js.map +0 -1
- package/src/{src/api → api}/api/additional.d.ts +0 -0
- package/src/{src/api → api}/api/client/client.d.ts +0 -0
- package/src/{src/api → api}/api/client/request-options.d.ts +0 -0
- package/src/{src/api → api}/api/client/request.d.ts +0 -0
- package/src/{src/api → api}/api/index.d.ts +0 -0
- package/src/{src/api → api}/api/mocker/index.d.ts +0 -0
- package/src/{src/api → api}/api/tests/types.test-d.d.ts +0 -0
- package/src/{src/api → api}/api/types/api.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/client.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/middleware.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/options.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/request-context.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/request-options.d.ts +0 -0
- package/src/{src/api → api}/api/types/client/request.d.ts +0 -0
- package/src/{src/api → api}/api/types/ext.d.ts +0 -0
- package/src/{src/api → api}/api/types/field.d.ts +0 -0
- package/src/{src/api → api}/api/types/index.d.ts +0 -0
- package/src/{src/api → api}/api/types/mocker.d.ts +0 -0
- package/src/{src/api → api}/api/types/schema.d.ts +0 -0
- package/src/{src/api → api}/api/types/tv.d.ts +0 -0
- package/src/{src/api → api}/api/types/utils.d.ts +0 -0
- package/src/{src/api → api}/api/utils/common.d.ts +0 -0
- package/src/{src/api → api}/api/utils/field.d.ts +0 -0
- package/src/{src/api → api}/api/utils/filters.d.ts +0 -0
- package/src/{src/api → api}/api/utils/lazy.d.ts +0 -0
- package/src/{src/components → components}/charts/charts.d.ts +0 -0
- package/src/{src/components → components}/charts/miniChart/miniChart.vue.d.ts +0 -0
- package/src/{src/components → components}/charts/miniChart/types.d.ts +0 -0
- package/src/{src/components → components}/charts/miniChart/utils/consts.d.ts +0 -0
- package/src/{src/components → components}/charts/miniCharts/miniCharts.vue.d.ts +0 -0
- package/src/{src/components → components}/core/notice/item/item.vue.d.ts +0 -0
- package/src/{src/components → components}/core/notice/notice.vue.d.ts +0 -0
- package/src/{src/components → components}/core/notice/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/composables/asyncDialogHandle.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/composables/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/composables/utils.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/dialog.vue.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/page/page.vue.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/page/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/pageComponent/pageComponent.vue.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/pageComponent/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/dialog/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/lib/types.d.ts +0 -0
- package/src/{src/components → components}/dialog/lib/utils.d.ts +0 -0
- package/src/{src/components → components}/dialog/lib/utils.globalEvents.d.ts +0 -0
- package/src/{src/components → components}/extra/extra.d.ts +0 -0
- package/src/{src/components → components}/extra/rive/rive.vue.d.ts +0 -0
- package/src/{src/components → components}/extra/rive/types.d.ts +0 -0
- package/src/{src/components → components}/forms/avatar/avatar.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/avatar/types.d.ts +0 -0
- package/src/{src/components → components}/forms/button/button.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/caption/caption.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/caption/types.d.ts +0 -0
- package/src/{src/components → components}/forms/checkbox/checkbox.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/checkbox/types.d.ts +0 -0
- package/src/{src/components → components}/forms/controlLabel/controlLabel.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/controlLabel/types.d.ts +0 -0
- package/src/{src/components → components}/forms/forms.d.ts +0 -0
- package/src/{src/components → components}/forms/helpers.d.ts +0 -0
- package/src/{src/components → components}/forms/hint/hint.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/hint/types.d.ts +0 -0
- package/src/{src/components → components}/forms/input/input.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/inputDate/datepicker.d.ts +0 -0
- package/src/{src/components → components}/forms/inputDate/inputDate.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/inputRange/inputRange.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/inputRange/types.d.ts +0 -0
- package/src/{src/components → components}/forms/loadbar/loadbar.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/preloader/preloader.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/preloader/types.d.ts +0 -0
- package/src/{src/components → components}/forms/radio/radio.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/radio/types.d.ts +0 -0
- package/src/{src/components → components}/forms/select/select.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/switcher/switcher.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/switcher/types.d.ts +0 -0
- package/src/{src/components → components}/forms/textarea/textarea.vue.d.ts +0 -0
- package/src/{src/components → components}/forms/textarea/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/checkboxGroup/checkboxGroup.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/checkboxGroup/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/editArea/editArea.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/editInput/editInput.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/formsExt.d.ts +0 -0
- package/src/{src/components → components}/formsExt/info/info.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/info/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/libs/optionGroup/optionGroup.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/menu/menu.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/policy/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/radioGroup/radioGroup.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/radioGroup/types.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/cache.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/composables/useAPI.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/composables/useMenu.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/itemMulti.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/selector2.vue.d.ts +0 -0
- package/src/{src/components → components}/formsExt/selector2/utils.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/islandRows.vue.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/islandRowsRow/islandRowsRow.vue.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/islandRowsRow/types.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue.d.ts +0 -0
- package/src/{src/components → components}/layout/islandRows/types.d.ts +0 -0
- package/src/{src/components → components}/layout/layout.d.ts +0 -0
- package/src/{src/components → components}/layout/rows/rows.vue.d.ts +0 -0
- package/src/{src/components → components}/layout/rows/types.d.ts +0 -0
- package/src/{src/components → components}/popup/lib/popup.globalEvents.d.ts +0 -0
- package/src/{src/components → components}/popup/lib/worker.globalEvents.d.ts +0 -0
- package/src/{src/components → components}/popup/popup/listItem.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popup/opener/opener.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popup/opener/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popup/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popup.d.ts +0 -0
- package/src/{src/components → components}/popup/popupAlert/popupAlert.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popupAlert/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popupConfirm/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popupHint/popupHint.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popupHint/types.d.ts +0 -0
- package/src/{src/components → components}/popup/popupPrompt/popupPrompt.vue.d.ts +0 -0
- package/src/{src/components → components}/popup/popupPrompt/types.d.ts +0 -0
- package/src/{src/components → components}/popup/worker.d.ts +0 -0
- package/src/{src/components → components}/project/competitorSelector/competitorSelector.vue.d.ts +0 -0
- package/src/{src/components → components}/project/groupSelector/folders/folders.vue.d.ts +0 -0
- package/src/{src/components → components}/project/groupSelector/groupSelector.vue.d.ts +1 -1
- /package/src/{src/components → components}/project/groupSelector/stories/mocks/folders.d.ts +0 -0
- /package/src/{src/components → components}/project/groupSelector/stories/mocks/groups.d.ts +0 -0
- /package/src/{src/components → components}/project/groupSelector/types.d.ts +0 -0
- /package/src/{src/components → components}/project/project.d.ts +0 -0
- /package/src/{src/components → components}/project/projectSelector/submenu/submenu.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/projectSelector/submenu/types.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/composables/compare.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/composables/selectorRegion.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/regionSelector.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/types.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/utils/consts.d.ts +0 -0
- /package/src/{src/components → components}/project/regionSelector/utils/utils.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/popupListItem/tagPopupListItem.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/popupListItem/types.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/popupOpener/popupOpener.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/tagIcon/tagIcon.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/tagIcon/types.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/tagSelector.vue.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/tagsDefaults.d.ts +0 -0
- /package/src/{src/components → components}/project/tagSelector/utils/utils.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs/content.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs/tab.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs/tabs.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs/types.d.ts +0 -0
- /package/src/{src/components → components}/tabs/tabs.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/menu.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/menuDelimeter.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/menuItem.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/menuTitle.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/tabsView.vue.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/types.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView/utils.d.ts +0 -0
- /package/src/{src/components → components}/tabsView/tabsView.d.ts +0 -0
- /package/src/{src/core → core}/core/events/resize.d.ts +0 -0
- /package/src/{src/core → core}/core/events.d.ts +0 -0
- /package/src/{src/core → core}/core/options.d.ts +0 -0
- /package/src/{src/core → core}/core/preloaders.d.ts +0 -0
- /package/src/{src/core → core}/core/state.d.ts +0 -0
- /package/src/{src/core → core}/directives/data.d.ts +0 -0
- /package/src/{src/core → core}/directives/focus.d.ts +0 -0
- /package/src/{src/core → core}/directives/preloader.d.ts +0 -0
- /package/src/{src/core → core}/directives/scrollIntoView.d.ts +0 -0
- /package/src/{src/core → core}/directives/scrollShadow.d.ts +0 -0
- /package/src/{src/core → core}/directives/shortcut.d.ts +0 -0
- /package/src/{src/core → core}/directives/sticky.d.ts +0 -0
- /package/src/{src/core → core}/directives/swimUp.d.ts +0 -0
- /package/src/{src/core → core}/directives/tooltip.d.ts +0 -0
- /package/src/{src/core → core}/plugins/i18n.d.ts +0 -0
- /package/src/{src/core → core}/plugins/piniaTPA.d.ts +0 -0
- /package/src/{src/core → core}/utils/check.d.ts +0 -0
- /package/src/{src/core → core}/utils/clipboard.d.ts +0 -0
- /package/src/{src/core → core}/utils/composables/useWatch.d.ts +0 -0
- /package/src/{src/core → core}/utils/date.d.ts +0 -0
- /package/src/{src/core → core}/utils/device.d.ts +0 -0
- /package/src/{src/core → core}/utils/dom.d.ts +0 -0
- /package/src/{src/core → core}/utils/image.d.ts +0 -0
- /package/src/{src/core → core}/utils/keyboard.d.ts +0 -0
- /package/src/{src/core → core}/utils/lodash.d.ts +0 -0
- /package/src/{src/core → core}/utils/number.d.ts +0 -0
- /package/src/{src/core → core}/utils/route.d.ts +0 -0
- /package/src/{src/core → core}/utils/scroll.d.ts +0 -0
- /package/src/{src/core → core}/utils/searchers.d.ts +0 -0
- /package/src/{src/core → core}/utils/store/localStorage.d.ts +0 -0
- /package/src/{src/core → core}/utils/store/plugin.d.ts +0 -0
- /package/src/{src/core → core}/utils/store/store.d.ts +0 -0
- /package/src/{src/core → core}/utils/string.d.ts +0 -0
- /package/src/{src/core → core}/utils/system.d.ts +0 -0
- /package/src/{src/core → core}/utils/tests/date/dateFormat.test.d.ts +0 -0
- /package/src/{src/core → core}/utils/url.d.ts +0 -0
package/api/additional.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"additional.js","sources":["../../src/api/api/utils/filters.ts"],"sourcesContent":["import type { components as componentsTagId } from 'topvisor-openapi/src/ts/Tags_2/Types/TagId';\nimport { genFieldFilter } from './field';\n\ntype TagId = componentsTagId['schemas']['Tags_2.Types.TagId'];\ntype TagIdExclude = `-${TagId}`;\n\ntype DataWithModifierOperator<Model> = {\n\t[K in keyof Model]: Model[K] | Model[K][] | Set<Model[K]> | string\n};\n\n/**\n * Модификатор оператора сравнения\n *\n * Используется посредством добавления к строковому значению поля для упрощения синтаксиса указания фильтров\n *\n * @example Поиск вхождения `Иван` в поле `name`\n * genFilters({\n * id: 12345, // без модификатора опертора\n * name: '%:' + 'Иван', // с модификатором опертора\n * });\n */\ntype ModifierOperator = '>=' | '<=' | '!=' | '>' | '<' | '%' | '!%' | '^' | '~' | '!~' | 'null' | '!null';\n\ntype ValueWithModifierOperator = `${ModifierOperator}:${string | number}`;\n\n/**\n * Сгенерировать массив с фильтрами API\n *\n * Ключи - `filedName`, значения - `[ModifierOperator:]fieldValue` / `fieldValues`\n *\n * Значения `undefined` будут пропускаться\n *\n * Додерживает типы:\n *\n * - string, number, boolean - строгое равенство `EQUALS`, если не указан `modifierOperator`\n * - Array - вхождение `IN`\n * - Set<string | number> - вхождение `IN`\n *\n * @see ModifierOperator\n */\nexport const genFilters = <Model extends Api.Ext.Schemas['Model']>(\n\tdataWithModifierOperator: DataWithModifierOperator<Model>,\n): Api.Field.Filter<Model>[] => {\n\tconst filters: Api.Field.Filter<Model>[] = [];\n\n\tObject.keys(dataWithModifierOperator).forEach(_name => {\n\t\tconst name = _name as string & keyof Model;\n\t\tconst value = dataWithModifierOperator[name];\n\t\tif (value === undefined) return;\n\n\t\tlet filter: Api.Field.Filter<Model> | undefined;\n\n\t\tif (name === 'tags_ids' || name === 'tags') {\n\t\t\tpushFilterTagsIds(name, filters, value as any);\n\t\t} else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\t\tfilter = genFilterPrimitive(name, value);\n\t\t} else if (Array.isArray(value) || value instanceof Set) {\n\t\t\tfilter = genFilterIn(name, value as any);\n\t\t}\n\n\t\tif (filter) {\n\t\t\tfilters.push(filter);\n\t\t}\n\t});\n\n\treturn filters;\n};\n\n/**\n * Получить value и operator из valueWithModifierOperator\n */\nconst extractOperator = (valueWithModifierOperator: ValueWithModifierOperator): {\n\tvalue: any,\n\toperator: Api.Ext.Schemas['FieldOperator']\n} => {\n\tlet value: string | number = valueWithModifierOperator;\n\tlet operator: Api.Field.Filter<any>['operator'] = 'EQUALS';\n\n\tlet modifierOperator: ModifierOperator | undefined;\n\tif (valueWithModifierOperator[1] === ':' || valueWithModifierOperator[2] === ':') {\n\t\t[modifierOperator, value] = valueWithModifierOperator.split(':') as [ModifierOperator, string];\n\t}\n\n\tswitch (modifierOperator) {\n\t\tcase '>':\n\t\t\toperator = 'GREATER_THAN';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '>=':\n\t\t\toperator = 'GREATER_THAN_EQUALS';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '<':\n\t\t\toperator = 'LESS_THAN';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '<=':\n\t\t\toperator = 'LESS_THAN_EQUALS';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '!=':\n\t\t\toperator = 'NOT_EQUALS';\n\n\t\t\tif (value.match(/^\\d+$/)) value = Number(value);\n\n\t\t\tbreak;\n\t\tcase '%':\n\t\t\toperator = 'CONTAINS';\n\n\t\t\tbreak;\n\t\tcase '!%':\n\t\t\toperator = 'DOES_NOT_CONTAIN';\n\n\t\t\tbreak;\n\t\tcase '^':\n\t\t\toperator = 'STARTS_WITH';\n\n\t\t\tbreak;\n\t\tcase 'null':\n\t\t\toperator = 'IS_NULL';\n\n\t\t\tbreak;\n\t\tcase '!null':\n\t\t\toperator = 'IS_NOT_NULL';\n\n\t\t\tbreak;\n\t\tcase '~':\n\t\t\toperator = 'REGEXP';\n\n\t\t\tbreak;\n\t\tcase '!~':\n\t\t\toperator = 'NOT_REGEXP';\n\n\t\t\tbreak;\n\t}\n\n\treturn { value, operator };\n};\n\n/**\n * Сгенерировать и добавить API фильтр из списка тегов\n */\nexport const pushFilterTagsIds = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tfilters: Api.Field.Filter<Model, FieldName>[],\n\ttagsIds: Array<TagId | TagIdExclude>,\n) => {\n\tconst tagsIncluded: Array<Model[FieldName] & TagId> = [];\n\tconst tagsExcluded: Array<Model[FieldName] & TagId> = [];\n\n\ttagsIds.forEach((tagId) => {\n\t\tif (tagId[0] === '-') {\n\t\t\ttagsExcluded.push(tagId.substring(1) as Model[FieldName] & TagId);\n\t\t} else {\n\t\t\ttagsIncluded.push(tagId as Model[FieldName] & TagId);\n\t\t}\n\t});\n\n\tif (tagsIncluded.length) filters.push(genFieldFilter<Model, FieldName>(name, 'IN', tagsIncluded));\n\tif (tagsExcluded.length) filters.push(genFieldFilter<Model, FieldName>(name, 'NOT_IN', tagsExcluded));\n};\n\n/**\n * Сгенерировать API фильтр из простого значения\n */\nexport const genFilterPrimitive = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tvalueWithModifierOperator: number | string | boolean | ValueWithModifierOperator,\n) => {\n\tlet value = valueWithModifierOperator;\n\tlet operator: Api.Field.Filter<any>['operator'] = 'EQUALS';\n\n\tif (typeof valueWithModifierOperator === 'string') {\n\t\tlet {} = { value, operator } = extractOperator(valueWithModifierOperator as ValueWithModifierOperator);\n\t}\n\n\t// @deprecated\n\tif (typeof value === 'boolean') {\n\t\tvalue = value ? 1 : 0;\n\t}\n\n\treturn genFieldFilter<Model>(name, operator, [value as any]);\n};\n\n/**\n * Сгенерировать API фильтр IN\n */\nexport const genFilterIn = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tvaluesOrSet: Model[FieldName][] | Set<Model[FieldName]>,\n) => {\n\treturn genFieldFilter<Model, FieldName>(name, 'IN', Array.isArray(valuesOrSet) ? valuesOrSet : [...valuesOrSet]);\n};\n"],"
|
|
1
|
+
{"version":3,"file":"additional.js","names":[],"sources":["../../src/api/api/utils/filters.ts"],"sourcesContent":["import type { components as componentsTagId } from 'topvisor-openapi/src/ts/Tags_2/Types/TagId';\nimport { genFieldFilter } from './field';\n\ntype TagId = componentsTagId['schemas']['Tags_2.Types.TagId'];\ntype TagIdExclude = `-${TagId}`;\n\ntype DataWithModifierOperator<Model> = {\n\t[K in keyof Model]: Model[K] | Model[K][] | Set<Model[K]> | string\n};\n\n/**\n * Модификатор оператора сравнения\n *\n * Используется посредством добавления к строковому значению поля для упрощения синтаксиса указания фильтров\n *\n * @example Поиск вхождения `Иван` в поле `name`\n * genFilters({\n * id: 12345, // без модификатора опертора\n * name: '%:' + 'Иван', // с модификатором опертора\n * });\n */\ntype ModifierOperator = '>=' | '<=' | '!=' | '>' | '<' | '%' | '!%' | '^' | '~' | '!~' | 'null' | '!null';\n\ntype ValueWithModifierOperator = `${ModifierOperator}:${string | number}`;\n\n/**\n * Сгенерировать массив с фильтрами API\n *\n * Ключи - `filedName`, значения - `[ModifierOperator:]fieldValue` / `fieldValues`\n *\n * Значения `undefined` будут пропускаться\n *\n * Додерживает типы:\n *\n * - string, number, boolean - строгое равенство `EQUALS`, если не указан `modifierOperator`\n * - Array - вхождение `IN`\n * - Set<string | number> - вхождение `IN`\n *\n * @see ModifierOperator\n */\nexport const genFilters = <Model extends Api.Ext.Schemas['Model']>(\n\tdataWithModifierOperator: DataWithModifierOperator<Model>,\n): Api.Field.Filter<Model>[] => {\n\tconst filters: Api.Field.Filter<Model>[] = [];\n\n\tObject.keys(dataWithModifierOperator).forEach(_name => {\n\t\tconst name = _name as string & keyof Model;\n\t\tconst value = dataWithModifierOperator[name];\n\t\tif (value === undefined) return;\n\n\t\tlet filter: Api.Field.Filter<Model> | undefined;\n\n\t\tif (name === 'tags_ids' || name === 'tags') {\n\t\t\tpushFilterTagsIds(name, filters, value as any);\n\t\t} else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\t\tfilter = genFilterPrimitive(name, value);\n\t\t} else if (Array.isArray(value) || value instanceof Set) {\n\t\t\tfilter = genFilterIn(name, value as any);\n\t\t}\n\n\t\tif (filter) {\n\t\t\tfilters.push(filter);\n\t\t}\n\t});\n\n\treturn filters;\n};\n\n/**\n * Получить value и operator из valueWithModifierOperator\n */\nconst extractOperator = (valueWithModifierOperator: ValueWithModifierOperator): {\n\tvalue: any,\n\toperator: Api.Ext.Schemas['FieldOperator']\n} => {\n\tlet value: string | number = valueWithModifierOperator;\n\tlet operator: Api.Field.Filter<any>['operator'] = 'EQUALS';\n\n\tlet modifierOperator: ModifierOperator | undefined;\n\tif (valueWithModifierOperator[1] === ':' || valueWithModifierOperator[2] === ':') {\n\t\t[modifierOperator, value] = valueWithModifierOperator.split(':') as [ModifierOperator, string];\n\t}\n\n\tswitch (modifierOperator) {\n\t\tcase '>':\n\t\t\toperator = 'GREATER_THAN';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '>=':\n\t\t\toperator = 'GREATER_THAN_EQUALS';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '<':\n\t\t\toperator = 'LESS_THAN';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '<=':\n\t\t\toperator = 'LESS_THAN_EQUALS';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '!=':\n\t\t\toperator = 'NOT_EQUALS';\n\n\t\t\tif (value.match(/^\\d+$/)) value = Number(value);\n\n\t\t\tbreak;\n\t\tcase '%':\n\t\t\toperator = 'CONTAINS';\n\n\t\t\tbreak;\n\t\tcase '!%':\n\t\t\toperator = 'DOES_NOT_CONTAIN';\n\n\t\t\tbreak;\n\t\tcase '^':\n\t\t\toperator = 'STARTS_WITH';\n\n\t\t\tbreak;\n\t\tcase 'null':\n\t\t\toperator = 'IS_NULL';\n\n\t\t\tbreak;\n\t\tcase '!null':\n\t\t\toperator = 'IS_NOT_NULL';\n\n\t\t\tbreak;\n\t\tcase '~':\n\t\t\toperator = 'REGEXP';\n\n\t\t\tbreak;\n\t\tcase '!~':\n\t\t\toperator = 'NOT_REGEXP';\n\n\t\t\tbreak;\n\t}\n\n\treturn { value, operator };\n};\n\n/**\n * Сгенерировать и добавить API фильтр из списка тегов\n */\nexport const pushFilterTagsIds = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tfilters: Api.Field.Filter<Model, FieldName>[],\n\ttagsIds: Array<TagId | TagIdExclude>,\n) => {\n\tconst tagsIncluded: Array<Model[FieldName] & TagId> = [];\n\tconst tagsExcluded: Array<Model[FieldName] & TagId> = [];\n\n\ttagsIds.forEach((tagId) => {\n\t\tif (tagId[0] === '-') {\n\t\t\ttagsExcluded.push(tagId.substring(1) as Model[FieldName] & TagId);\n\t\t} else {\n\t\t\ttagsIncluded.push(tagId as Model[FieldName] & TagId);\n\t\t}\n\t});\n\n\tif (tagsIncluded.length) filters.push(genFieldFilter<Model, FieldName>(name, 'IN', tagsIncluded));\n\tif (tagsExcluded.length) filters.push(genFieldFilter<Model, FieldName>(name, 'NOT_IN', tagsExcluded));\n};\n\n/**\n * Сгенерировать API фильтр из простого значения\n */\nexport const genFilterPrimitive = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tvalueWithModifierOperator: number | string | boolean | ValueWithModifierOperator,\n) => {\n\tlet value = valueWithModifierOperator;\n\tlet operator: Api.Field.Filter<any>['operator'] = 'EQUALS';\n\n\tif (typeof valueWithModifierOperator === 'string') {\n\t\tlet {} = { value, operator } = extractOperator(valueWithModifierOperator as ValueWithModifierOperator);\n\t}\n\n\t// @deprecated\n\tif (typeof value === 'boolean') {\n\t\tvalue = value ? 1 : 0;\n\t}\n\n\treturn genFieldFilter<Model>(name, operator, [value as any]);\n};\n\n/**\n * Сгенерировать API фильтр IN\n */\nexport const genFilterIn = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tvaluesOrSet: Model[FieldName][] | Set<Model[FieldName]>,\n) => {\n\treturn genFieldFilter<Model, FieldName>(name, 'IN', Array.isArray(valuesOrSet) ? valuesOrSet : [...valuesOrSet]);\n};\n"],"mappings":";;AAwCA,IAAa,KACZ,MAC+B;CAC/B,IAAM,IAAqC,EAAE;AAsB7C,QApBA,OAAO,KAAK,EAAyB,CAAC,SAAQ,MAAS;EACtD,IAAM,IAAO,GACP,IAAQ,EAAyB;AACvC,MAAI,MAAU,KAAA,EAAW;EAEzB,IAAI;AAUJ,EARI,MAAS,cAAc,MAAS,SACnC,EAAkB,GAAM,GAAS,EAAa,GACpC,OAAO,KAAU,YAAY,OAAO,KAAU,YAAY,OAAO,KAAU,YACrF,IAAS,EAAmB,GAAM,EAAM,IAC9B,MAAM,QAAQ,EAAM,IAAI,aAAiB,SACnD,IAAS,EAAY,GAAM,EAAa,GAGrC,KACH,EAAQ,KAAK,EAAO;GAEpB,EAEK;GAMF,KAAmB,MAGpB;CACJ,IAAI,IAAyB,GACzB,IAA8C,UAE9C;AAKJ,UAJI,EAA0B,OAAO,OAAO,EAA0B,OAAO,SAC5E,CAAC,GAAkB,KAAS,EAA0B,MAAM,IAAI,GAGzD,GAAR;EACC,KAAK;AAEJ,GADA,IAAW,gBACX,IAAQ,OAAO,EAAM;AAErB;EACD,KAAK;AAEJ,GADA,IAAW,uBACX,IAAQ,OAAO,EAAM;AAErB;EACD,KAAK;AAEJ,GADA,IAAW,aACX,IAAQ,OAAO,EAAM;AAErB;EACD,KAAK;AAEJ,GADA,IAAW,oBACX,IAAQ,OAAO,EAAM;AAErB;EACD,KAAK;AAGJ,GAFA,IAAW,cAEP,EAAM,MAAM,QAAQ,KAAE,IAAQ,OAAO,EAAM;AAE/C;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;;AAGF,QAAO;EAAE;EAAO;EAAU;GAMd,KAIZ,GACA,GACA,MACI;CACJ,IAAM,IAAgD,EAAE,EAClD,IAAgD,EAAE;AAWxD,CATA,EAAQ,SAAS,MAAU;AAC1B,EAAI,EAAM,OAAO,MAChB,EAAa,KAAK,EAAM,UAAU,EAAE,CAA6B,GAEjE,EAAa,KAAK,EAAkC;GAEpD,EAEE,EAAa,UAAQ,EAAQ,KAAK,EAAiC,GAAM,MAAM,EAAa,CAAC,EAC7F,EAAa,UAAQ,EAAQ,KAAK,EAAiC,GAAM,UAAU,EAAa,CAAC;GAMzF,KAIZ,GACA,MACI;CACJ,IAAI,IAAQ,GACR,IAA8C;AAElD,KAAI,OAAO,KAA8B,UAAU;EAClD,IAAI,KAAK,0BAAsB,EAAgB,EAAuD;;AAQvG,QAJI,OAAO,KAAU,cACpB,IAAQ,OAGF,EAAsB,GAAM,GAAU,CAAC,EAAa,CAAC;GAMhD,KAIZ,GACA,MAEO,EAAiC,GAAM,MAAM,MAAM,QAAQ,EAAY,GAAG,IAAc,CAAC,GAAG,EAAY,CAAC"}
|
package/api/index.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define([
|
|
2
|
-
//# sourceMappingURL=index.amd.js.map
|
|
1
|
+
define([`require`,`exports`,`../.chunks/api-CawzY1Cw.amd`,`../.chunks/field-CjkpGeA7.amd`],function(e,t,n,r){"use strict";if(i===void 0)var i=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.postInWindow=t.isPublicAPI=t.getBaseDomainUrl=t.genFieldOrder=t.genFieldFilter=t.genExtRes=t.dataToForm=t.createClient=void 0,Object.defineProperty(t,`getBaseDomainUrl`,{enumerable:!0,get:function(){return n.a}}),Object.defineProperty(t,`genExtRes`,{enumerable:!0,get:function(){return n.i}}),Object.defineProperty(t,`dataToForm`,{enumerable:!0,get:function(){return n.n}}),Object.defineProperty(t,`isPublicAPI`,{enumerable:!0,get:function(){return n.o}}),Object.defineProperty(t,`postInWindow`,{enumerable:!0,get:function(){return n.r}}),Object.defineProperty(t,`createClient`,{enumerable:!0,get:function(){return n.t}}),Object.defineProperty(t,`genFieldOrder`,{enumerable:!0,get:function(){return r.n}}),Object.defineProperty(t,`genFieldFilter`,{enumerable:!0,get:function(){return r.t}})});
|
|
2
|
+
//# sourceMappingURL=index.amd.js.map
|
package/api/index.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.amd.js","sources":["../../src/api/api/client/request-options.ts","../../src/api/api/utils/common.ts","../../src/api/api/client/request.ts","../../src/api/api/client/client.ts","../../src/api/api/index.ts"],"sourcesContent":["export const createRequestOptions = (requestOptions: Partial<Api.ClientRequestOptions> = {}): Api.ClientRequestOptions => {\n\trequestOptions = { ...requestOptions };\n\trequestOptions.loadingEl ??= globalThis.document?.body;\n\trequestOptions.loadingShowSpinner ??= true;\n\trequestOptions.method ??= 'POST';\n\trequestOptions.accept ??= 'application/json';\n\n\treturn requestOptions as Api.ClientRequestOptions;\n};\n","/**\n * Сгенерировать объект ответа в формате расширения OpenAPI\n *\n * @see Api.Ext\n */\nexport const genExtRes = (\n\tresult: any,\n\terrors?: Api.Ext.Schemas['ResponseError']['errors'],\n\tresponse?: Response,\n): Api.Response<any> => {\n\treturn {\n\t\tresult,\n\t\terrors,\n\t\tresponse,\n\t};\n};\n\n/**\n * Это публичное API, к которому открыт доступ по прямой ссылке через GET\n *\n * Используется для кеширования и генерации файлов через API\n */\nexport const isPublicAPI = (path: Api.PathAbstract) => {\n\treturn path.startsWith('/system_2/common/');\n};\n\n/**\n * Сгенерировать baseUrl на основе текущего домена\n */\nexport const getBaseDomainUrl = (useMainDomain = false, input: string = window.location.href, subdomain?: string) => {\n\tconst { protocol, hostname, port } = new URL(input);\n\n\t/**\n\t * localhost / IP-адреса / одноуровневые домены оставляем как есть\n\t */\n\tconst parts = hostname.split('.');\n\tconst baseHostname = !useMainDomain || parts.length <= 2 || /^[\\d.]+$/.test(hostname) || hostname === 'localhost'\n\t\t? hostname\n\t\t: parts.slice(-2).join('.');\n\n\treturn `${protocol}//${baseHostname}${port ? `:${port}` : ''}`;\n};\n","import type { Client } from './client';\nimport { createRequestOptions } from './request-options';\nimport { genExtRes } from '../utils/common';\n\n/**\n * Проверить передаются ли файлы\n */\nconst checkHasFiles = (data: Record<string, any>): boolean => {\n\treturn Object.values(data).some(value =>\n\t\tvalue instanceof FileList ||\n\t\tvalue instanceof File ||\n\t\tvalue instanceof Blob ||\n\t\tArray.isArray(value) && value.some(item => item instanceof File || item instanceof Blob),\n\t);\n};\n\nexport const createRequest = <\n\tRequestContext extends Api.ClientRequestContext<any, any, any>,\n\tFieldsNarrow extends Api.ParamsFields<RequestContext>,\n>(\n\tclient: Client<RequestContext['Paths'], RequestContext['UseExt']>,\n\tpath: RequestContext['Path'],\n\tfieldsNarrow?: FieldsNarrow,\n): Api.ClientRequest<RequestContext, FieldsNarrow> => {\n\tconst clientRequest: Api.ClientRequest<RequestContext, FieldsNarrow> = {\n\t\tinLoading: false,\n\t\tpath: path as Api.PathAbstract,\n\t\turl: client.options.baseUrl + path,\n\t\toptions: createRequestOptions(client.options.requestOptions),\n\t\tmockerOptions: undefined as Api.Mocker.Options<any, any> | undefined,\n\t\tparams: {} as any, // незаполненное свойство\n\t\tgetInLoading: () => clientRequest.inLoading,\n\n\t\tsetParams: (params) => {\n\t\t\tclientRequest.params = { ...params } as any;\n\n\t\t\treturn clientRequest;\n\t\t},\n\n\t\tchangeParams: (params) => {\n\t\t\tObject.assign(clientRequest.params, params);\n\n\t\t\treturn clientRequest;\n\t\t},\n\n\t\tsetOptions: (options) => {\n\t\t\tObject.assign(clientRequest.options, options);\n\n\t\t\treturn clientRequest;\n\t\t},\n\n\t\tsetMocker: (options) => {\n\t\t\tclientRequest.mockerOptions = options;\n\n\t\t\treturn clientRequest;\n\t\t},\n\n\t\tcall: async (fields?) => {\n\t\t\treturn clientRequest.exec(fields);\n\t\t},\n\n\t\tcallFetch: async (fetchStyle, fields?) => {\n\t\t\treturn clientRequest.exec(fields, fetchStyle);\n\t\t},\n\n\t\tcallInNewWindow: async (fields?) => {\n\t\t\tconst data = clientRequest.genData(fields);\n\n\t\t\tconst middlewareCtx = client.genMiddlewareCtx(clientRequest, data);\n\n\t\t\tclient.options.onPrepareData?.(data, middlewareCtx);\n\n\t\t\tconst { postInWindow } = await import('../utils/lazy');\n\t\t\tvoid postInWindow(clientRequest.url, data, '_blank');\n\t\t},\n\n\t\tcallInSelfWindow: async (fields?) => {\n\t\t\tconst data = clientRequest.genData(fields);\n\n\t\t\tconst middlewareCtx = client.genMiddlewareCtx(clientRequest, data);\n\n\t\t\tclient.options.onPrepareData?.(data, middlewareCtx);\n\n\t\t\tconst { postInWindow } = await import('../utils/lazy');\n\t\t\tvoid postInWindow(clientRequest.url, data, '_self');\n\t\t},\n\n\t\tgenData: (fields?, fetchStyle?) => {\n\t\t\tconst post: any = { ...clientRequest.params };\n\n\t\t\t// в старом коде fields вставлялись в params, оставлено для совместимости\n\t\t\t// delete post.fields;\n\t\t\tdelete post.fetch_style;\n\n\t\t\t// поля, указанные при запуске запроса\n\t\t\tif (fields) {\n\t\t\t\tlet fieldsPrepared = [...fields as any[]];\n\n\t\t\t\t// поля, указанные при создании запроса\n\t\t\t\tif (fieldsNarrow) {\n\t\t\t\t\tfieldsPrepared = fieldsPrepared.filter(field => fieldsNarrow.includes(field));\n\t\t\t\t}\n\n\t\t\t\tpost.fields = fieldsPrepared;\n\t\t\t} else {\n\t\t\t\tif (fieldsNarrow) {\n\t\t\t\t\tpost.fields = fieldsNarrow;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (fetchStyle) {\n\t\t\t\tpost.fetch_style = fetchStyle;\n\t\t\t}\n\n\t\t\treturn post;\n\t\t},\n\n\t\tabortByFingerprint: () => {\n\t\t\tif (!clientRequest.options.checkFingerprint) return;\n\n\t\t\tconst fingerprint = clientRequest.path + clientRequest.options.checkFingerprint;\n\n\t\t\tclient.abortControllers[fingerprint]?.abort(\n\t\t\t\tnew DOMException(`Stopped previous request by fingerprint: ${clientRequest.options.checkFingerprint}`, 'AbortError'),\n\t\t\t);\n\n\t\t\tconst controller = new AbortController();\n\n\t\t\tclient.abortControllers[fingerprint] = controller;\n\n\t\t\treturn controller.signal;\n\t\t},\n\n\t\t/**\n\t\t * Общая функция выполнения запросов\n\t\t */\n\t\tasync exec(fields?, fetchStyle?) {\n\t\t\tconst Request = client.options.Request;\n\t\t\tconst fetch = client.options.fetch;\n\n\t\t\tconst data = clientRequest.genData(fields, fetchStyle);\n\n\t\t\tconst middlewareCtxWithoutRequest = client.genMiddlewareCtx(clientRequest, data);\n\n\t\t\tclient.options.onPrepareData?.(data, middlewareCtxWithoutRequest);\n\n\t\t\tconst hasFiles = checkHasFiles(data);\n\t\t\tif (hasFiles && clientRequest.options.method !== 'POST') {\n\t\t\t\tthrow new Error('Files can be sent only in POST requests');\n\t\t\t}\n\n\t\t\tlet url = clientRequest.url;\n\n\t\t\tlet requestInitBody: string | FormData | undefined = undefined;\n\n\t\t\tif (hasFiles) {\n\t\t\t\tif (clientRequest.options.method !== 'POST') {\n\t\t\t\t\tthrow new Error('Files can be sent only in POST requests');\n\t\t\t\t}\n\n\t\t\t\tconst { formDataSerializer } = await import('../utils/lazy');\n\t\t\t\trequestInitBody = formDataSerializer(data);\n\t\t\t} else if (clientRequest.options.method !== 'POST') {\n\t\t\t\turl += '?' + await client.options.querySerializer(data);\n\t\t\t} else {\n\t\t\t\trequestInitBody = client.options.bodySerializer(data);\n\t\t\t}\n\n\t\t\t// checkFingerprint\n\t\t\tlet requestInitSignal = clientRequest.abortByFingerprint();\n\n\t\t\tif (clientRequest.mockerOptions) {\n\t\t\t\tconst { genMockResponse } = await import('../mocker/');\n\n\t\t\t\treturn await genMockResponse(clientRequest.mockerOptions, fields, data, requestInitSignal);\n\t\t\t}\n\n\t\t\tconst requestInit: RequestInit = {\n\t\t\t\t...client.options,\n\t\t\t\tmethod: clientRequest.options.method,\n\t\t\t\tbody: requestInitBody,\n\t\t\t\tsignal: requestInitSignal,\n\t\t\t};\n\n\t\t\tlet request = new Request(url, requestInit);\n\n\t\t\trequest.headers.set('x-request-id', middlewareCtxWithoutRequest.id);\n\t\t\trequest.headers.set('accept', clientRequest.options.accept);\n\n\t\t\t// при отправке данных в `FormData` `fetch()` сам укажет правильный заголовок `multipart/form-data`\n\t\t\tif (!hasFiles) {\n\t\t\t\trequest.headers.set('content-type', 'application/json');\n\t\t\t}\n\n\t\t\tconst middlewareCtx: Api.MiddlewareCallbackParams = {\n\t\t\t\t...middlewareCtxWithoutRequest,\n\t\t\t\trequest,\n\t\t\t};\n\n\t\t\tclientRequest.inLoading = true;\n\t\t\tclientRequest.options.onLoading?.(clientRequest.inLoading, middlewareCtx);\n\n\t\t\tlet response: Response | undefined = undefined;\n\n\t\t\tconst requestOrResponse = await client.middlewareOnRequest(request, middlewareCtx);\n\n\t\t\tif (requestOrResponse instanceof Response) {\n\t\t\t\tresponse = requestOrResponse;\n\t\t\t} else if (requestOrResponse instanceof Request) {\n\t\t\t\trequest = requestOrResponse;\n\t\t\t}\n\n\t\t\tif (!response) {\n\t\t\t\ttry {\n\t\t\t\t\tresponse = await fetch(request);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tresponse = await client.middlewareOnError(e, middlewareCtx);\n\t\t\t\t} finally {\n\t\t\t\t\tclientRequest.inLoading = false;\n\t\t\t\t\tclientRequest.options.onLoading?.(clientRequest.inLoading, middlewareCtx);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresponse = await client.middlewareOnResponse(response, middlewareCtx);\n\n\t\t\tlet res: any;\n\t\t\tlet responseText: string | undefined;\n\t\t\tlet formatError: undefined | Api.FormatError = undefined;\n\n\t\t\ttry {\n\t\t\t\t// json - стандартные формат, он может быть возвращен в запросах с другим responseType, если в них произошла ошибка\n\t\t\t\tconst isJSON = response.headers.get('content-type')?.includes('application/json');\n\n\t\t\t\tresponseText = await response.text();\n\n\t\t\t\tif (this.options.accept === 'application/json' || isJSON) {\n\t\t\t\t\tres = JSON.parse(responseText);\n\t\t\t\t} else {\n\t\t\t\t\tif (client.useExt) {\n\t\t\t\t\t\tres = genExtRes(responseText, undefined, response);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tres = responseText;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof SyntaxError || e instanceof TypeError) {\n\t\t\t\t\tformatError = e;\n\t\t\t\t\tformatError.responseText = responseText;\n\t\t\t\t}\n\n\t\t\t\t// если в результате не пришел json, сгенерировать объект результата и добавить информацию об ответе API\n\t\t\t\tif (client.useExt && formatError) {\n\t\t\t\t\tlet errorCode = response.status;\n\t\t\t\t\tlet errorMessage = response.statusText;\n\n\t\t\t\t\tif (errorCode === 200) {\n\t\t\t\t\t\terrorCode = 10000;\n\t\t\t\t\t\terrorMessage = 'Error API response';\n\t\t\t\t\t}\n\n\t\t\t\t\tres = genExtRes(null, [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcode: errorCode,\n\t\t\t\t\t\t\tstring: errorMessage,\n\t\t\t\t\t\t},\n\t\t\t\t\t], response);\n\n\t\t\t\t\tif (client.options.useApiConsole) console.error(e);\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (client.useExt) {\n\t\t\t\tres.response = response;\n\n\t\t\t\tif (res) {\n\t\t\t\t\tclientRequest.options.onApiLoaded?.(res, middlewareCtx, client.options.requestOptions?.onApiLoaded);\n\t\t\t\t}\n\n\t\t\t\tif (res?.errors) {\n\t\t\t\t\tif (client.options.useApiConsole) console.warn(new Error('API error'), { res });\n\n\t\t\t\t\tclientRequest.options.onApiError?.(res, { ...middlewareCtx, formatError }, client.options.requestOptions?.onApiError);\n\t\t\t\t}\n\n\t\t\t\tif (res?.messages) {\n\t\t\t\t\tclientRequest.options.onApiMessage?.(res, middlewareCtx);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn res;\n\t\t},\n\t};\n\n\treturn clientRequest;\n};\n","import { createRequestOptions } from './request-options';\nimport { createRequest } from './request';\n\nexport class Client<paths extends Api.PathsAbstract, UseExt extends Api.Ext.UseExt> {\n\n\treadonly options: Readonly<Api.ClientOptions>;\n\treadonly useExt: UseExt;\n\treadonly middlewares: Api.Middleware[] = [];\n\tprivate mokerByPath = new Map<Api.Path<paths>, Api.Mocker.Options<any, any>>();\n\tabortControllers: Record<string, AbortController> = {};\n\n\tconstructor(clientOptions: Partial<Api.ClientOptions> = {}, useExt: UseExt) {\n\t\tclientOptions.requestOptions = createRequestOptions(clientOptions.requestOptions);\n\t\tclientOptions.useApiConsole ??= true;\n\n\t\tclientOptions.fetch ??= globalThis.fetch;\n\t\tclientOptions.Request ??= globalThis.Request;\n\t\tclientOptions.querySerializer ??= async (params) => {\n\t\t\tconst { querySerializer } = await import('../utils/lazy');\n\n\t\t\treturn querySerializer(params);\n\t\t};\n\t\tclientOptions.bodySerializer ??= (body) => typeof body === 'string' ? body : JSON.stringify(body);\n\n\t\tthis.options = clientOptions as Api.ClientOptions;\n\n\t\tthis.useExt = useExt;\n\t}\n\n\tgenerateUUID() {\n\t\tif (crypto?.randomUUID) {\n\t\t\treturn crypto.randomUUID();\n\t\t}\n\n\t\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n\t\t\tconst r = Math.random() * 16 | 0;\n\t\t\tconst v = c === 'x' ? r : (r & 0x3 | 0x8);\n\t\t\treturn v.toString(16);\n\t\t});\n\t}\n\n\t/**\n\t * Зарегистрировать middleware\n\t */\n\tuse(middleware: Api.Middleware) {\n\t\tthis.middlewares.push(middleware);\n\t}\n\n\t/**\n\t * Создать объект запроса\n\t *\n\t * После создания объекта он заполняется необходимыми данными и выполняет запросы к API с помощью APIRequest2.call();\n\t *\n\t * Опционально generic указывать нельзя, поэтому необходимо дублировать определение fetchStyle, [см.](https://github.com/Microsoft/TypeScript/issues/26242)\n\t *\n\t * @param path Путь метода API\n\t * @param fieldsNarrow Список получаемых полей, для методов API с моделью. Если объект запроса переиспользуется, и список полей меняется, указывайте его непосредственно при вызове `api.call()`\n\t */\n\tgen<\n\t\tPath extends Api.Path<paths>,\n\t\tFieldsNarrow extends Api.ParamsFields<Api.ClientRequestContext<paths, Path, UseExt>>\n\t>(\n\t\tpath: Path,\n\t\tfieldsNarrow?: FieldsNarrow,\n\t): Api.ClientRequest<Api.ClientRequestContext<paths, Path, UseExt>, FieldsNarrow> {\n\t\ttype RequestContext = Api.ClientRequestContext<paths, Path, UseExt>;\n\n\t\treturn createRequest<RequestContext, FieldsNarrow>(this, path, fieldsNarrow);\n\t}\n\n\t/**\n\t * Создать объект запроса, не описанного в OpenAPI\n\t */\n\tgenAny<\n\t\tParams extends Record<string, any>,\n\t\tResult = any,\n\t\tFieldsNarrow extends Api.Ext.Schemas['Fields'] | undefined = undefined\n\t>(path: Api.PathAbstract, fieldsNarrow?: FieldsNarrow): Api.ClientRequestCustom<UseExt, Params, Result> {\n\t\treturn this.gen(path as any, fieldsNarrow as any) as unknown as Api.ClientRequestCustom<UseExt, Params, Result>;\n\t}\n\n\t/**\n\t * Создать контекст выполнения запроса\n\t */\n\tgenMiddlewareCtx(\n\t\tclientRequest: Api.ClientRequest<any, any, any>,\n\t\tdata: Record<string, any>,\n\t): Omit<Api.MiddlewareCallbackParams, 'request'> {\n\t\tconst id = this.generateUUID();\n\n\t\tconst options: Api.BaseOptions = Object.freeze({\n\t\t\tbaseUrl: this.options.baseUrl,\n\t\t\tquerySerializer: this.options.querySerializer,\n\t\t\tbodySerializer: this.options.bodySerializer,\n\t\t\tRequest: this.options.Request,\n\t\t\tfetch: this.options.fetch,\n\t\t});\n\n\t\treturn {\n\t\t\tuseExt: this.useExt,\n\t\t\trequestOptions: clientRequest.options,\n\t\t\tdata,\n\t\t\tmiddlewareData: {},\n\t\t\toptions,\n\t\t\tschemaPath: clientRequest.path,\n\t\t\tid,\n\t\t};\n\t};\n\n\t/**\n\t * Обработчик middleware.onRequest\n\t *\n\t * @param request Запрос для обработки\n\t * @param middlewareCtx Контекст выполнения запроса\n\t * @return Новый экземпляр `Request` или `Response` при модификации запроса, или undefined\n\t */\n\tasync middlewareOnRequest(\n\t\trequest: Request,\n\t\tmiddlewareCtx: Api.MiddlewareCallbackParams,\n\t): Promise<Request | Response | undefined> {\n\t\tfor (const middleware of this.middlewares) {\n\t\t\tconst result = await middleware.onRequest?.({\n\t\t\t\t...middlewareCtx,\n\t\t\t\trequest,\n\t\t\t});\n\n\t\t\tif (result) {\n\t\t\t\tif (result instanceof Request) {\n\t\t\t\t\trequest = result;\n\t\t\t\t} else if (result instanceof Response) {\n\t\t\t\t\treturn result;\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error('onRequest: must return new Request() or Response() when modifying the request');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn request;\n\t}\n\n\t/**\n\t * Обработчик middleware.onResponse\n\t *\n\t * @param `error` Ошибка, переданная для обработки\n\t * @param middlewareCtx\n\t * @return Новый экземпляр `Response` при успешной обработке или выбрасывает ошибку\n\t */\n\tasync middlewareOnError(\n\t\terror: Error | unknown,\n\t\tmiddlewareCtx: Api.MiddlewareCallbackParams,\n\t): Promise<Response | never> {\n\t\tlet errorAfterMiddleware = error;\n\n\t\tfor (const middleware of this.middlewares) {\n\t\t\tconst result = await middleware.onError?.({\n\t\t\t\t...middlewareCtx,\n\t\t\t\terror: errorAfterMiddleware,\n\t\t\t});\n\n\t\t\tif (result) {\n\t\t\t\tif (result instanceof Response) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result instanceof Error) {\n\t\t\t\t\terrorAfterMiddleware = result;\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tthrow new Error('onError: must return new Response() or instance of Error');\n\t\t\t}\n\t\t}\n\n\t\tthrow errorAfterMiddleware;\n\t}\n\n\t/**\n\t * Обработчик middleware.onResponse\n\t *\n\t * @param response Ответ для обработки\n\t * @param middlewareCtx Контекст выполнения запроса\n\t * @return Новый экземпляр `Response` при модификации ответа, или undefined\n\t */\n\tasync middlewareOnResponse(\n\t\tresponse: Response,\n\t\tmiddlewareCtx: Api.MiddlewareCallbackParams,\n\t): Promise<Response> {\n\t\tfor (const middleware of this.middlewares) {\n\t\t\tconst result = await middleware.onResponse?.({\n\t\t\t\t...middlewareCtx,\n\t\t\t\tresponse,\n\t\t\t});\n\n\t\t\tif (result) {\n\t\t\t\tif (!(result instanceof Response)) {\n\t\t\t\t\tthrow new Error('onResponse: must return new Response() when modifying the response');\n\t\t\t\t}\n\n\t\t\t\tresponse = result;\n\t\t\t}\n\t\t}\n\n\t\treturn response;\n\t}\n\n\t/**\n\t * Установить генератор данных вместо реальных запросов к серверу для конкретного метода API\n\t */\n\tsetMocker<\n\t\tResult extends Api.Mocker.Result = Api.Mocker.Result,\n\t\tParams extends Api.Mocker.Params = Api.Mocker.Params\n\t>(\n\t\tpath: Api.Path<paths>,\n\t\tmocker: Api.Mocker.Options<Result, Params>,\n\t) {\n\t\tthis.mokerByPath.set(path, mocker);\n\n\t\t// @ts-ignore\n\t\tif (!this.genOriginal) {\n\t\t\t// @ts-ignore\n\t\t\tthis.genOriginal = this.gen.bind(this);\n\n\t\t\tthis.gen = (_path, fieldsNarrow) => {\n\t\t\t\t// @ts-ignore\n\t\t\t\tconst api = this.genOriginal(_path, fieldsNarrow);\n\n\t\t\t\tconst mocker = this.mokerByPath.get(_path);\n\t\t\t\tif (mocker) {\n\t\t\t\t\tapi.setMocker(mocker);\n\t\t\t\t}\n\n\t\t\t\treturn api;\n\t\t\t};\n\t\t}\n\t}\n\n}\n","import { Client } from './client/client';\n\nexport * from './utils/field';\nexport * from './utils/common';\n\nexport const postInWindow: typeof import('./utils/lazy').postInWindow = async (...args) => {\n\tconst { postInWindow } = await import('./utils/lazy');\n\n\treturn postInWindow(...args);\n};\n\nexport const dataToForm: typeof import('./utils/lazy').dataToForm = async (...args) => {\n\tconst { dataToForm } = await import('./utils/lazy');\n\n\treturn dataToForm(...args);\n};\n\n/**\n * Создать API клиент\n *\n * @see Api.Ext.UseExt\n */\nexport const createClient = <\n\tpaths extends Api.PathsAbstract,\n\tUseExt extends Api.Ext.UseExt\n>(\n\tclientOptions: Partial<Api.ClientOptions> = {},\n\tuseExt: UseExt,\n) => {\n\treturn new Client<paths, UseExt>(clientOptions, useExt);\n};\n"],"names":["createRequestOptions","requestOptions","genExtRes","result","errors","response","isPublicAPI","path","getBaseDomainUrl","useMainDomain","input","subdomain","protocol","hostname","port","baseHostname","parts","checkHasFiles","data","value","item","clientRequest","params","options","fields","fetchStyle","fieldsPrepared","field","fieldsNarrow","post","client","fingerprint","controller","Request","fetch","hasFiles","url","requestInitBody","formDataSerializer","requestInitSignal","genMockResponse","request","middlewareCtxWithoutRequest","requestOrResponse","e","res","responseText","isJSON","formatError","errorCode","errorMessage","middlewareCtx","Client","clientOptions","useExt","querySerializer","body","c","r","middleware","id","error","errorAfterMiddleware","mocker","api","mocker2","postInWindow","args","postInWindow2","dataToForm","dataToForm2","createClient"],"mappings":"4HAAO,MAAAA,EAAA,CAAAC,EAAA,CAAA,KACNA,EAAA,CAAA,GAAAA,CAAA,0CAEAA,EAAA,qBAAA,GACAA,EAAA,SAAA,OACAA,EAAA,SAAA,mBAEAA,GCFMC,EAAA,CAAAC,EAAAC,EAAAC,KAKN,CAAO,OAAAF,EACN,OAAAC,eAWKE,EAAAC,GACNA,EAAA,WAAA,mBAAA,EAMMC,EAAA,CAAAC,EAAA,GAAAC,EAAA,OAAA,SAAA,KAAAC,IAAA,CACN,KAAA,CAAA,SAAAC,EAAA,SAAAC,EAAA,KAAAC,CAAA,EAAA,IAAA,IAAAJ,CAAA,iBAMAK,EAAA,CAAAN,GAAAO,EAAA,QAAA,GAAA,WAAA,KAAAH,CAAA,GAAAA,IAAA,YAAAA,EAAAG,EAAA,MAAA,EAAA,EAAA,KAAA,GAAA,mCAKD,EClCAC,EAAAC,yBAC4BC,GAAAA,aAAA,UAAAA,aAAA,MAAAA,aAAA,MAAA,MAAA,QAAAA,CAAA,GAAAA,EAAA,KAAAC,GAAAA,aAAA,MAAAA,aAAA,IAAA,qCAiBf,KAAAb,6FAKF,aAAA,IAAAc,EAAA,UACyB,UAAAC,IAGjCD,EAAA,OAAA,CAAA,GAAAC,CAAA,EAEAD,GACD,aAAAC,8BAKCD,GACD,WAAAE,+BAKCF,GACD,UAAAE,IAGCF,EAAA,cAAAE,EAEAF,GACD,KAAA,MAAAG,GAGCH,EAAA,KAAAG,CAAA,EACD,UAAA,MAAAC,EAAAD,gBAIA,gBAAA,MAAAA,GAAA,0LAUoD,EACpD,iBAAA,MAAAA,GAAA,yLAUmD,EACnD,QAAA,CAAAA,EAAAC,IAAA,kDAWE,IAAAC,EAAA,CAAA,GAAAF,CAAA,MAICE,EAAAA,EAAA,OAAAC,GAAAC,EAAA,SAAAD,CAAA,CAAA,GAGDE,EAAA,OAAAH,CAAc,UAGbG,EAAA,OAAAD,cAKDC,EAAA,YAAAJ,GAGDI,CAAO,0BAIP,GAAA,CAAAR,EAAA,QAAA,iBAAA,iDAIAS,EAAA,iBAAAC,CAAA,GAAA,MAAsC,IAAA,aAAA,4CAAAV,EAAA,QAAA,gBAAA,GAAA,YAAA,GAItC,MAAAW,EAAA,IAAA,gBAEA,OAAAF,EAAA,iBAAAC,CAAA,EAAAC,UAEkB,EACnB,MAAA,KAAAR,EAAAC,EAAA,CAMC,MAAAQ,EAAAH,EAAA,QAAA,QACAI,EAAAJ,EAAA,QAAA,gFAQA,MAAAK,EAAAlB,EAAAC,CAAA,kCAEC,MAAA,IAAA,MAAA,yCAAA,EAGD,IAAAkB,EAAAf,EAAA,yCAME,MAAA,IAAA,MAAA,yCAAA,gGAIDgB,EAAAC,EAAApB,CAAA,iCAEAkB,GAAA,IAAA,MAAAN,EAAA,QAAA,gBAAAZ,CAAA,gCAMD,IAAAqB,EAAAlB,EAAA,mBAAA,EAEA,GAAAA,EAAA,cAAA,6FAGC,OAAA,MAAAmB,EAAAnB,EAAA,cAAAG,EAAAN,EAAAqB,CAAA,wBAIU,OAAAlB,EAAA,QAAA,cAEJ,OAAAkB,uDAOPE,EAAA,QAAA,IAAA,SAAApB,EAAA,QAAA,MAAA,+DAOoD,GAAAqB,aAKpDrB,EAAA,UAAA,0FAOAsB,aAAA,aACYA,aAAAV,YAMX,GAAA,CACC5B,EAAA,MAAA6B,EAAAO,CAAA,CAA8B,OAAAG,EAAA,iCAE4B,QAAA,CAE1DvB,EAAA,UAAA,4EAOF,IAAAwB,EACAC,IAGA,GAAA,CAEC,MAAAC,EAAA1C,EAAA,QAAA,IAAA,cAAA,GAAA,SAAA,kBAAA,EAEAyC,EAAA,MAAAzC,EAAA,KAAA,8CAGCwC,EAAA,KAAA,MAAAC,CAAA,EAEAhB,EAAA,0BAKD,OAAAc,EAAA,CAQA,4DAJCI,EAAA,aAAAF,GAIDhB,EAAA,QAAAkB,EAAA,CACC,IAAAC,EAAA5C,EAAA,OACA6C,EAAA7C,EAAA,WAEA4C,IAAA,oCAKAJ,EAAA3C,EAAA,KAAA,SAEQ,OAAAgD,CACE,MAIVpB,EAAA,QAAA,eAAA,QAAA,MAAAc,CAAA,CAAiD,KAEjD,OAAAA,EAIF,OAAAd,EAAA,SACCe,EAAA,SAAAxC,KAGCgB,EAAA,QAAA,cAAAwB,EAAAM,EAAArB,EAAA,QAAA,gBAAA,WAAA,EAGDe,GAAA,oKAMAA,GAAA,yCAKDA,IAIF,OAAAxB,GCpSM,MAAA+B,CAAA,CAA6E,QAE1E,sBAEiC,YAAA,IAAA,wBAEW,YAAAC,EAAA,CAAA,EAAAC,EAAA,sCAIpDD,EAAA,gBAAA,GAEAA,EAAA,QAAA,WAAA,MACAA,EAAA,UAAA,WAAA,QACAA,EAAA,kBAAA,MAAA/B,GAAA,4FAGC,OAAAiC,EAAAjC,CAAA,CAA6B,EAE9B+B,EAAA,iBAAAG,GAAA,OAAAA,GAAA,SAAAA,EAAA,KAAA,UAAAA,CAAA,EAEA,KAAA,QAAAH,EAEA,KAAA,OAAAC,EACD,cAAA,CAGC,OAAA,QAAA,WACC,OAAA,WAAA,wFAMA,OADAG,IAAA,IAAAC,EAAAA,EAAA,EAAA,GACA,SAAA,EAAA,CAAoB,CAAA,SAQrB,KAAA,YAAA,KAAAC,CAAA,EACD,IAAApD,EAAAqB,EAAA,oBAsBA,OAAArB,EAAAqB,EAAA,sBAWA,iBAAAP,EAAAH,EAAA,CASC,MAAA0C,EAAA,KAAA,aAAA,EAEArC,EAAA,OAAA,OAAA,CAA+C,QAAA,KAAA,QAAA,QACxB,gBAAA,KAAA,QAAA,gBACQ,eAAA,KAAA,QAAA,eACD,QAAA,KAAA,QAAA,QACP,MAAA,KAAA,QAAA,KACF,CAAA,EAGrB,MAAA,CAAO,OAAA,KAAA,OACO,eAAAF,EAAA,QACiB,KAAAH,oBAEb,QAAAK,EACjB,WAAAF,EAAA,WAIF,MAAA,oBAAAoB,EAAAU,EAAA,CAaC,UAAAQ,KAAA,KAAA,YAAA,CACC,MAAAxD,EAAA,MAAAwD,EAAA,YAAA,CAA4C,GAAAR,WAE3C,CAAA,OAIA,GAAAhD,aAAA,gBACW,IAAAA,aAAA,SAEV,OAAAA,EAEA,MAAA,IAAA,MAAA,+EAAA,GAKH,OAAAsC,EACD,MAAA,kBAAAoB,EAAAV,EAAA,SAeC,UAAAQ,KAAA,KAAA,YAAA,CACC,MAAAxD,EAAA,MAAAwD,EAAA,UAAA,CAA0C,GAAAR,EACtC,MAAAW,CACI,CAAA,QAIP,GAAA3D,aAAA,SACC,OAAAA,EAGD,GAAAA,aAAA,MAAA,cAMA,MAAA,IAAA,MAAA,0DAAA,GAIF,MAAA2D,EACD,MAAA,qBAAAzD,EAAA8C,EAAA,CAaC,UAAAQ,KAAA,KAAA,YAAA,CACC,MAAAxD,EAAA,MAAAwD,EAAA,aAAA,CAA6C,GAAAR,YAE5C,CAAA,QAIA,GAAA,EAAAhD,aAAA,UACC,MAAA,IAAA,MAAA,oEAAA,OAOH,OAAAE,EACD,UAAAE,EAAAwD,EAAA,2BAeC,KAAA,sIAUGC,EAAA,UAAAC,CAAA,EAGDD,CAAO,GAKX,CCxOO,MAAAE,EAAA,SAAAC,IAAA,yFAGN,OAAAC,EAAA,GAAAD,CAAA,CACD,EAEOE,EAAA,SAAAF,IAAA,uFAGN,OAAAG,EAAA,GAAAH,CAAA,CACD,EAOOI,EAAA,CAAAlB,EAAA,CAAA,EAAAC,IAON,IAAAF,EAAAC,EAAAC,CAAA"}
|
|
1
|
+
{"version":3,"sources":["api/index.js"],"names":["vue","exports","api_CawzY1Cw_esm_js_1","field_CjkpGeA7_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,8BAAkC,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAuB,EAAyB,CAC7K,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,aAAe,EAAQ,YAAc,EAAQ,iBAAmB,EAAQ,cAAgB,EAAQ,eAAiB,EAAQ,UAAY,EAAQ,WAAa,EAAQ,aAAe,IAAK,GAC9L,OAAO,eAAeA,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CAC9H,OAAO,eAAeD,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CACvH,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,cAAe,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CACzH,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CAC1H,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CAC1H,OAAO,eAAeD,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,GAAM,CAAC,CAC7H,OAAO,eAAeF,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,GAAM,CAAC,EAChI","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/api-CawzY1Cw.esm.js\", \"../.chunks/field-CjkpGeA7.esm.js\"], function (require, exports, api_CawzY1Cw_esm_js_1, field_CjkpGeA7_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.postInWindow = exports.isPublicAPI = exports.getBaseDomainUrl = exports.genFieldOrder = exports.genFieldFilter = exports.genExtRes = exports.dataToForm = exports.createClient = void 0;\n Object.defineProperty(exports, \"getBaseDomainUrl\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.a; } });\n Object.defineProperty(exports, \"genExtRes\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.i; } });\n Object.defineProperty(exports, \"dataToForm\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.n; } });\n Object.defineProperty(exports, \"isPublicAPI\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.o; } });\n Object.defineProperty(exports, \"postInWindow\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.r; } });\n Object.defineProperty(exports, \"createClient\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.t; } });\n Object.defineProperty(exports, \"genFieldOrder\", { enumerable: true, get: function () { return field_CjkpGeA7_esm_js_1.n; } });\n Object.defineProperty(exports, \"genFieldFilter\", { enumerable: true, get: function () { return field_CjkpGeA7_esm_js_1.t; } });\n});\n"]}
|
package/api/index.d.ts
CHANGED
package/api/index.js
CHANGED
|
@@ -1,285 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
errors: t,
|
|
5
|
-
response: s
|
|
6
|
-
}), k = (o) => o.startsWith("/system_2/common/"), A = (o = !1, t = window.location.href, s) => {
|
|
7
|
-
const { protocol: e, hostname: r, port: n } = new URL(t), i = r.split("."), d = !o || i.length <= 2 || /^[\d.]+$/.test(r) || r === "localhost" ? r : i.slice(-2).join(".");
|
|
8
|
-
return `${e}//${d}${n ? `:${n}` : ""}`;
|
|
9
|
-
}, F = (o) => Object.values(o).some(
|
|
10
|
-
(t) => t instanceof FileList || t instanceof File || t instanceof Blob || Array.isArray(t) && t.some((s) => s instanceof File || s instanceof Blob)
|
|
11
|
-
), C = (o, t, s) => {
|
|
12
|
-
const e = {
|
|
13
|
-
inLoading: !1,
|
|
14
|
-
path: t,
|
|
15
|
-
url: o.options.baseUrl + t,
|
|
16
|
-
options: O(o.options.requestOptions),
|
|
17
|
-
mockerOptions: void 0,
|
|
18
|
-
params: {},
|
|
19
|
-
// незаполненное свойство
|
|
20
|
-
getInLoading: () => e.inLoading,
|
|
21
|
-
setParams: (r) => (e.params = { ...r }, e),
|
|
22
|
-
changeParams: (r) => (Object.assign(e.params, r), e),
|
|
23
|
-
setOptions: (r) => (Object.assign(e.options, r), e),
|
|
24
|
-
setMocker: (r) => (e.mockerOptions = r, e),
|
|
25
|
-
call: async (r) => e.exec(r),
|
|
26
|
-
callFetch: async (r, n) => e.exec(n, r),
|
|
27
|
-
callInNewWindow: async (r) => {
|
|
28
|
-
const n = e.genData(r), i = o.genMiddlewareCtx(e, n);
|
|
29
|
-
o.options.onPrepareData?.(n, i);
|
|
30
|
-
const { postInWindow: d } = await import("../.chunks/lazy-HKSyLh72.es.js");
|
|
31
|
-
d(e.url, n, "_blank");
|
|
32
|
-
},
|
|
33
|
-
callInSelfWindow: async (r) => {
|
|
34
|
-
const n = e.genData(r), i = o.genMiddlewareCtx(e, n);
|
|
35
|
-
o.options.onPrepareData?.(n, i);
|
|
36
|
-
const { postInWindow: d } = await import("../.chunks/lazy-HKSyLh72.es.js");
|
|
37
|
-
d(e.url, n, "_self");
|
|
38
|
-
},
|
|
39
|
-
genData: (r, n) => {
|
|
40
|
-
const i = { ...e.params };
|
|
41
|
-
if (delete i.fetch_style, r) {
|
|
42
|
-
let d = [...r];
|
|
43
|
-
s && (d = d.filter((l) => s.includes(l))), i.fields = d;
|
|
44
|
-
} else
|
|
45
|
-
s && (i.fields = s);
|
|
46
|
-
return n && (i.fetch_style = n), i;
|
|
47
|
-
},
|
|
48
|
-
abortByFingerprint: () => {
|
|
49
|
-
if (!e.options.checkFingerprint) return;
|
|
50
|
-
const r = e.path + e.options.checkFingerprint;
|
|
51
|
-
o.abortControllers[r]?.abort(
|
|
52
|
-
new DOMException(`Stopped previous request by fingerprint: ${e.options.checkFingerprint}`, "AbortError")
|
|
53
|
-
);
|
|
54
|
-
const n = new AbortController();
|
|
55
|
-
return o.abortControllers[r] = n, n.signal;
|
|
56
|
-
},
|
|
57
|
-
/**
|
|
58
|
-
* Общая функция выполнения запросов
|
|
59
|
-
*/
|
|
60
|
-
async exec(r, n) {
|
|
61
|
-
const i = o.options.Request, d = o.options.fetch, l = e.genData(r, n), g = o.genMiddlewareCtx(e, l);
|
|
62
|
-
o.options.onPrepareData?.(l, g);
|
|
63
|
-
const x = F(l);
|
|
64
|
-
if (x && e.options.method !== "POST")
|
|
65
|
-
throw new Error("Files can be sent only in POST requests");
|
|
66
|
-
let R = e.url, y;
|
|
67
|
-
if (x) {
|
|
68
|
-
if (e.options.method !== "POST")
|
|
69
|
-
throw new Error("Files can be sent only in POST requests");
|
|
70
|
-
const { formDataSerializer: p } = await import("../.chunks/lazy-HKSyLh72.es.js");
|
|
71
|
-
y = p(l);
|
|
72
|
-
} else e.options.method !== "POST" ? R += "?" + await o.options.querySerializer(l) : y = o.options.bodySerializer(l);
|
|
73
|
-
let E = e.abortByFingerprint();
|
|
74
|
-
if (e.mockerOptions) {
|
|
75
|
-
const { genMockResponse: p } = await import("../.chunks/index-DkQWJkMc.es.js");
|
|
76
|
-
return await p(e.mockerOptions, r, l, E);
|
|
77
|
-
}
|
|
78
|
-
const P = {
|
|
79
|
-
...o.options,
|
|
80
|
-
method: e.options.method,
|
|
81
|
-
body: y,
|
|
82
|
-
signal: E
|
|
83
|
-
};
|
|
84
|
-
let f = new i(R, P);
|
|
85
|
-
f.headers.set("x-request-id", g.id), f.headers.set("accept", e.options.accept), x || f.headers.set("content-type", "application/json");
|
|
86
|
-
const u = {
|
|
87
|
-
...g,
|
|
88
|
-
request: f
|
|
89
|
-
};
|
|
90
|
-
e.inLoading = !0, e.options.onLoading?.(e.inLoading, u);
|
|
91
|
-
let a;
|
|
92
|
-
const w = await o.middlewareOnRequest(f, u);
|
|
93
|
-
if (w instanceof Response ? a = w : w instanceof i && (f = w), !a)
|
|
94
|
-
try {
|
|
95
|
-
a = await d(f);
|
|
96
|
-
} catch (p) {
|
|
97
|
-
a = await o.middlewareOnError(p, u);
|
|
98
|
-
} finally {
|
|
99
|
-
e.inLoading = !1, e.options.onLoading?.(e.inLoading, u);
|
|
100
|
-
}
|
|
101
|
-
a = await o.middlewareOnResponse(a, u);
|
|
102
|
-
let c, h, m;
|
|
103
|
-
try {
|
|
104
|
-
const p = a.headers.get("content-type")?.includes("application/json");
|
|
105
|
-
h = await a.text(), this.options.accept === "application/json" || p ? c = JSON.parse(h) : o.useExt ? c = S(h, void 0, a) : c = h;
|
|
106
|
-
} catch (p) {
|
|
107
|
-
if ((p instanceof SyntaxError || p instanceof TypeError) && (m = p, m.responseText = h), o.useExt && m) {
|
|
108
|
-
let b = a.status, q = a.statusText;
|
|
109
|
-
b === 200 && (b = 1e4, q = "Error API response"), c = S(null, [
|
|
110
|
-
{
|
|
111
|
-
code: b,
|
|
112
|
-
string: q
|
|
113
|
-
}
|
|
114
|
-
], a), o.options.useApiConsole && console.error(p);
|
|
115
|
-
} else
|
|
116
|
-
throw p;
|
|
117
|
-
}
|
|
118
|
-
return o.useExt && (c.response = a, c && e.options.onApiLoaded?.(c, u, o.options.requestOptions?.onApiLoaded), c?.errors && (o.options.useApiConsole && console.warn(new Error("API error"), { res: c }), e.options.onApiError?.(c, { ...u, formatError: m }, o.options.requestOptions?.onApiError)), c?.messages && e.options.onApiMessage?.(c, u)), c;
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
return e;
|
|
122
|
-
};
|
|
123
|
-
class I {
|
|
124
|
-
options;
|
|
125
|
-
useExt;
|
|
126
|
-
middlewares = [];
|
|
127
|
-
mokerByPath = /* @__PURE__ */ new Map();
|
|
128
|
-
abortControllers = {};
|
|
129
|
-
constructor(t = {}, s) {
|
|
130
|
-
t.requestOptions = O(t.requestOptions), t.useApiConsole ??= !0, t.fetch ??= globalThis.fetch, t.Request ??= globalThis.Request, t.querySerializer ??= async (e) => {
|
|
131
|
-
const { querySerializer: r } = await import("../.chunks/lazy-HKSyLh72.es.js");
|
|
132
|
-
return r(e);
|
|
133
|
-
}, t.bodySerializer ??= (e) => typeof e == "string" ? e : JSON.stringify(e), this.options = t, this.useExt = s;
|
|
134
|
-
}
|
|
135
|
-
generateUUID() {
|
|
136
|
-
return crypto?.randomUUID ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (t) => {
|
|
137
|
-
const s = Math.random() * 16 | 0;
|
|
138
|
-
return (t === "x" ? s : s & 3 | 8).toString(16);
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Зарегистрировать middleware
|
|
143
|
-
*/
|
|
144
|
-
use(t) {
|
|
145
|
-
this.middlewares.push(t);
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Создать объект запроса
|
|
149
|
-
*
|
|
150
|
-
* После создания объекта он заполняется необходимыми данными и выполняет запросы к API с помощью APIRequest2.call();
|
|
151
|
-
*
|
|
152
|
-
* Опционально generic указывать нельзя, поэтому необходимо дублировать определение fetchStyle, [см.](https://github.com/Microsoft/TypeScript/issues/26242)
|
|
153
|
-
*
|
|
154
|
-
* @param path Путь метода API
|
|
155
|
-
* @param fieldsNarrow Список получаемых полей, для методов API с моделью. Если объект запроса переиспользуется, и список полей меняется, указывайте его непосредственно при вызове `api.call()`
|
|
156
|
-
*/
|
|
157
|
-
gen(t, s) {
|
|
158
|
-
return C(this, t, s);
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Создать объект запроса, не описанного в OpenAPI
|
|
162
|
-
*/
|
|
163
|
-
genAny(t, s) {
|
|
164
|
-
return this.gen(t, s);
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Создать контекст выполнения запроса
|
|
168
|
-
*/
|
|
169
|
-
genMiddlewareCtx(t, s) {
|
|
170
|
-
const e = this.generateUUID(), r = Object.freeze({
|
|
171
|
-
baseUrl: this.options.baseUrl,
|
|
172
|
-
querySerializer: this.options.querySerializer,
|
|
173
|
-
bodySerializer: this.options.bodySerializer,
|
|
174
|
-
Request: this.options.Request,
|
|
175
|
-
fetch: this.options.fetch
|
|
176
|
-
});
|
|
177
|
-
return {
|
|
178
|
-
useExt: this.useExt,
|
|
179
|
-
requestOptions: t.options,
|
|
180
|
-
data: s,
|
|
181
|
-
middlewareData: {},
|
|
182
|
-
options: r,
|
|
183
|
-
schemaPath: t.path,
|
|
184
|
-
id: e
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Обработчик middleware.onRequest
|
|
189
|
-
*
|
|
190
|
-
* @param request Запрос для обработки
|
|
191
|
-
* @param middlewareCtx Контекст выполнения запроса
|
|
192
|
-
* @return Новый экземпляр `Request` или `Response` при модификации запроса, или undefined
|
|
193
|
-
*/
|
|
194
|
-
async middlewareOnRequest(t, s) {
|
|
195
|
-
for (const e of this.middlewares) {
|
|
196
|
-
const r = await e.onRequest?.({
|
|
197
|
-
...s,
|
|
198
|
-
request: t
|
|
199
|
-
});
|
|
200
|
-
if (r)
|
|
201
|
-
if (r instanceof Request)
|
|
202
|
-
t = r;
|
|
203
|
-
else {
|
|
204
|
-
if (r instanceof Response)
|
|
205
|
-
return r;
|
|
206
|
-
throw new Error("onRequest: must return new Request() or Response() when modifying the request");
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
return t;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Обработчик middleware.onResponse
|
|
213
|
-
*
|
|
214
|
-
* @param `error` Ошибка, переданная для обработки
|
|
215
|
-
* @param middlewareCtx
|
|
216
|
-
* @return Новый экземпляр `Response` при успешной обработке или выбрасывает ошибку
|
|
217
|
-
*/
|
|
218
|
-
async middlewareOnError(t, s) {
|
|
219
|
-
let e = t;
|
|
220
|
-
for (const r of this.middlewares) {
|
|
221
|
-
const n = await r.onError?.({
|
|
222
|
-
...s,
|
|
223
|
-
error: e
|
|
224
|
-
});
|
|
225
|
-
if (n) {
|
|
226
|
-
if (n instanceof Response)
|
|
227
|
-
return n;
|
|
228
|
-
if (n instanceof Error) {
|
|
229
|
-
e = n;
|
|
230
|
-
continue;
|
|
231
|
-
}
|
|
232
|
-
throw new Error("onError: must return new Response() or instance of Error");
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
throw e;
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* Обработчик middleware.onResponse
|
|
239
|
-
*
|
|
240
|
-
* @param response Ответ для обработки
|
|
241
|
-
* @param middlewareCtx Контекст выполнения запроса
|
|
242
|
-
* @return Новый экземпляр `Response` при модификации ответа, или undefined
|
|
243
|
-
*/
|
|
244
|
-
async middlewareOnResponse(t, s) {
|
|
245
|
-
for (const e of this.middlewares) {
|
|
246
|
-
const r = await e.onResponse?.({
|
|
247
|
-
...s,
|
|
248
|
-
response: t
|
|
249
|
-
});
|
|
250
|
-
if (r) {
|
|
251
|
-
if (!(r instanceof Response))
|
|
252
|
-
throw new Error("onResponse: must return new Response() when modifying the response");
|
|
253
|
-
t = r;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
return t;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Установить генератор данных вместо реальных запросов к серверу для конкретного метода API
|
|
260
|
-
*/
|
|
261
|
-
setMocker(t, s) {
|
|
262
|
-
this.mokerByPath.set(t, s), this.genOriginal || (this.genOriginal = this.gen.bind(this), this.gen = (e, r) => {
|
|
263
|
-
const n = this.genOriginal(e, r), i = this.mokerByPath.get(e);
|
|
264
|
-
return i && n.setMocker(i), n;
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
const T = async (...o) => {
|
|
269
|
-
const { postInWindow: t } = await import("../.chunks/lazy-HKSyLh72.es.js");
|
|
270
|
-
return t(...o);
|
|
271
|
-
}, D = async (...o) => {
|
|
272
|
-
const { dataToForm: t } = await import("../.chunks/lazy-HKSyLh72.es.js");
|
|
273
|
-
return t(...o);
|
|
274
|
-
}, M = (o = {}, t) => new I(o, t);
|
|
275
|
-
export {
|
|
276
|
-
M as createClient,
|
|
277
|
-
D as dataToForm,
|
|
278
|
-
S as genExtRes,
|
|
279
|
-
z as genFieldFilter,
|
|
280
|
-
j as genFieldOrder,
|
|
281
|
-
A as getBaseDomainUrl,
|
|
282
|
-
k as isPublicAPI,
|
|
283
|
-
T as postInWindow
|
|
284
|
-
};
|
|
285
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, t as a } from "../.chunks/api-CawzY1Cw.esm.js";
|
|
2
|
+
import { n as o, t as s } from "../.chunks/field-CjkpGeA7.esm.js";
|
|
3
|
+
export { a as createClient, n as dataToForm, t as genExtRes, s as genFieldFilter, o as genFieldOrder, e as getBaseDomainUrl, r as isPublicAPI, i as postInWindow };
|
package/assets/charts.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.top-miniChart{cursor:default;box-sizing:border-box;border-color
|
|
1
|
+
.top-miniChart{cursor:default;box-sizing:border-box;border-color:#0000;flex-direction:column;flex:auto;align-items:stretch;height:100%;font-size:12px;display:flex;position:relative}.top-miniChart:not(:last-child){margin-right:32px}.top-miniChart:not(:last-child):after{content:"";background-color:var(--color-line-1-opacity);width:1px;position:absolute;top:0;bottom:0;right:-16px}.top-miniChart_title{--top-icon-size:16px;--top-icon-width:16px;width:auto;max-width:100%;max-height:18px;padding-right:24px;font-size:14px}.top-miniChart_title[data-top-icon]:before{border-radius:50%;margin-right:4px}.top-miniChart.top-color_orange .top-miniChart_title[data-top-icon]:before{background:var(--color-layer-warning-2)}.top-miniChart.top-color_pink .top-miniChart_title[data-top-icon]:before{background:var(--color-layer-info-2)}.top-miniChart.top-color_blue .top-miniChart_title[data-top-icon]:before{background:var(--color-layer-primary-2)}.top-miniChart_data{pointer-events:none;text-align:right;flex-direction:column;justify-content:space-between;display:flex;position:absolute;top:0;bottom:0;right:0}.top-miniChart_dataDynamic:before{content:"––"}.top-miniChart_dataDynamic-direction_up{color:var(--color-text-positive)}.top-miniChart_dataDynamic-direction_up:before{content:"+"}.top-miniChart_dataDynamic-direction_stay{color:var(--color-text-warning)}.top-miniChart_dataDynamic-direction_down{color:var(--color-text-negative)}.top-miniChart_dataDynamic-direction_down:before{content:"–"}.top-miniChart_chart{border-top:1px solid var(--color-line-1);border-bottom:1px solid var(--color-line-1);flex-grow:1;margin:3px 0 20px;padding:2px 0;display:block}.top-miniChart_chartGrid{direction:rtl;grid-template-columns:repeat(auto-fill,6px);grid-auto-rows:100%;justify-content:space-between;align-items:end;gap:2px 0;width:100%;height:100%;display:grid;overflow:hidden}.top-miniChart_chartGridCol{cursor:pointer;opacity:1;border-radius:2px;flex-direction:column-reverse;height:100%;padding:0 1px;display:flex}.top-miniChart_chartGridCol:not(.top-active){opacity:.3}.top-miniChart_chartGridCol:hover{background:var(--color-layer-3);opacity:.7}.top-miniChart_chartGridCol>div{border-radius:inherit;background:var(--color-layer-3)}.top-miniChart.top-color_orange .top-miniChart_chartGridCol>div{background:var(--color-line-warning-1)}.top-miniChart.top-color_pink .top-miniChart_chartGridCol>div{background:var(--color-line-info-1)}.top-miniChart.top-color_blue .top-miniChart_chartGridCol>div{background:var(--color-line-primary-1)}.top-miniChart_chartGridCol-none{cursor:default}.top-miniChart_chartGridCol-none>div{height:2px;background:var(--color-theme-100)!important}@media only screen and (max-width:900px){.top-miniChart_hideChartInMobile{justify-content:center;align-items:center;gap:var(--top-gap-1);width:1px;box-shadow:var(--top-shadow-s);border-radius:var(--top-radius-2);padding:var(--top-padding-1);background:var(--color-layout-front-1)}.top-miniChart_hideChartInMobile:not(:last-child){margin:0}.top-miniChart_hideChartInMobile:not(:last-child):after{content:none}.top-miniChart_hideChartInMobile .top-miniChart_title{flex-grow:0;height:auto;padding:0;font-size:12px;line-height:1}.top-miniChart_hideChartInMobile .top-miniChart_chart{display:none}.top-miniChart_hideChartInMobile .top-miniChart_data{pointer-events:unset;text-align:unset;position:unset;flex-direction:unset;justify-content:unset;font-size:10px;line-height:1}.top-miniChart_hideChartInMobile .top-miniChart_dataDynamic{order:1;margin-left:4px}}.top-miniCharts{row-gap:var(--top-gap-2);flex-wrap:wrap;flex-grow:1;max-width:1650px;height:100%;display:flex;position:relative;overflow:hidden}.top-miniCharts_pages{flex-direction:column;order:-1;justify-content:center;height:100%;margin-left:-6px;display:flex;position:sticky;top:0;left:calc(100% - 6px)}.top-miniCharts_pages>span{cursor:pointer;background:var(--color-layer-primary-2);border-radius:50%;width:6px;height:6px;margin:8px 0 0}.top-miniCharts_pages>span:first-child{margin-top:0}.top-miniCharts_pages>span.top-active,.top-miniCharts_pages>span:hover{background:var(--color-text-primary)}.top-miniCharts_tooltip{cursor:default;box-shadow:var(--top-shadow-b);border-radius:var(--top-radius-2);background:var(--content-background-color);padding:var(--top-padding-2);white-space:nowrap;z-index:200000;gap:0 var(--top-gap-2);pointer-events:none;align-items:center;font-size:12px;transition:all .2s;display:flex;position:absolute;top:0;left:0;overflow:hidden}.top-miniCharts_tooltip>span:first-child{color:var(--color-text-3)}@media only screen and (max-width:900px){.top-miniCharts_hideChartInMobile{gap:var(--top-gap-2);background:0 0;border:none;flex-wrap:nowrap;flex-grow:1;width:100%;padding:0;overflow:hidden}.top-miniCharts_hideChartInMobile>.top-miniCharts_pages{display:none}}
|
package/assets/core.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
button,input,textarea,select{border:1px solid var(--top-forms-border-color);background:var(--top-forms-background-color);color:var(--color-text-1);font-size:var(--top-font-size);font-family:inherit}::placeholder{color:var(--top-forms-placeholder-color)}[contenteditable][placeholder]:empty:before{content:attr(placeholder);color:var(--color-text-2)}.top-forms-optionWrapper{cursor:pointer;padding:8px 0;color:var(--color-text-1);line-height:1.3;display:inline-flex;align-items:flex-start;gap:4px}.top-forms-option{cursor:pointer;padding:0;margin:3px;display:inline-flex;flex-shrink:0;appearance:none;-webkit-appearance:none}.top-forms-focusable:focus-visible,.top-focus{outline:2px solid var(--color-line-primary-1);outline-offset:2px;position:relative;z-index:1;transition:border-color .15s}.top-forms-focusable:hover,.top-forms-focusable:focus,.top-forms-focusable:focus-within,.top-focus:hover,.top-focus:focus,.top-input:hover>.top-input_input,.top-select:hover>.top-select_select{--top-forms-border-color: var(--top-forms-border-color-hover);--top-forms-background-color: var(--top-forms-background-color-hover)}[contenteditable]:focus-visible,.top-selector-multiselect:focus-within{outline:2px solid var(--color-line-primary-1)}:root{--top-font-size: 14px;--top-font-size-s: 12px;--top-font-size-xs: 10px;--top-forms-radius: 8px;--top-forms-border-width: 1px;--top-style_outline-color: transparent;--top-forms-base-height_xs: 24px;--top-forms-base-height_s: 32px;--top-forms-base-height_m: 36px;--top-forms-base-height_l: 40px;--top-forms-background-color-regular: var(--color-layout-front-1);--top-forms-background-color-regular-hover: var(--color-layout-front-1);--top-forms-background-color-light: var(--top-forms-background-color-regular);--top-forms-background-color-light-hover: var(--top-forms-background-color-regular);--top-forms-background-color-soft: var(--color-theme-75);--top-forms-background-color-soft-hover: var(--color-bg-shading-2);--top-forms-background-color-transparent: transparent;--top-forms-background-color-transparent-hover: var(--color-layout-front-3);--top-forms-base-height: var(--top-forms-base-height_s);--top-forms-padding_xs: 6px;--top-forms-padding_s: 8px;--top-forms-padding_m: 10px;--top-forms-padding_l: 12px;--top-forms-padding: var(--top-forms-padding_s);--top-forms-option-height: 24px;--top-selector-arrow-width: 0px;--top-forms_clear-width: 0px;--top-forms-border-color: var(--color-line-1);--top-forms-border-color-hover: var(--color-line-primary-1);--top-forms-placeholder-color: var(--color-text-3);--top-forms-placeholder-color-active: var(--color-text-2);--top-forms-background-color: var(--color-layout-front-1);--top-forms-background-color-hover: var(--color-layout-front-1)}.top-style_light{--top-forms-radius: 0;border-top-width:0!important;border-left-width:0!important;border-right-width:0!important}.top-style_soft,.top-style_transparent{--top-forms-border-color: transparent;--top-forms-border-color-hover: transparent}.top-style_soft{--top-forms-background-color: var(--top-forms-background-color-soft);--top-forms-background-color-hover: var(--top-forms-background-color-soft-hover)}.top-style_transparent{--top-forms-background-color: var(--top-forms-background-color-transparent);--top-forms-background-color-hover: var(--top-forms-background-color-transparent-hover)}.top-size_xs{--top-forms-base-height: var(--top-forms-base-height_xs)}.top-size_s{--top-forms-base-height: var(--top-forms-base-height_s)}.top-size_m{--top-forms-base-height: var(--top-forms-base-height_m)}.top-size_l{--top-forms-base-height: var(--top-forms-base-height_l)}.top-input_input,.top-textarea_textarea,.top-editArea_form,.top-select_select,.top-as-input{box-sizing:border-box;border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-forms-background-color);color:var(--color-text-2);min-height:var(--top-forms-base-height);display:inline-flex;appearance:none;-webkit-appearance:none}.top-input_input:hover,.top-textarea_textarea:hover,.top-editArea_form:hover,.top-select_select:hover,.top-as-input:hover{background-color:var(--top-forms-background-color-hover)}.top-input_input:focus,.top-textarea_textarea:focus,.top-editArea_form:focus,.top-select_select:focus,.top-as-input:focus,.top-as-input:focus-within{background-color:var(--top-forms-background-color-hover);color:var(--color-text-1)}.top-select_select{padding-right:calc(var(--top-forms-padding) + var(--top-forms_clear-width) + var(--top-selector-arrow-width))}.top-select{position:relative}.top-select[data-top-icon]:before,.top-select[data-top-icon2]:after{position:absolute;z-index:3}.top-select[data-top-icon][data-top-icon2]:after{left:calc(var(--top-icon-width))}.top-cleaner[data-top-icon]{--top-icon-size: 20px;--top-icon-width: 20px;--top-icon-color: var(--color-text-secondary);cursor:pointer;border-radius:50%;width:30px;height:24px;margin-left:-34px;transform:translate(calc(0px - var(--top-forms-border-width) - var(--top-selector-arrow-width)));display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.top-cleaner[data-top-icon]:hover{--top-icon-color: var(--color-text-secondary-2)}.top-as-selector{--top-selector-arrow-size: 12px;--top-selector-arrow-width: 24px;background-image:url("data:image/svg+xml,%3Csvg width='16' height='9' viewBox='0 0 16 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.293 0.29269L8 6.5857L1.70704 0.29269C1.31679 -0.0975633 0.682937 -0.0975633 0.292687 0.29269C-0.0975624 0.682943 -0.0975624 1.31656 0.292687 1.70682L7.29294 8.70713C7.68343 9.09762 8.31657 9.09762 8.70706 8.70713L15.7073 1.70682C16.0976 1.31656 16.0976 0.682943 15.7073 0.29269C15.3171 -0.0975633 14.6832 -0.0975633 14.293 0.29269Z' fill='%23808A99'/%3E%3C/svg%3E");background-size:14px;background-position:calc(100% - var(--top-forms-padding)) 50%;background-repeat:no-repeat;padding-right:calc(var(--top-selector-arrow-width) + var(--top-padding-2))}.top-as-selector.top-button{padding-right:calc(var(--top-selector-arrow-width) + var(--top-padding-2))}.top-as-selector~.top-cleaner{--top-selector-arrow-width: 24px}.top-as-a{cursor:pointer;color:var(--color-text-primary)}.top-as-a:hover{text-decoration:underline}.top-ellipsis,.top-ellipsis1{max-height:100%;line-height:1.26;text-overflow:ellipsis;overflow:hidden;flex-grow:1}.top-ellipsis1{white-space:nowrap}.top-ellipsis2,.top-ellipsis3{max-width:fit-content;line-height:1.26;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.top-ellipsis3{-webkit-line-clamp:3}.top-hidden{display:none!important}.top-unvisible{width:0;height:0;overflow:hidden;position:absolute;-webkit-appearance:none;appearance:none;border:none}.top-unvisible:focus-visible{outline:none}.top-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}:disabled:not(option):not(optgroup),:disabled~.top-formsCaption,.top-disabled{opacity:.4;filter:grayscale(100%)}.top-input.top-disabled,.top-select.top-disabled{filter:unset}.top-input_input:disabled,.top-textarea_textarea:disabled,.top-select_select:disabled{opacity:1;background-color:var(--color-bg-shading-3);filter:unset}.top-checkbox_input:not(:checked):not(:indeterminate):disabled,.top-radio_input:not(:checked):disabled,.top-checkboxSwitcher_input:disabled{opacity:1;background-color:var(--color-layer-1)}.top-checkboxSwitcher_input:disabled{background-color:var(--color-layer-4)}.top-error,.top-error::placeholder,.top-error:before{--top-forms-border-color: var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error{--top-icon-color: var(--color-text-negative);color:var(--color-text-negative)}input.top-error:focus,textarea.top-error:focus,select.top-error:focus,div.top-error:focus{outline-color:var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error~.top-formsCaption{color:var(--color-text-negative)}.top-warning{--top-icon-color: var(--color-text-warning);color:var(--color-text-warning)}.top-forms-focusable.top-error{--top-error-keyframes-outline-color-100: transparent;animation:top-error .6s ease-out}.top-forms-focusable.top-error:focus{--top-error-keyframes-outline-color-100: var(--color-line-negative-1)}@keyframes top-error{0%{outline-offset:10px;outline:3px solid transparent}50%{outline-offset:2px;outline:3px solid var(--color-line-negative-1)}to{outline-offset:2px;outline:2px solid var(--top-error-keyframes-outline-color-100)}}@media only screen and (min-width:900px){.top-only-mobile{display:none!important}}@media only screen and (max-width:900px){.top-only-pc{display:none!important}}html:not([lang=ru]) .top-only-ru,html:not([lang=en]) .top-only-en{display:none!important}html[data-is-admin="0"] .top-only-admin,html[data-is-admin="1"] .top-only-no-admin{display:none!important}.has_scroll_container{transform:translate(0)}.has_scroll{--scroll-offset-top: 0px;--scroll-padding-top: 0px;--scroll-padding-bottom: 0px;--scroll-height: 0px;--scroll-shadow-height: 15px;--scroll-shadow-color: rgba(0, 0, 0, .1)}.has_scroll:before{pointer-events:none;content:"";background:linear-gradient(180deg,transparent calc(100% - var(--scroll-shadow-height)),var(--scroll-shadow-color));height:calc(var(--scroll-height) - var(--scroll-padding-top) - var(--scroll-padding-bottom));position:fixed;top:calc(var(--scroll-offset-top) + var(--scroll-padding-top));right:0;left:0;z-index:2;display:block}.has_scroll-started:before{background:linear-gradient(180deg,var(--scroll-shadow-color),transparent var(--scroll-shadow-height),transparent calc(100% - var(--scroll-shadow-height)),var(--scroll-shadow-color))}.has_scroll-finished:before{background:linear-gradient(180deg,var(--scroll-shadow-color),transparent var(--scroll-shadow-height))}.top-scrollBarXHidding{scrollbar-width:none;overflow-x:auto;overflow-y:hidden}.top-scrollBarXHidding:hover{scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar{height:6px;display:none}.top-scrollBarXHidding:hover::-webkit-scrollbar{display:block;scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar-track{background-color:transparent;box-shadow:inset #0000000f 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-track:hover{box-shadow:inset #00000014 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-track:active{box-shadow:inset #0000001a 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-thumb{background-color:var(--color-line-1-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:hover{background-color:var(--color-line-2-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:active{background-color:var(--color-line-3-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-button{width:0;height:0}[data-top-badge]{position:relative;width:0;margin:-3px 16px 0 -16px;display:flex;align-self:flex-start}[data-top-badge]:after{content:attr(data-top-badge);border-radius:4px;padding:2px 3px;background:var(--color-bg-negative-1);color:var(--color-text-white);font-size:12px}:root{--color-tag-1: #bdc3c7;--color-tag-2: #FD6052;--color-tag-3: #F48D09;--color-tag-4: #F4D30C;--color-tag-5: #5AACFD;--color-tag-6: #C98AE4;--color-tag-7: #A7DE59;--color-tag-8: #e44097;--color-tag-9: #0354a5;--color-tag-10: #33b8a5;--color-tag-all: var(--color-text-3)}.top-comment{color:var(--color-text-3);font-size:12px}img.top-flag{box-shadow:#0003 0 0 3px;width:24px;height:15px;margin:0 6px 0 0;flex-grow:0!important;flex-shrink:0!important}:root{--top-formsCaption-offset: 16px}.top-formsCaptionWrapper{padding-top:20px}.top-formsCaption{pointer-events:none;width:calc(100% - var(--top-forms-padding) - var(--top-icon-both-width) - var(--top-forms_clear-width) - var(--top-selector-arrow-width));padding:0 var(--top-forms-padding);color:var(--top-forms-placeholder-color);white-space:nowrap;text-overflow:ellipsis;transform:translate(var(--top-icon-both-width));position:absolute;overflow:hidden;transition:.1s}.top-error~.top-formsCaption{transition:.1s .1s}.top-formsCaption *{pointer-events:auto}.top-formsCaptionWrapper>input:not([readonly]):focus~.top-formsCaption,.top-formsCaptionWrapper>input:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper>textarea:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper.top-select>.top-formsCaption,.top-formsCaptionWrapper.top-inputRange>.top-formsCaption,.top-formsCaptionWrapper-always>.top-formsCaption{width:100%;padding:0;color:var(--top-forms-placeholder-color-active);font-size:11px;transform:translateY(calc(-1em - var(--top-formsCaption-offset)));transition:.1s}html .ui-tooltip{pointer-events:none;box-shadow:0 6px 18px #0e152f21,0 -2px 6px #0e152f08;border:none;background:var(--color-layout-front-1);width:max-content;padding:var(--top-padding-4);margin:0 var(--top-padding-4);font-size:13px;z-index:200000}.ui-tooltip.ui-corner-all{border-radius:var(--top-padding-2)}.ui-tooltip img{margin:var(--top-padding-3) 0 0 0}.ui-tooltip ul{margin-left:24px}:root{--top-icon-size: 24px;--top-icon-width: 0px;--top-icon2-size: 24px;--top-icon2-width: 0px;--top-icon-both-width: 0px}[data-top-icon]{--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon-color: inherit}[data-top-icon2]{--top-icon2-width: calc(var(--top-icon2-size) + 8px);--top-icon2-color: inherit}[data-top-icon=""]{--top-icon-width: 0px}[data-top-icon2=""]{--top-icon2-width: 0px}[data-top-icon]:before,[data-top-icon2]:after{pointer-events:none;content:attr(data-top-icon);border-radius:var(--top-forms-radius);width:var(--top-icon-width);color:var(--top-icon-color);font-family:Topvisor-2;font-size:var(--top-icon-size);font-weight:400;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}[data-top-icon2]:after{content:attr(data-top-icon2);width:var(--top-icon2-width);color:var(--top-icon2-color);font-size:var(--top-icon2-size)}[data-top-icon],[data-top-icon2]{--top-icon-both-width: calc(var(--top-icon-width) + var(--top-icon2-width))}[data-top-icon=]:before{font-family:Topvisor}:root{--top-line-heihgt: 1.36;--top-page-width: 1180px;--100vh: 100dvh;--top-scrollbar-width: 6px;--transition: .2s ease-in-out;--transition-fast: .1s;--transition-normal: .3s;--transition-slow: .5s;--top-padding-1: 4px;--top-padding-2: 8px;--top-padding-3: 12px;--top-padding-4: 16px;--top-padding-5: 20px;--top-padding-6: 24px;--top-padding-7: 28px;--top-padding-8: 32px;--top-padding-9: 36px;--top-padding-10: 40px;--top-padding-11: 44px;--top-padding-12: 48px;--top-gap-1: 4px;--top-gap-2: 8px;--top-gap-3: 12px;--top-gap-4: 16px;--top-gap-5: 20px;--top-gap-6: 24px;--top-gap-7: 28px;--top-gap-8: 32px;--top-gap-9: 36px;--top-gap-10: 40px;--top-gap-11: 44px;--top-gap-12: 48px;--top-radius-1: 4px;--top-radius-2: 8px;--top-radius-3: 12px;--top-radius-4: 16px;--top-radius-5: 20px;--top-radius-6: 24px;--top-radius-7: 28px;--top-radius-8: 32px;--top-radius-9: 36px;--top-radius-10: 40px;--top-radius-11: 44px;--top-radius-12: 48px;--padding-default: var(--top-padding-4)}@media only screen and (max-width:900px){:root{--padding-default: var(--top-padding-3)}}.ui-widget-content{background:var(--color-layout-front-1);color:var(--color-text-1)}
|
|
1
|
+
button,input,textarea,select{border:1px solid var(--top-forms-border-color);background:var(--top-forms-background-color);color:var(--color-text-1);font-size:var(--top-font-size);font-family:inherit}::placeholder{color:var(--top-forms-placeholder-color)}[contenteditable][placeholder]:empty:before{content:attr(placeholder);color:var(--color-text-2)}.top-forms-optionWrapper{cursor:pointer;color:var(--color-text-1);align-items:flex-start;gap:4px;padding:8px 0;line-height:1.3;display:inline-flex}.top-forms-option{cursor:pointer;-webkit-appearance:none;appearance:none;flex-shrink:0;margin:3px;padding:0;display:inline-flex}.top-focus{outline:2px solid var(--color-line-primary-1);outline-offset:2px;z-index:1;transition:border-color .15s;position:relative}.top-forms-focusable:focus-visible{outline:2px solid var(--color-line-primary-1);outline-offset:2px;z-index:1;transition:border-color .15s;position:relative}.top-forms-focusable:hover,.top-forms-focusable:focus,.top-forms-focusable:focus-within,.top-focus:hover,.top-focus:focus,.top-input:hover>.top-input_input,.top-select:hover>.top-select_select{--top-forms-border-color:var(--top-forms-border-color-hover);--top-forms-background-color:var(--top-forms-background-color-hover)}:is([contenteditable]:focus-visible,.top-selector-multiselect:focus-within){outline:2px solid var(--color-line-primary-1)}:root{--top-font-size:14px;--top-font-size-s:12px;--top-font-size-xs:10px;--top-forms-radius:8px;--top-forms-border-width:1px;--top-style_outline-color:transparent;--top-forms-base-height_xs:24px;--top-forms-base-height_s:32px;--top-forms-base-height_m:36px;--top-forms-base-height_l:40px;--top-forms-background-color-regular:var(--color-layout-front-1);--top-forms-background-color-regular-hover:var(--color-layout-front-1);--top-forms-background-color-light:var(--top-forms-background-color-regular);--top-forms-background-color-light-hover:var(--top-forms-background-color-regular);--top-forms-background-color-soft:var(--color-theme-75);--top-forms-background-color-soft-hover:var(--color-bg-shading-2);--top-forms-background-color-transparent:transparent;--top-forms-background-color-transparent-hover:var(--color-layout-front-3);--top-forms-base-height:var(--top-forms-base-height_s);--top-forms-padding_xs:6px;--top-forms-padding_s:8px;--top-forms-padding_m:10px;--top-forms-padding_l:12px;--top-forms-padding:var(--top-forms-padding_s);--top-forms-option-height:24px;--top-selector-arrow-width:0px;--top-forms_clear-width:0px;--top-forms-border-color:var(--color-line-1);--top-forms-border-color-hover:var(--color-line-primary-1);--top-forms-placeholder-color:var(--color-text-3);--top-forms-placeholder-color-active:var(--color-text-2);--top-forms-background-color:var(--color-layout-front-1);--top-forms-background-color-hover:var(--color-layout-front-1)}.top-style_light{--top-forms-radius:0;border-top-width:0!important;border-left-width:0!important;border-right-width:0!important}.top-style_soft,.top-style_transparent{--top-forms-border-color:transparent;--top-forms-border-color-hover:transparent}.top-style_soft{--top-forms-background-color:var(--top-forms-background-color-soft);--top-forms-background-color-hover:var(--top-forms-background-color-soft-hover)}.top-style_transparent{--top-forms-background-color:var(--top-forms-background-color-transparent);--top-forms-background-color-hover:var(--top-forms-background-color-transparent-hover)}.top-size_xs{--top-forms-base-height:var(--top-forms-base-height_xs)}.top-size_s{--top-forms-base-height:var(--top-forms-base-height_s)}.top-size_m{--top-forms-base-height:var(--top-forms-base-height_m)}.top-size_l{--top-forms-base-height:var(--top-forms-base-height_l)}.top-input_input,.top-textarea_textarea,.top-editArea_form,.top-select_select,.top-as-input{box-sizing:border-box;border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-forms-background-color);color:var(--color-text-2);min-height:var(--top-forms-base-height);-webkit-appearance:none;appearance:none;display:inline-flex}.top-input_input:hover,.top-textarea_textarea:hover,.top-editArea_form:hover,.top-select_select:hover,.top-as-input:hover{background-color:var(--top-forms-background-color-hover)}.top-input_input:focus,.top-textarea_textarea:focus,.top-editArea_form:focus,.top-select_select:focus,.top-as-input:focus,.top-as-input:focus-within{background-color:var(--top-forms-background-color-hover);color:var(--color-text-1)}.top-select_select{padding-right:calc(var(--top-forms-padding) + var(--top-forms_clear-width) + var(--top-selector-arrow-width))}.top-select{position:relative}.top-select[data-top-icon]:before,.top-select[data-top-icon2]:after{z-index:3;position:absolute}.top-select[data-top-icon][data-top-icon2]:after{left:calc(var(--top-icon-width))}.top-cleaner[data-top-icon]{--top-icon-size:20px;--top-icon-width:20px;--top-icon-color:var(--color-text-secondary);cursor:pointer;width:30px;height:24px;transform:translateX(calc(0px - var(--top-forms-border-width) - var(--top-selector-arrow-width)));z-index:1;border-radius:50%;justify-content:center;align-items:center;margin-left:-34px;display:flex;position:relative}.top-cleaner[data-top-icon]:hover{--top-icon-color:var(--color-text-secondary-2)}.top-as-selector{--top-selector-arrow-size:12px;--top-selector-arrow-width:24px;background-image:url("data:image/svg+xml,%3Csvg width='16' height='9' viewBox='0 0 16 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.293 0.29269L8 6.5857L1.70704 0.29269C1.31679 -0.0975633 0.682937 -0.0975633 0.292687 0.29269C-0.0975624 0.682943 -0.0975624 1.31656 0.292687 1.70682L7.29294 8.70713C7.68343 9.09762 8.31657 9.09762 8.70706 8.70713L15.7073 1.70682C16.0976 1.31656 16.0976 0.682943 15.7073 0.29269C15.3171 -0.0975633 14.6832 -0.0975633 14.293 0.29269Z' fill='%23808A99'/%3E%3C/svg%3E");background-size:14px;background-position:calc(100% - var(--top-forms-padding)) 50%;padding-right:calc(var(--top-selector-arrow-width) + var(--top-padding-2));background-repeat:no-repeat}.top-as-selector.top-button{padding-right:calc(var(--top-selector-arrow-width) + var(--top-padding-2))}.top-as-selector~.top-cleaner{--top-selector-arrow-width:24px}.top-as-a{cursor:pointer;color:var(--color-text-primary)}.top-as-a:hover{text-decoration:underline}.top-ellipsis,.top-ellipsis1{text-overflow:ellipsis;flex-grow:1;max-height:100%;line-height:1.26;overflow:hidden}.top-ellipsis1{white-space:nowrap}.top-ellipsis2,.top-ellipsis3{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:-moz-fit-content;max-width:fit-content;line-height:1.26;display:-webkit-box;overflow:hidden}.top-ellipsis3{-webkit-line-clamp:3}.top-hidden{display:none!important}.top-unvisible{-webkit-appearance:none;appearance:none;border:none;width:0;height:0;position:absolute;overflow:hidden}.top-unvisible:focus-visible{outline:none}.top-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}:disabled:not(option):not(optgroup),:disabled~.top-formsCaption,.top-disabled{opacity:.4;filter:grayscale()}.top-input.top-disabled,.top-select.top-disabled{filter:unset}.top-input_input:disabled,.top-textarea_textarea:disabled,.top-select_select:disabled{opacity:1;background-color:var(--color-bg-shading-3);filter:unset}.top-checkbox_input:not(:checked):not(:indeterminate):disabled,.top-radio_input:not(:checked):disabled,.top-checkboxSwitcher_input:disabled{opacity:1;background-color:var(--color-layer-1)}.top-checkboxSwitcher_input:disabled{background-color:var(--color-layer-4)}.top-error,.top-error::placeholder,.top-error:before{--top-forms-border-color:var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error{--top-icon-color:var(--color-text-negative);color:var(--color-text-negative)}input.top-error:focus,textarea.top-error:focus,select.top-error:focus,div.top-error:focus{outline-color:var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error~.top-formsCaption{color:var(--color-text-negative)}.top-warning{--top-icon-color:var(--color-text-warning);color:var(--color-text-warning)}.top-forms-focusable.top-error{--top-error-keyframes-outline-color-100:transparent;animation:.6s ease-out top-error}.top-forms-focusable.top-error:focus{--top-error-keyframes-outline-color-100:var(--color-line-negative-1)}@keyframes top-error{0%{outline-offset:10px;outline:3px solid #0000}50%{outline-offset:2px;outline:3px solid var(--color-line-negative-1)}to{outline-offset:2px;outline:2px solid var(--top-error-keyframes-outline-color-100)}}@media only screen and (min-width:900px){.top-only-mobile{display:none!important}}@media only screen and (max-width:900px){.top-only-pc{display:none!important}}html:not([lang=ru]) .top-only-ru,html:not([lang=en]) .top-only-en,html[data-is-admin="0"] .top-only-admin,html[data-is-admin="1"] .top-only-no-admin{display:none!important}.has_scroll_container{transform:translate(0)}.has_scroll{--scroll-offset-top:0px;--scroll-padding-top:0px;--scroll-padding-bottom:0px;--scroll-height:0px;--scroll-shadow-height:15px;--scroll-shadow-color:#0000001a}.has_scroll:before{pointer-events:none;content:"";background:linear-gradient(180deg, transparent calc(100% - var(--scroll-shadow-height)), var(--scroll-shadow-color));height:calc(var(--scroll-height) - var(--scroll-padding-top) - var(--scroll-padding-bottom));top:calc(var(--scroll-offset-top) + var(--scroll-padding-top));z-index:2;display:block;position:fixed;left:0;right:0}.has_scroll-started:before{background:linear-gradient(180deg, var(--scroll-shadow-color), transparent var(--scroll-shadow-height), transparent calc(100% - var(--scroll-shadow-height)), var(--scroll-shadow-color))}.has_scroll-finished:before{background:linear-gradient(180deg, var(--scroll-shadow-color), transparent var(--scroll-shadow-height))}.top-scrollBarXHidding{scrollbar-width:none;overflow:auto hidden}.top-scrollBarXHidding:hover{scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar{height:6px;display:none}.top-scrollBarXHidding:hover::-webkit-scrollbar{scrollbar-width:thin;display:block}.top-scrollBarXHidding::-webkit-scrollbar-track{background-color:#0000;box-shadow:inset 0 0 0 10px #0000000f}.top-scrollBarXHidding::-webkit-scrollbar-track:hover{box-shadow:inset 0 0 0 10px #00000014}.top-scrollBarXHidding::-webkit-scrollbar-track:active{box-shadow:inset 0 0 0 10px #0000001a}.top-scrollBarXHidding::-webkit-scrollbar-thumb{background-color:var(--color-line-1-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:hover{background-color:var(--color-line-2-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:active{background-color:var(--color-line-3-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-button{width:0;height:0}[data-top-badge]{align-self:flex-start;width:0;margin:-3px 16px 0 -16px;display:flex;position:relative}[data-top-badge]:after{content:attr(data-top-badge);background:var(--color-bg-negative-1);color:var(--color-text-white);border-radius:4px;padding:2px 3px;font-size:12px}:root{--color-tag-1:var(--color-theme-350);--color-tag-2:#fd6052;--color-tag-3:#f48d09;--color-tag-4:#f4d30c;--color-tag-5:#5aacfd;--color-tag-6:#c98ae4;--color-tag-7:#a7de59;--color-tag-8:#e44097;--color-tag-9:#0354a5;--color-tag-10:#33b8a5;--color-tag-all:var(--color-text-3)}.top-comment{color:var(--color-text-3);font-size:12px}img.top-flag{width:24px;height:15px;margin:0 6px 0 0;box-shadow:0 0 3px #0003;flex-grow:0!important;flex-shrink:0!important}:root{--top-formsCaption-offset:16px}.top-formsCaptionWrapper{padding-top:20px}.top-formsCaption{pointer-events:none;width:calc(100% - var(--top-forms-padding) - var(--top-icon-both-width) - var(--top-forms_clear-width) - var(--top-selector-arrow-width));padding:0 var(--top-forms-padding);color:var(--top-forms-placeholder-color);white-space:nowrap;text-overflow:ellipsis;transform:translate(var(--top-icon-both-width), 0);transition:all .1s;position:absolute;overflow:hidden}.top-error~.top-formsCaption{transition:all .1s .1s}.top-formsCaption *{pointer-events:auto}.top-formsCaptionWrapper>input:not([readonly]):focus~.top-formsCaption,.top-formsCaptionWrapper>input:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper>textarea:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper.top-select>.top-formsCaption,.top-formsCaptionWrapper.top-inputRange>.top-formsCaption,.top-formsCaptionWrapper-always>.top-formsCaption{width:100%;color:var(--top-forms-placeholder-color-active);transform:translate(0, calc(-1em - var(--top-formsCaption-offset)));padding:0;font-size:11px;transition:all .1s}html .ui-tooltip{pointer-events:none;background:var(--color-layout-front-1);width:max-content;padding:var(--top-padding-4);margin:0 var(--top-padding-4);z-index:200000;border:none;font-size:13px;box-shadow:0 6px 18px #0e152f21,0 -2px 6px #0e152f08}.ui-tooltip.ui-corner-all{border-radius:var(--top-padding-2)}.ui-tooltip img{margin:var(--top-padding-3) 0 0 0}.ui-tooltip ul{margin-left:24px}:root{--top-icon-size:24px;--top-icon-width:0px;--top-icon2-size:24px;--top-icon2-width:0px;--top-icon-both-width:0px}[data-top-icon]{--top-icon-width:calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon-color:inherit}[data-top-icon2]{--top-icon2-width:calc(var(--top-icon2-size) + 8px);--top-icon2-color:inherit}[data-top-icon=""]{--top-icon-width:0px}[data-top-icon2=""]{--top-icon2-width:0px}[data-top-icon]:before,[data-top-icon2]:after{pointer-events:none;content:attr(data-top-icon);border-radius:var(--top-forms-radius);width:var(--top-icon-width);color:var(--top-icon-color);font-family:Topvisor-2;font-size:var(--top-icon-size);flex-shrink:0;justify-content:center;align-items:center;font-weight:400;line-height:1;display:inline-flex}[data-top-icon2]:after{content:attr(data-top-icon2);width:var(--top-icon2-width);color:var(--top-icon2-color);font-size:var(--top-icon2-size)}[data-top-icon],[data-top-icon2]{--top-icon-both-width:calc(var(--top-icon-width) + var(--top-icon2-width))}[data-top-icon=]:before{font-family:Topvisor}:root{--top-line-heihgt:1.36;--top-page-width:1180px;--100vh:100dvh;--top-scrollbar-width:6px;--transition:.2s ease-in-out;--transition-fast:.1s;--transition-normal:.3s;--transition-slow:.5s;--top-padding-1:4px;--top-padding-2:8px;--top-padding-3:12px;--top-padding-4:16px;--top-padding-5:20px;--top-padding-6:24px;--top-padding-7:28px;--top-padding-8:32px;--top-padding-9:36px;--top-padding-10:40px;--top-padding-11:44px;--top-padding-12:48px;--top-gap-1:4px;--top-gap-2:8px;--top-gap-3:12px;--top-gap-4:16px;--top-gap-5:20px;--top-gap-6:24px;--top-gap-7:28px;--top-gap-8:32px;--top-gap-9:36px;--top-gap-10:40px;--top-gap-11:44px;--top-gap-12:48px;--top-radius-1:4px;--top-radius-2:8px;--top-radius-3:12px;--top-radius-4:16px;--top-radius-5:20px;--top-radius-6:24px;--top-radius-7:28px;--top-radius-8:32px;--top-radius-9:36px;--top-radius-10:40px;--top-radius-11:44px;--top-radius-12:48px;--padding-default:var(--top-padding-4)}@media only screen and (max-width:900px){:root{--padding-default:var(--top-padding-3)}}.ui-widget-content{background:var(--color-layout-front-1);color:var(--color-text-1)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
#dialog_regionSelectorRegions .modal-body{--scroll-offset-top:
|
|
1
|
+
#dialog_regionSelectorRegions .modal-body{--scroll-offset-top:40px}.dialog_regionSelectorRegions_header,.dialog_regionSelectorRegions_region{align-items:center;gap:4px;padding-left:10px;padding-right:10px;display:flex}.dialog_regionSelectorRegions_header{background:inherit;gap:2px;height:40px;padding-left:10px;position:sticky;top:0}.dialog_regionSelectorRegions_sortButton{--top-icon-size:18px}.dialog_regionSelectorRegions_region{border-radius:var(--top-radius-2)}.dialog_regionSelectorRegions_region:hover{background:var(--color-bg-shading-1)}.dialog_regionSelectorRegions_region .top-forms-optionLabel_title{gap:4px}.dialog_regionSelectorRegions_regionSearcherIcon{--top-icon-size:20px;color:var(--color-text-3);margin:0 4px 0 2px}.dialog_regionSelectorRegions_regionAreaName{color:var(--color-text-3);font-size:var(--top-font-size-s)}
|
package/assets/extra.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.top-rive{width:100%;height:100
|
|
1
|
+
.top-rive{flex-grow:1;width:100%;height:100%}
|