@topvisor/ui 1.5.0-updates.0 → 1.5.0-updates.5
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-CX_6ZXhO.es.js.map → store-DuQpSSLL.amd.js.map} +1 -1
- 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-BwiXsV0S.amd.js.map +1 -0
- 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.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.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.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.js +5 -213
- package/dialog/dialog.amd.js +2 -2
- package/dialog/dialog.amd.js.map +1 -1
- package/dialog/dialog.js +4 -60
- package/extra/extra.amd.js +2 -2
- package/extra/extra.amd.js.map +1 -1
- 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.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.js +2 -373
- 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/layout/layout.amd.js +2 -2
- package/layout/layout.amd.js.map +1 -1
- 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.js +2 -282
- package/popup/worker.amd.js +2 -2
- package/popup/worker.amd.js.map +1 -1
- package/popup/worker.js +2 -144
- package/project/project.amd.js +2 -2
- package/project/project.amd.js.map +1 -1
- package/project/project.js +1666 -1643
- package/project/project.js.map +1 -1
- package/src/src/components/project/groupSelector/folders/types.d.ts +1 -1
- package/src/src/components/project/groupSelector/folders/utils.d.ts +35 -400
- package/src/src/components/project/groupSelector/groupSelector.vue.d.ts +1 -1
- package/src/src/components/project/groupSelector/groups/types.d.ts +1 -1
- package/src/src/components/project/groupSelector/groups/utils.d.ts +44 -757
- package/src/src/components/project/projectSelector/utils.d.ts +40 -39
- package/tabs/tabs.amd.js +2 -2
- package/tabs/tabs.amd.js.map +1 -1
- 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.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.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.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.js +2 -12
- package/utils/device.amd.js +2 -2
- package/utils/device.amd.js.map +1 -1
- package/utils/device.js +2 -15
- package/utils/dom.amd.js +2 -2
- package/utils/dom.amd.js.map +1 -1
- 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.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.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.js +2 -9
- package/utils/number.amd.js +2 -2
- package/utils/number.amd.js.map +1 -1
- 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.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.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.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.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.js +2 -7
- package/utils/string.amd.js +2 -2
- package/utils/string.amd.js.map +1 -1
- 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.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.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-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-BNzP9anP.es.js.map +0 -1
- 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/project/groupSelector/utils.d.ts +0 -37
- 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/charts/charts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.js","sources":["../../src/components/charts/miniChart/utils/consts.ts","../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"sourcesContent":["/**\n * Кол-во столбцов по умолчанию\n */\nexport const defaultNumberCols = 90;\n\n/**\n * Минимальная высота колонки (в процентах)\n */\nexport const minHeight = 10; // %","<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"],"names":["defaultNumberCols","minHeight","props","__props","model","_useModel","genColHeight","value","maximumValue","maxValue","height","isActiveDate","date","computed","reversedDates","numOfEmptyCols","resetModel","setModel","dateFormat","localDynamic","dynamic","prevPeriodValue","percentOfNumber","dynamicDirection","direction","_createElementBlock","_normalizeClass","_createElementVNode","_hoisted_1","_hoisted_2","_openBlock","_Fragment","_renderList","i","$event","_normalizeStyle","_hoisted_4","_hoisted_5","_toDisplayString","_unref","elRef","ref","pagesResizeObserver","countPages","activePage","setCountPages","watch","tooltipStyle","box","style","onMounted","scrollTop","onUnmounted","_renderSlot","_ctx","n","_createBlock","_Teleport"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"charts.js","names":[],"sources":["../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"],"mappings":"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"}
|
package/core/app.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define([
|
|
2
|
-
//# sourceMappingURL=app.amd.js.map
|
|
1
|
+
define([`require`,`exports`,`../.chunks/forms-CbUt-6Ff.amd.js`,`../.chunks/app-CCX-gNqz.amd.js`,`../.chunks/dialogs-CMrERMI7.amd.js`,`../.chunks/utils-BwiXsV0S.amd.js`],function(e,t,n,r,i,a){"use strict";Object.defineProperty(t,`__esModule`,{value:!0}),t.useTopDialog=t.useI18nLang=t.useI18n=t.useAsyncTopDialog=t.piniaTPAPlugin=t.i18nPlugin=t.corePlugin=t.TopDialogWorker=t.Core=void 0,Object.defineProperty(t,`useI18nLang`,{enumerable:!0,get:function(){return n.D}}),Object.defineProperty(t,`useI18n`,{enumerable:!0,get:function(){return n.E}}),Object.defineProperty(t,`Core`,{enumerable:!0,get:function(){return n.O}}),Object.defineProperty(t,`i18nPlugin`,{enumerable:!0,get:function(){return n.T}}),Object.defineProperty(t,`corePlugin`,{enumerable:!0,get:function(){return r.n}}),Object.defineProperty(t,`piniaTPAPlugin`,{enumerable:!0,get:function(){return r.t}}),Object.defineProperty(t,`TopDialogWorker`,{enumerable:!0,get:function(){return i.i}}),Object.defineProperty(t,`useTopDialog`,{enumerable:!0,get:function(){return a.n}}),Object.defineProperty(t,`useAsyncTopDialog`,{enumerable:!0,get:function(){return a.t}})});
|
|
2
|
+
//# sourceMappingURL=app.amd.js.map
|
package/core/app.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.amd.js","sources":["../../src/core/plugins/piniaTPA.ts"],"sourcesContent":["import type { PiniaPluginContext, Store } from 'pinia';\nimport { watch } from 'vue';\nimport { debounce } from '@/core/utils/lodash';\nimport { guestLinkToClipboard } from '@/core/utils/clipboard';\nimport { camelToSnakeCase } from '@/core/utils/string.js';\nimport { getHash, setHash } from '@/core/utils/route';\n\nclass PiniaTPA {\n\n\treadonly #storeId: string;\n\treadonly #store: Store<string, any>;\n\n\t/**\n\t * @deprecated\n\t */\n\treadonly #Page: any;\n\n\treadonly #user: any;\n\treadonly #Api: Api.Client<Api.TV.Paths, true>;\n\n\treadonly #namesUrlHash: string[] = [];\n\treadonly #namesStorage: string[] = [];\n\treadonly #namesStorageLocal: string[] = [];\n\treadonly #namesGuestLink: string[] = [];\n\n\tconstructor(context: Context) {\n\t\tthis.#store = context.store;\n\t\tthis.#storeId = this.#store.$id;\n\n\t\tthis.#Page = context.options.Page;\n\n\t\tthis.#user = context.options.user;\n\t\tthis.#Api = context.options.Api;\n\n\t\tthis.#namesUrlHash = context.options.tpaNamesUrlHash || [];\n\t\tthis.#namesStorage = context.options.tpaNamesStorage || [];\n\t\tthis.#namesStorageLocal = context.options.tpaNamesStorageLocal || [];\n\t\tthis.#namesGuestLink = context.options.tpaNamesGuestLink || [];\n\n\t\tcontext.store.genGuestLink = <Path extends Api.TV.Path>(path: Path, params: Api.TV.Params<Path>) => this.genGuestLink(path, params);\n\n\t\tif (!this.#user.guest_data?.data) {\n\t\t\tthis.#loadFromStorage();\n\t\t\tthis.#loadFromStorage(true);\n\n\t\t\t// настройки URL hash имеют приоритет\n\t\t\tthis.#loadFromHash();\n\t\t}\n\n\t\t// настройки гостевой ссылки имеют приоритет\n\t\tthis.#loadFromGuestLink();\n\n\t\tthis.#prepareParams();\n\n\t\tconst save = debounce(() => {\n\t\t\tthis.#saveInHash();\n\t\t\tthis.#saveInStorage();\n\t\t\tthis.#saveInStorage(true);\n\t\t});\n\n\t\tcontext.store.$subscribe(save);\n\t}\n\n\t/**\n\t * Сгенерировать гостевую ссылку\n\t *\n\t * Метод, путь к которому указан в path, должен возвращать сгенерированную ссылку\n\t */\n\tasync genGuestLink<Path extends Api.TV.Path>(path: Path, params: Api.TV.Params<Path>) {\n\t\tconst dataGuestLink = this.#genOptionsForGuestLink();\n\t\tparams = Object.assign(params, Object.fromEntries(dataGuestLink));\n\n\t\tconst res = await this.#Api.gen(path).setParams(params).call();\n\t\tif (res?.errors) return;\n\n\t\tconst link = res.result as string;\n\n\t\tawait guestLinkToClipboard(link);\n\t}\n\n\t/**\n\t * Сгенерировать опции для гостевой ссылки\n\t */\n\t#genOptionsForGuestLink() {\n\t\tconst data = new Map();\n\n\t\tthis.#namesGuestLink.forEach(name => {\n\t\t\t// формат параметров API: snake_case\n\t\t\tconst nameSnakeCase = camelToSnakeCase(name);\n\t\t\tdata.set(nameSnakeCase, this.#store[name]);\n\t\t});\n\n\t\treturn data;\n\t}\n\n\t/**\n\t * Установить опции из объекта без фиксации состояния\n\t */\n\t#setOptions(data: Map<string, any>) {\n\t\tdata.forEach((value, name) => {\n\t\t\tconst currentValue = this.#store[name];\n\n\t\t\tif (value === null || value === undefined) return;\n\t\t\tif (currentValue === undefined) return;\n\t\t\tif (!value?.constructor) return;\n\t\t\tif (value.constructor !== currentValue.constructor) return;\n\n\t\t\t// дополнительная проверка на формат даты\n\t\t\tif (name.indexOf('date') === 0) {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t// value.forEach((valueI) => {\n\t\t\t\t\t// \tif (!/\\d\\d\\d\\d-\\d\\d-\\d\\d/.test(valueI)) return;\n\t\t\t\t\t// });\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof (value) === 'string') {\n\t\t\t\t\t\tif (!/\\d\\d\\d\\d-\\d\\d-\\d\\d/.test(value)) return;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.#store[name] = value;\n\t\t});\n\t}\n\n\t/**\n\t * Сгенерировать Map объект с опциями со значениями в виде json строк\n\t */\n\t#genDataFormat(data: Map<string, any>) {\n\t\tconst dataFormatted = new Map();\n\n\t\tdata.forEach((value, name) => {\n\t\t\tif (value === null) return;\n\n\t\t\tvalue = JSON.stringify(value);\n\n\t\t\tdataFormatted.set(name, value);\n\t\t});\n\n\t\treturn dataFormatted;\n\t}\n\n\t/**\n\t * Сгенерировать Map объект с опциями со значениями в оригинальном виде\n\t */\n\t#genDataUnFormat(dataFormatted: Map<string, string>) {\n\t\tconst data: Map<string, any> = new Map();\n\n\t\tdataFormatted.forEach((value, name) => {\n\t\t\tif (value === null || value === undefined || value === 'false') return;\n\n\t\t\ttry {\n\t\t\t\tif (typeof (value) === 'string' && !/^\\d\\d\\d\\d-\\d\\d-\\d\\d$/.test(value)) value = JSON.parse(value);\n\n\t\t\t\tif (value === null || value === undefined || value === 'false') return;\n\t\t\t} catch (e) {\n\t\t\t\t// не json строка\n\t\t\t}\n\n\t\t\tdata.set(name, value);\n\t\t});\n\n\t\treturn data;\n\t}\n\n\t/**\n\t * Установить опции из хеша адреса страницы\n\t */\n\t#loadFromHash() {\n\t\tlet dataHash: any;\n\t\ttry {\n\t\t\tdataHash = JSON.parse(getHash(this.#storeId));\n\t\t} catch (e) {\n\n\t\t}\n\t\tif (!dataHash) return;\n\n\t\tconst data: Map<string, any> = new Map();\n\n\t\tthis.#namesUrlHash.forEach((name) => {\n\t\t\tconst value = dataHash[name];\n\t\t\tif (!value) return;\n\n\t\t\tdata.set(name, value);\n\t\t});\n\n\t\tthis.#setOptions(data);\n\t}\n\n\t/**\n\t * Сохранить опции в хеш адреса страницы\n\t */\n\t#saveInHash() {\n\t\tconst data = new Map();\n\n\t\tthis.#namesUrlHash.forEach((name) => {\n\t\t\tconst value = this.#store[name];\n\n\t\t\tdata.set(name, value);\n\t\t});\n\n\t\tconst dataObject = Object.fromEntries(data);\n\t\tconst dataJSON = JSON.stringify(dataObject);\n\n\t\tsetHash(this.#storeId, dataJSON);\n\t};\n\n\t/**\n\t * Установить опции из localStorage\n\t * @param isLocal - сохранить с учетом адреса страницы\n\t */\n\t#loadFromStorage(isLocal = false) {\n\t\tconst dataFormatted = new Map();\n\n\t\tlet names = this.#namesStorage;\n\t\tlet storageNamespace = 'state:' + this.#storeId;\n\n\t\tif (isLocal) {\n\t\t\tnames = this.#namesStorageLocal;\n\t\t\tstorageNamespace = 'state:' + this.#storeId + ':' + location.pathname;\n\t\t}\n\n\t\tnames.forEach((name) => {\n\t\t\tconst value = localStorage.getItem(storageNamespace + ':' + name);\n\t\t\tdataFormatted.set(name, value);\n\t\t});\n\n\t\tconst data = this.#genDataUnFormat(dataFormatted);\n\n\t\tthis.#setOptions(data);\n\t}\n\n\t/**\n\t * Сохранить опции в localStorage\n\t * @param isLocal - сохранить с учетом адреса страницы\n\t */\n\t#saveInStorage(isLocal = false) {\n\t\tconst data = new Map();\n\n\t\tlet names = this.#namesStorage;\n\t\tlet storageNamespace = 'state:' + this.#storeId;\n\n\t\tif (isLocal) {\n\t\t\tnames = this.#namesStorageLocal;\n\t\t\tstorageNamespace = 'state:' + this.#storeId + ':' + location.pathname;\n\t\t}\n\n\t\tnames.forEach((name) => {\n\t\t\tconst value = this.#store[name];\n\n\t\t\tdata.set(name, value);\n\t\t});\n\n\t\tconst dataFormatted = this.#genDataFormat(data);\n\n\t\tnames.forEach((name) => {\n\t\t\tconst value = dataFormatted.get(name);\n\n\t\t\tlocalStorage.setItem(storageNamespace + ':' + name, value);\n\t\t});\n\t}\n\n\t/**\n\t * Установить опции из гостевой ссылки\n\t */\n\t#loadFromGuestLink() {\n\t\tconst guestData = this.#user?.guest_data?.data;\n\t\tif (!guestData) return;\n\n\t\t// общие правила для гостевых сессий\n\t\tif (this.#user.id === -1) this.#user.positionsReverseDates = guestData.positionsReverseDates;\n\n\t\tconst dataFormatted = new Map();\n\n\t\tthis.#namesGuestLink.forEach((name) => {\n\t\t\tconst value = guestData[name];\n\t\t\tdataFormatted.set(name, value);\n\t\t});\n\n\t\tconst data = this.#genDataUnFormat(dataFormatted);\n\n\t\tthis.#setOptions(data);\n\n\t\tconst $guestTitle = $('.mod_guest_title');\n\n\t\t// TODO: вынести в опции плагина\n\t\tif (this.#store.competitorsIds?.length === 1 && this.#Page.page.data.competitors) {\n\t\t\tlet competitors = this.#Page.page.data.competitors.filter((competitor: any) => competitor.id === guestData.competitorsIds[0]);\n\t\t\tif (competitors.length) {\n\t\t\t\t$('a', $guestTitle).attr('href', 'http://' + competitors[0].url);\n\t\t\t\t$('a', $guestTitle).text(competitors[0].name);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Подготовить входные параметры перед инициализацией основного функционала\n\t *\n\t * Входные параметры устанавливаются при открытии страницы\n\t *\n\t * Входные параметры могут меняться пользоваталем и устаревать\n\t */\n\t#prepareParams() {\n\t\t// контролль за вводом регионов\n\t\t// TODO: вынести в опции плагина\n\t\tif (this.#store.regionsIndexes) {\n\t\t\twatch(this.#store.regionsIndexes, (regionsIndexes) => {\n\t\t\t\tif (!regionsIndexes.length) return;\n\n\t\t\t\t// приведение типа\n\t\t\t\tregionsIndexes.forEach((regionIndex: number, index: number) => regionsIndexes[index] = regionIndex);\n\n\t\t\t\t// оставить только включенные регионы\n\t\t\t\t// @ts-ignore\n\t\t\t\tconst mapSearchers = TplProjectSelectorRegion.genSearchersMap();\n\n\t\t\t\tconst availableRegionsIndexes: number[] = [];\n\t\t\t\tmapSearchers.forEach((searcher: any) => {\n\t\t\t\t\tsearcher.regions.forEach((region: any) => {\n\t\t\t\t\t\tif (region.index === -1) return;\n\n\t\t\t\t\t\tavailableRegionsIndexes.push(region.index);\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tthis.#store.regionsIndexes = regionsIndexes.filter((regionIndex: number) => availableRegionsIndexes.includes(regionIndex));\n\t\t\t}, { immediate: true });\n\t\t}\n\n\t\t// контролль за вводом конкурентов\n\t\t// TODO: вынести в опции плагина\n\t\tif (this.#store.competitorsIds) {\n\t\t\twatch(this.#store.competitorsIds, (competitorsIds) => {\n\t\t\t\tif (!competitorsIds.length) return;\n\n\t\t\t\t// приведение типа\n\t\t\t\tcompetitorsIds.forEach((competitorId: number, index: number) => competitorsIds[index] = competitorId);\n\n\t\t\t\t// оставить только включенных конкурентов\n\t\t\t\tconst availableCompetitorsIds = [this.#Page.page.data.project.id];\n\t\t\t\tthis.#Page.page.data.project.competitors.forEach((competitor: any) => {\n\t\t\t\t\tif (competitor.on >= 0) availableCompetitorsIds.push(competitor.id);\n\t\t\t\t});\n\n\t\t\t\tthis.#store.competitorsIds = competitorsIds.filter((competitorId: number) => availableCompetitorsIds.includes(competitorId));\n\t\t\t}, { immediate: true });\n\t\t}\n\t}\n\n}\n\ntype Options = {\n\t/**\n\t * TODO: Убрать из плагина\n\t */\n\tPage: any,\n\n\t/**\n\t * Объект с настройками пользователя\n\t */\n\tuser: any,\n\n\t/**\n\t * Объект для работы с API\n\t *\n\t * См. на сайте: @/component/api/core/api.ts\n\t */\n\tApi: Api.Client<Api.TV.Paths, true>;\n\n\t/**\n\t * Имена свойств для сохранения в URL\n\t */\n\ttpaNamesUrlHash?: string[],\n\n\t/**\n\t * Имена свойств для сохранения в localStorage\n\t */\n\ttpaNamesStorage?: string[],\n\n\t/**\n\t * Имена свойств для сохранения в localStorage с учетом пути URL\n\t *\n\t * Каждый URL будет работать со своим состоянием\n\t */\n\ttpaNamesStorageLocal?: string[],\n\n\t/**\n\t * Имена свойств для работы с гостевой ссылкой\n\t *\n\t * Для генерации гостевой ссылки используйте store.genGuestLink(data, url)\n\t */\n\ttpaNamesGuestLink?: string[],\n};\n\ntype Context = PiniaPluginContext & {\n\toptions: Options\n};\n\n/**\n * Плагин tpa (Third-party access) для pinia\n *\n * Добавляет возможность сохранять и загружать данные в/из:\n * \t- URL hash в адресе страницы\n * \t- localStorage\n * \t- гостевая ссылка\n *\n * Для подключения плагина нужно указань одну или несколько опций при определении defineStore():\n * - tpaNamesUrlHash\n * - tpaNamesStorage\n * - tpaNamesStorageLocal\n * - tpaNamesGuestLink\n */\nexport default (contextPinia: PiniaPluginContext) => {\n\tconst context = contextPinia as Context;\n\n\t// плагин подключать не нужно\n\tif (\n\t\t!context.options.tpaNamesUrlHash?.length &&\n\t\t!context.options.tpaNamesStorage?.length &&\n\t\t!context.options.tpaNamesStorageLocal?.length &&\n\t\t!context.options.tpaNamesGuestLink?.length\n\t) {\n\t\treturn;\n\t}\n\n\tnew PiniaTPA(context);\n}\n"],"names":["PiniaTPA","#storeId","#store","#Page","#user","#Api","context","path","params","#loadFromStorage","save","forms","#saveInStorage","dataGuestLink","#genOptionsForGuestLink","res","link","utils_clipboard","data","nameSnakeCase","utils_string","name","currentValue","value","dataFormatted","#loadFromHash","dataHash","utils_route","#setOptions","#saveInHash","dataJSON","isLocal","names","#namesStorage","storageNamespace","#namesStorageLocal","#loadFromGuestLink","guestData","$guestTitle","competitors","competitor","#prepareParams","regionsIndexes","regionIndex","index","mapSearchers","searcher","region","availableRegionsIndexes","competitorsIds","competitorId","availableCompetitorsIds","piniaTPA","contextPinia"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["core/app.js"],"names":["exports","forms_CbUt_6Ff_esm_js_1","app_CCX_gNqz_esm_js_1","dialogs_CMrERMI7_esm_js_1","utils_BwiXsV0S_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,mCAAoC,iCAAkC,qCAAsC,mCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,EAAuB,EAA2B,EAAyB,CAC3S,aACA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,aAAe,EAAQ,YAAc,EAAQ,QAAU,EAAQ,kBAAoB,EAAQ,eAAiB,EAAQ,WAAa,EAAQ,WAAa,EAAQ,gBAAkB,EAAQ,KAAO,IAAK,GAC5M,OAAO,eAAeA,EAAS,cAAe,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC3H,OAAO,eAAeD,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACvH,OAAO,eAAeD,EAAS,OAAQ,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACpH,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC1H,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAsB,GAAM,CAAC,CACxH,OAAO,eAAeF,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAsB,GAAM,CAAC,CAC5H,OAAO,eAAeF,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAA0B,GAAM,CAAC,CACjI,OAAO,eAAeH,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOI,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeJ,EAAS,oBAAqB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOI,EAAwB,GAAM,CAAC,EACnI","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-CbUt-6Ff.esm.js\", \"../.chunks/app-CCX-gNqz.esm.js\", \"../.chunks/dialogs-CMrERMI7.esm.js\", \"../.chunks/utils-BwiXsV0S.esm.js\"], function (require, exports, forms_CbUt_6Ff_esm_js_1, app_CCX_gNqz_esm_js_1, dialogs_CMrERMI7_esm_js_1, utils_BwiXsV0S_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.useTopDialog = exports.useI18nLang = exports.useI18n = exports.useAsyncTopDialog = exports.piniaTPAPlugin = exports.i18nPlugin = exports.corePlugin = exports.TopDialogWorker = exports.Core = void 0;\n Object.defineProperty(exports, \"useI18nLang\", { enumerable: true, get: function () { return forms_CbUt_6Ff_esm_js_1.D; } });\n Object.defineProperty(exports, \"useI18n\", { enumerable: true, get: function () { return forms_CbUt_6Ff_esm_js_1.E; } });\n Object.defineProperty(exports, \"Core\", { enumerable: true, get: function () { return forms_CbUt_6Ff_esm_js_1.O; } });\n Object.defineProperty(exports, \"i18nPlugin\", { enumerable: true, get: function () { return forms_CbUt_6Ff_esm_js_1.T; } });\n Object.defineProperty(exports, \"corePlugin\", { enumerable: true, get: function () { return app_CCX_gNqz_esm_js_1.n; } });\n Object.defineProperty(exports, \"piniaTPAPlugin\", { enumerable: true, get: function () { return app_CCX_gNqz_esm_js_1.t; } });\n Object.defineProperty(exports, \"TopDialogWorker\", { enumerable: true, get: function () { return dialogs_CMrERMI7_esm_js_1.i; } });\n Object.defineProperty(exports, \"useTopDialog\", { enumerable: true, get: function () { return utils_BwiXsV0S_esm_js_1.n; } });\n Object.defineProperty(exports, \"useAsyncTopDialog\", { enumerable: true, get: function () { return utils_BwiXsV0S_esm_js_1.t; } });\n});\n"]}
|
package/core/app.js
CHANGED
|
@@ -1,213 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
import { camelToSnakeCase as d } from "../utils/string.js";
|
|
7
|
-
import { getHash as f, setHash as g } from "../utils/route.js";
|
|
8
|
-
import { u as A, a as D } from "../.chunks/utils-BNzP9anP.es.js";
|
|
9
|
-
import { T as L } from "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-CJ97l1ST.es.js";
|
|
10
|
-
class l {
|
|
11
|
-
#s;
|
|
12
|
-
#t;
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated
|
|
15
|
-
*/
|
|
16
|
-
#e;
|
|
17
|
-
#a;
|
|
18
|
-
#c;
|
|
19
|
-
#i = [];
|
|
20
|
-
#o = [];
|
|
21
|
-
#r = [];
|
|
22
|
-
#n = [];
|
|
23
|
-
constructor(t) {
|
|
24
|
-
this.#t = t.store, this.#s = this.#t.$id, this.#e = t.options.Page, this.#a = t.options.user, this.#c = t.options.Api, this.#i = t.options.tpaNamesUrlHash || [], this.#o = t.options.tpaNamesStorage || [], this.#r = t.options.tpaNamesStorageLocal || [], this.#n = t.options.tpaNamesGuestLink || [], t.store.genGuestLink = (s, a) => this.genGuestLink(s, a), this.#a.guest_data?.data || (this.#d(), this.#d(!0), this.#u()), this.#S(), this.#E();
|
|
25
|
-
const e = c(() => {
|
|
26
|
-
this.#m(), this.#f(), this.#f(!0);
|
|
27
|
-
});
|
|
28
|
-
t.store.$subscribe(e);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Сгенерировать гостевую ссылку
|
|
32
|
-
*
|
|
33
|
-
* Метод, путь к которому указан в path, должен возвращать сгенерированную ссылку
|
|
34
|
-
*/
|
|
35
|
-
async genGuestLink(t, e) {
|
|
36
|
-
const s = this.#g();
|
|
37
|
-
e = Object.assign(e, Object.fromEntries(s));
|
|
38
|
-
const a = await this.#c.gen(t).setParams(e).call();
|
|
39
|
-
if (a?.errors) return;
|
|
40
|
-
const i = a.result;
|
|
41
|
-
await p(i);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Сгенерировать опции для гостевой ссылки
|
|
45
|
-
*/
|
|
46
|
-
#g() {
|
|
47
|
-
const t = /* @__PURE__ */ new Map();
|
|
48
|
-
return this.#n.forEach((e) => {
|
|
49
|
-
const s = d(e);
|
|
50
|
-
t.set(s, this.#t[e]);
|
|
51
|
-
}), t;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Установить опции из объекта без фиксации состояния
|
|
55
|
-
*/
|
|
56
|
-
#h(t) {
|
|
57
|
-
t.forEach((e, s) => {
|
|
58
|
-
const a = this.#t[s];
|
|
59
|
-
if (e != null && a !== void 0 && e?.constructor && e.constructor === a.constructor) {
|
|
60
|
-
if (s.indexOf("date") === 0 && !Array.isArray(e)) {
|
|
61
|
-
if (typeof e == "string" && !/\d\d\d\d-\d\d-\d\d/.test(e))
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
this.#t[s] = e;
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Сгенерировать Map объект с опциями со значениями в виде json строк
|
|
70
|
-
*/
|
|
71
|
-
#l(t) {
|
|
72
|
-
const e = /* @__PURE__ */ new Map();
|
|
73
|
-
return t.forEach((s, a) => {
|
|
74
|
-
s !== null && (s = JSON.stringify(s), e.set(a, s));
|
|
75
|
-
}), e;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Сгенерировать Map объект с опциями со значениями в оригинальном виде
|
|
79
|
-
*/
|
|
80
|
-
#p(t) {
|
|
81
|
-
const e = /* @__PURE__ */ new Map();
|
|
82
|
-
return t.forEach((s, a) => {
|
|
83
|
-
if (!(s == null || s === "false")) {
|
|
84
|
-
try {
|
|
85
|
-
if (typeof s == "string" && !/^\d\d\d\d-\d\d-\d\d$/.test(s) && (s = JSON.parse(s)), s == null || s === "false") return;
|
|
86
|
-
} catch {
|
|
87
|
-
}
|
|
88
|
-
e.set(a, s);
|
|
89
|
-
}
|
|
90
|
-
}), e;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Установить опции из хеша адреса страницы
|
|
94
|
-
*/
|
|
95
|
-
#u() {
|
|
96
|
-
let t;
|
|
97
|
-
try {
|
|
98
|
-
t = JSON.parse(f(this.#s));
|
|
99
|
-
} catch {
|
|
100
|
-
}
|
|
101
|
-
if (!t) return;
|
|
102
|
-
const e = /* @__PURE__ */ new Map();
|
|
103
|
-
this.#i.forEach((s) => {
|
|
104
|
-
const a = t[s];
|
|
105
|
-
a && e.set(s, a);
|
|
106
|
-
}), this.#h(e);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Сохранить опции в хеш адреса страницы
|
|
110
|
-
*/
|
|
111
|
-
#m() {
|
|
112
|
-
const t = /* @__PURE__ */ new Map();
|
|
113
|
-
this.#i.forEach((a) => {
|
|
114
|
-
const i = this.#t[a];
|
|
115
|
-
t.set(a, i);
|
|
116
|
-
});
|
|
117
|
-
const e = Object.fromEntries(t), s = JSON.stringify(e);
|
|
118
|
-
g(this.#s, s);
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Установить опции из localStorage
|
|
122
|
-
* @param isLocal - сохранить с учетом адреса страницы
|
|
123
|
-
*/
|
|
124
|
-
#d(t = !1) {
|
|
125
|
-
const e = /* @__PURE__ */ new Map();
|
|
126
|
-
let s = this.#o, a = "state:" + this.#s;
|
|
127
|
-
t && (s = this.#r, a = "state:" + this.#s + ":" + location.pathname), s.forEach((o) => {
|
|
128
|
-
const r = localStorage.getItem(a + ":" + o);
|
|
129
|
-
e.set(o, r);
|
|
130
|
-
});
|
|
131
|
-
const i = this.#p(e);
|
|
132
|
-
this.#h(i);
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Сохранить опции в localStorage
|
|
136
|
-
* @param isLocal - сохранить с учетом адреса страницы
|
|
137
|
-
*/
|
|
138
|
-
#f(t = !1) {
|
|
139
|
-
const e = /* @__PURE__ */ new Map();
|
|
140
|
-
let s = this.#o, a = "state:" + this.#s;
|
|
141
|
-
t && (s = this.#r, a = "state:" + this.#s + ":" + location.pathname), s.forEach((o) => {
|
|
142
|
-
const r = this.#t[o];
|
|
143
|
-
e.set(o, r);
|
|
144
|
-
});
|
|
145
|
-
const i = this.#l(e);
|
|
146
|
-
s.forEach((o) => {
|
|
147
|
-
const r = i.get(o);
|
|
148
|
-
localStorage.setItem(a + ":" + o, r);
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Установить опции из гостевой ссылки
|
|
153
|
-
*/
|
|
154
|
-
#S() {
|
|
155
|
-
const t = this.#a?.guest_data?.data;
|
|
156
|
-
if (!t) return;
|
|
157
|
-
this.#a.id === -1 && (this.#a.positionsReverseDates = t.positionsReverseDates);
|
|
158
|
-
const e = /* @__PURE__ */ new Map();
|
|
159
|
-
this.#n.forEach((i) => {
|
|
160
|
-
const o = t[i];
|
|
161
|
-
e.set(i, o);
|
|
162
|
-
});
|
|
163
|
-
const s = this.#p(e);
|
|
164
|
-
this.#h(s);
|
|
165
|
-
const a = $(".mod_guest_title");
|
|
166
|
-
if (this.#t.competitorsIds?.length === 1 && this.#e.page.data.competitors) {
|
|
167
|
-
let i = this.#e.page.data.competitors.filter((o) => o.id === t.competitorsIds[0]);
|
|
168
|
-
i.length && ($("a", a).attr("href", "http://" + i[0].url), $("a", a).text(i[0].name));
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Подготовить входные параметры перед инициализацией основного функционала
|
|
173
|
-
*
|
|
174
|
-
* Входные параметры устанавливаются при открытии страницы
|
|
175
|
-
*
|
|
176
|
-
* Входные параметры могут меняться пользоваталем и устаревать
|
|
177
|
-
*/
|
|
178
|
-
#E() {
|
|
179
|
-
this.#t.regionsIndexes && h(this.#t.regionsIndexes, (t) => {
|
|
180
|
-
if (!t.length) return;
|
|
181
|
-
t.forEach((a, i) => t[i] = a);
|
|
182
|
-
const e = TplProjectSelectorRegion.genSearchersMap(), s = [];
|
|
183
|
-
e.forEach((a) => {
|
|
184
|
-
a.regions.forEach((i) => {
|
|
185
|
-
i.index !== -1 && s.push(i.index);
|
|
186
|
-
});
|
|
187
|
-
}), this.#t.regionsIndexes = t.filter((a) => s.includes(a));
|
|
188
|
-
}, { immediate: !0 }), this.#t.competitorsIds && h(this.#t.competitorsIds, (t) => {
|
|
189
|
-
if (!t.length) return;
|
|
190
|
-
t.forEach((s, a) => t[a] = s);
|
|
191
|
-
const e = [this.#e.page.data.project.id];
|
|
192
|
-
this.#e.page.data.project.competitors.forEach((s) => {
|
|
193
|
-
s.on >= 0 && e.push(s.id);
|
|
194
|
-
}), this.#t.competitorsIds = t.filter((s) => e.includes(s));
|
|
195
|
-
}, { immediate: !0 });
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
const w = (n) => {
|
|
199
|
-
const t = n;
|
|
200
|
-
!t.options.tpaNamesUrlHash?.length && !t.options.tpaNamesStorage?.length && !t.options.tpaNamesStorageLocal?.length && !t.options.tpaNamesGuestLink?.length || new l(t);
|
|
201
|
-
};
|
|
202
|
-
export {
|
|
203
|
-
I as Core,
|
|
204
|
-
L as TopDialogWorker,
|
|
205
|
-
G as corePlugin,
|
|
206
|
-
T as i18nPlugin,
|
|
207
|
-
w as piniaTPAPlugin,
|
|
208
|
-
A as useAsyncTopDialog,
|
|
209
|
-
b as useI18n,
|
|
210
|
-
y as useI18nLang,
|
|
211
|
-
D as useTopDialog
|
|
212
|
-
};
|
|
213
|
-
//# sourceMappingURL=app.js.map
|
|
1
|
+
import { D as e, E as t, O as n, T as r } from "../.chunks/forms-CbUt-6Ff.esm.js";
|
|
2
|
+
import { n as i, t as a } from "../.chunks/app-CCX-gNqz.esm.js";
|
|
3
|
+
import { i as o } from "../.chunks/dialogs-CMrERMI7.esm.js";
|
|
4
|
+
import { n as s, t as c } from "../.chunks/utils-BwiXsV0S.esm.js";
|
|
5
|
+
export { n as Core, o as TopDialogWorker, i as corePlugin, r as i18nPlugin, a as piniaTPAPlugin, c as useAsyncTopDialog, t as useI18n, e as useI18nLang, s as useTopDialog };
|
package/dialog/dialog.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define([
|
|
2
|
-
//# sourceMappingURL=dialog.amd.js.map
|
|
1
|
+
define([`require`,`exports`,`../.chunks/dialogs-CMrERMI7.amd.js`,`../.chunks/utils-BwiXsV0S.amd.js`,`../.chunks/dialog-DeM4SApg.amd.js`],function(e,t,n,r,i){"use strict";Object.defineProperty(t,`__esModule`,{value:!0}),t.useTopDialogSelf=t.propsPageCommon=t.TopDialogPageComponent=t.TopDialogPage=t.TopDialog=void 0,Object.defineProperty(t,`TopDialog`,{enumerable:!0,get:function(){return n.a}}),Object.defineProperty(t,`useTopDialogSelf`,{enumerable:!0,get:function(){return r.r}}),Object.defineProperty(t,`propsPageCommon`,{enumerable:!0,get:function(){return i.n}}),Object.defineProperty(t,`TopDialogPage`,{enumerable:!0,get:function(){return i.r}}),Object.defineProperty(t,`TopDialogPageComponent`,{enumerable:!0,get:function(){return i.t}})});
|
|
2
|
+
//# sourceMappingURL=dialog.amd.js.map
|
package/dialog/dialog.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["dialog/dialog.js"],"names":["exports","dialogs_CMrERMI7_esm_js_1","utils_BwiXsV0S_esm_js_1","dialog_DeM4SApg_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,qCAAsC,mCAAoC,oCAAoC,CAAE,SAAU,EAAS,EAAS,EAA2B,EAAyB,EAA0B,CACpP,aACA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,iBAAmB,EAAQ,gBAAkB,EAAQ,uBAAyB,EAAQ,cAAgB,EAAQ,UAAY,IAAK,GACvI,OAAO,eAAeA,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAA0B,GAAM,CAAC,CAC3H,OAAO,eAAeD,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,GAAM,CAAC,CAChI,OAAO,eAAeF,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAAyB,GAAM,CAAC,CAChI,OAAO,eAAeH,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAAyB,GAAM,CAAC,CAC9H,OAAO,eAAeH,EAAS,yBAA0B,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOG,EAAyB,GAAM,CAAC,EACzI","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/dialogs-CMrERMI7.esm.js\", \"../.chunks/utils-BwiXsV0S.esm.js\", \"../.chunks/dialog-DeM4SApg.esm.js\"], function (require, exports, dialogs_CMrERMI7_esm_js_1, utils_BwiXsV0S_esm_js_1, dialog_DeM4SApg_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.useTopDialogSelf = exports.propsPageCommon = exports.TopDialogPageComponent = exports.TopDialogPage = exports.TopDialog = void 0;\n Object.defineProperty(exports, \"TopDialog\", { enumerable: true, get: function () { return dialogs_CMrERMI7_esm_js_1.a; } });\n Object.defineProperty(exports, \"useTopDialogSelf\", { enumerable: true, get: function () { return utils_BwiXsV0S_esm_js_1.r; } });\n Object.defineProperty(exports, \"propsPageCommon\", { enumerable: true, get: function () { return dialog_DeM4SApg_esm_js_1.n; } });\n Object.defineProperty(exports, \"TopDialogPage\", { enumerable: true, get: function () { return dialog_DeM4SApg_esm_js_1.r; } });\n Object.defineProperty(exports, \"TopDialogPageComponent\", { enumerable: true, get: function () { return dialog_DeM4SApg_esm_js_1.t; } });\n});\n"]}
|
package/dialog/dialog.js
CHANGED
|
@@ -1,60 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
name: {
|
|
6
|
-
type: String,
|
|
7
|
-
required: !0
|
|
8
|
-
},
|
|
9
|
-
order: {
|
|
10
|
-
type: Number,
|
|
11
|
-
required: !0
|
|
12
|
-
},
|
|
13
|
-
prevName: String,
|
|
14
|
-
footerFullWith: Boolean
|
|
15
|
-
}, N = /* @__PURE__ */ l({
|
|
16
|
-
__name: "pageComponent",
|
|
17
|
-
props: {
|
|
18
|
-
component: {},
|
|
19
|
-
keepAlive: { type: Boolean, default: !0 },
|
|
20
|
-
props: {},
|
|
21
|
-
name: {},
|
|
22
|
-
order: {},
|
|
23
|
-
prevName: {},
|
|
24
|
-
footerFullWith: { type: Boolean }
|
|
25
|
-
},
|
|
26
|
-
setup(e) {
|
|
27
|
-
const n = e, a = v(), p = (o, r) => {
|
|
28
|
-
if (!r.value) {
|
|
29
|
-
if (o.name !== "AsyncComponentWrapper") {
|
|
30
|
-
r.value = !0;
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
a.needShowPage(n.name) && (a.isLoadingPage.value = !0, o.__asyncResolved && (r.value = !0, a.isLoadingPage.value = !1));
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
if (n.component.name === "AsyncComponentWrapper") {
|
|
37
|
-
const o = i(!1);
|
|
38
|
-
u(() => {
|
|
39
|
-
p(n.component, o);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return (o, r) => (t(), m(c, {
|
|
43
|
-
include: e.keepAlive ? "" : "none"
|
|
44
|
-
}, [
|
|
45
|
-
s(a).needShowPage(e.name) ? (t(), m(d(e.component), g({ key: 0 }, n, {
|
|
46
|
-
name: e.name,
|
|
47
|
-
order: e.order,
|
|
48
|
-
prevName: e.prevName
|
|
49
|
-
}), null, 16, ["name", "order", "prevName"])) : f("", !0)
|
|
50
|
-
], 1032, ["include"]));
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
export {
|
|
54
|
-
k as TopDialog,
|
|
55
|
-
B as TopDialogPage,
|
|
56
|
-
N as TopDialogPageComponent,
|
|
57
|
-
C as propsPageCommon,
|
|
58
|
-
v as useTopDialogSelf
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=dialog.js.map
|
|
1
|
+
import { a as e } from "../.chunks/dialogs-CMrERMI7.esm.js";
|
|
2
|
+
import { r as t } from "../.chunks/utils-BwiXsV0S.esm.js";
|
|
3
|
+
import { n, r, t as i } from "../.chunks/dialog-DeM4SApg.esm.js";
|
|
4
|
+
export { e as TopDialog, r as TopDialogPage, i as TopDialogPageComponent, n as propsPageCommon, t as useTopDialogSelf };
|
package/extra/extra.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=extra.amd.js.map
|
|
1
|
+
var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[`../require/css.amd!../assets/extra.css`]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=n(r),o=0;o<a.length;o++)a[o]!==`default`&&__createBinding(i,r,a[o]);return __setModuleDefault(i,r),i}})();define([`require`,`exports`,`vue`],function(e,t,r){"use strict";Object.defineProperty(t,`__esModule`,{value:!0}),t.TopRive=void 0,t.TopRive=(0,r.defineComponent)({__name:`rive`,props:{src:{},buffer:{},riveFile:{},artboard:{},animations:{},stateMachines:{},layout:{},autoplay:{type:Boolean,default:!0},useOffscreenRenderer:{type:Boolean},enableRiveAssetCDN:{type:Boolean},shouldDisableRiveListeners:{type:Boolean},isTouchScrollEnabled:{type:Boolean},automaticallyHandleEvents:{type:Boolean},autoBind:{type:Boolean},dispatchPointerExit:{type:Boolean},enableMultiTouch:{type:Boolean},drawingOptions:{},enablePerfMarks:{type:Boolean},onLoad:{},onLoadError:{},onPlay:{},onPause:{},onStop:{},onLoop:{},onStateChange:{},onAdvance:{},assetLoader:{},onload:{},onloaderror:{},onplay:{},onpause:{},onstop:{},onloop:{},onstatechange:{}},setup(t,{expose:i}){let a,o=t,s=(0,r.ref)(),c={riveInstance:void 0};return(0,r.watch)([s,o],async()=>{a||=await new Promise((t,n)=>{e([`@rive-app/canvas-lite`],t,n)}).then(__importStar);let t=s.value;if(!t)return;c.riveInstance?.cleanup();let r={...o,canvas:t,onLoad:e=>{o.onLoad?.(e),c.riveInstance?.resizeDrawingSurfaceToCanvas()}};c.riveInstance=new a.Rive(r)}),(0,r.onUnmounted)(()=>{c.riveInstance?.cleanup()}),i(c),(e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)(`canvas`,{ref_key:`el`,ref:s,class:`top-rive`},null,512))}})});
|
|
2
|
+
//# sourceMappingURL=extra.amd.js.map
|
package/extra/extra.amd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["extra/extra.js","../../src/components/extra/rive/rive.vue"],"names":["k2","k","desc","m","o","v","\"default\"","ownKeys","ar","mod","result","i","exports","vue_1","s","c","l","u","require","resolve_1","reject_1","e","t"],"mappings":"AAAA,IAAI,gBAAmB,MAAQ,KAAK,kBAAqB,OAAO,QAAU,SAAS,EAAG,EAAG,EAAG,EAAI,CACxFA,IAAO,SAAW,EAAKC,GAC3B,IAAIC,EAAO,OAAO,yBAAyBC,EAAGF,EAAE,EAC5C,CAACC,IAAS,QAASA,EAAO,CAACC,EAAE,WAAaD,EAAK,UAAYA,EAAK,iBAClE,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOC,EAAG,2CAAM,EAE/D,OAAO,eAAeC,EAAGJ,EAAIE,EAAK,IAChC,SAAS,EAAG,EAAG,EAAG,EAAI,CACpBF,IAAO,SAAW,EAAKC,GAC3B,EAAED,GAAMG,EAAEF,MAEV,mBAAsB,MAAQ,KAAK,qBAAwB,OAAO,QAAU,SAAS,EAAG,EAAG,CAC3F,OAAO,eAAeG,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOC,EAAG,CAAC,GAClE,SAAS,EAAG,EAAG,CAChB,EAAEC,QAAaD,IAEf,aAAgB,MAAQ,KAAK,eAAkB,UAAY,CAC3D,IAAIE,EAAU,SAAS,EAAG,CAMtB,MALA,GAAU,OAAO,qBAAuB,SAAU,EAAG,CACjD,IAAIC,EAAK,EAAE,CACX,IAAK,IAAIP,KAAKG,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGH,EAAE,GAAE,EAAGO,EAAG,QAAUP,GACjF,OAAOO,GAEJD,EAAQH,EAAE,EAErB,OAAO,SAAU,EAAK,CAClB,GAAIK,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIC,EAAS,EAAE,CACf,GAAID,GAAO,KAAM,IAAK,IAAIR,EAAIM,EAAQE,EAAI,CAAEE,EAAI,EAAGA,EAAIV,EAAE,OAAQ,IAASA,EAAEU,KAAO,WAAW,gBAAgBD,EAAQD,EAAKR,EAAEU,GAAG,CAEhI,OADA,mBAAmBD,EAAQD,EAAI,CACxBC,MAEX,CACJ,OAAO,CAAC,UAAW,UAAW,MAAM,CAAE,SAAU,EAAS,EAAS,EAAO,CACrE,aACA,OAAO,eAAeE,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,QAAU,IAAK,GAqEvB,EAAQ,SAlEiB,EAAGC,EAAM,iBAAiB,CAC/C,OAAQ,OACR,MAAO,CACH,IAAK,EAAE,CACP,OAAQ,EAAE,CACV,SAAU,EAAE,CCrClB,SAIK,EAAwB,CAM5B,WAAY,EAAA,CACA,cAAa,EAAA,CAEhB,OAAG,EAAA,CACL,SAAA,CAEL,KAAc,QAEU,QAAA,CAAA,EAC5B,CACH,qBAAA,CAAA,KAAA,QAAA,CACA,mBAAe,CAAA,KAAA,QAAA,CACR,2BAEgB,CAAA,KAAA,QAAA,CDyBb,qBAAsB,CAAE,KAAM,QAAS,CCvBjD,0BAAA,CAAA,KAAA,QAAA,CAEO,SAAe,CAAI,KAAK,QAAa,CAG9C,oBAAkB,CAAA,KAAA,QAAA,CACT,iBAAuB,CAAA,KAAA,QAAA,CAGX,eAIpB,EAA2C,CAA/B,gBAAA,CAAA,KAAA,QAAA,CAAA,OAAA,EAAA,CAAW,YAAA,EAAA,CDmBZ,OAAQ,EAAE,CACV,QAAS,EAAE,CACX,OAAQ,EAAE,CACV,OAAQ,EAAE,CACV,cAAe,EAAE,CACjB,UAAW,EAAE,CACb,YAAa,EAAE,CACf,OAAQ,EAAE,CACV,YAAa,EAAE,CACf,OAAQ,EAAE,CACV,QAAS,EAAE,CACX,OAAQ,EAAE,CACV,OAAQ,EAAE,CACV,cAAe,EAAC,CACnB,CACD,MAAM,EAAG,CAAE,OAAQT,GAAK,CACpB,IAAIU,EAAGC,EAAI,EAAGC,GAAK,EAAGH,EAAM,MAAM,CAAEI,EAAI,CAAE,aAAc,IAAK,GAAG,CAChE,OAAQ,EAAGJ,EAAM,OAAO,CAACG,EAAGD,EAAE,CAAE,SAAY,CACxC,IAAM,MAAM,IAAI,SAAS,EAAW,IAAa,CAAEG,EAAQ,CAAC,wBAAwB,CAAEC,EAAWC,EAAS,EAAI,CAAC,KAAK,aAAa,CACjI,IAAIC,EAAIL,EAAE,MACV,GAAI,CAACK,EACD,OACJJ,EAAE,cAAc,SAAS,CACzB,IAAIK,EAAI,CACJ,GAAGP,EACH,OAAQM,EACR,OAAS,GAAM,CACXN,EAAE,SAAS,EAAE,CAAEE,EAAE,cAAc,8BAA8B,EAEpE,CACD,EAAE,aAAe,IAAIH,EAAE,KAAKQ,EAAE,EAChC,EAAG,EAAGT,EAAM,iBAAmB,CAC7BI,EAAE,cAAc,SAAS,EAC3B,CAAEb,EAAEa,EAAE,EAAG,EAAG,MAAQ,EAAGJ,EAAM,YAAY,EAAG,EAAGA,EAAM,oBAAoB,SAAU,CACjF,QAAS,KACT,IAAKG,EACL,MAAO,WACV,CAAE,KAAM,IAAI,GAEpB,CAAC,EAEJ","sourcesContent":["var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\ndefine([\"require\", \"exports\", \"vue\"], function (require, exports, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.TopRive = void 0;\n //#endregion\n //#region src/components/extra/rive/rive.vue\n var o = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"rive\",\n props: {\n src: {},\n buffer: {},\n riveFile: {},\n artboard: {},\n animations: {},\n stateMachines: {},\n layout: {},\n autoplay: {\n type: Boolean,\n default: !0\n },\n useOffscreenRenderer: { type: Boolean },\n enableRiveAssetCDN: { type: Boolean },\n shouldDisableRiveListeners: { type: Boolean },\n isTouchScrollEnabled: { type: Boolean },\n automaticallyHandleEvents: { type: Boolean },\n autoBind: { type: Boolean },\n dispatchPointerExit: { type: Boolean },\n enableMultiTouch: { type: Boolean },\n drawingOptions: {},\n enablePerfMarks: { type: Boolean },\n onLoad: {},\n onLoadError: {},\n onPlay: {},\n onPause: {},\n onStop: {},\n onLoop: {},\n onStateChange: {},\n onAdvance: {},\n assetLoader: {},\n onload: {},\n onloaderror: {},\n onplay: {},\n onpause: {},\n onstop: {},\n onloop: {},\n onstatechange: {}\n },\n setup(t, { expose: o }) {\n let s, c = t, l = (0, vue_1.ref)(), u = { riveInstance: void 0 };\n return (0, vue_1.watch)([l, c], async () => {\n s ||= await new Promise((resolve_1, reject_1) => { require([\"@rive-app/canvas-lite\"], resolve_1, reject_1); }).then(__importStar);\n let e = l.value;\n if (!e)\n return;\n u.riveInstance?.cleanup();\n let t = {\n ...c,\n canvas: e,\n onLoad: (e) => {\n c.onLoad?.(e), u.riveInstance?.resizeDrawingSurfaceToCanvas();\n }\n };\n u.riveInstance = new s.Rive(t);\n }), (0, vue_1.onUnmounted)(() => {\n u.riveInstance?.cleanup();\n }), o(u), (t, n) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"canvas\", {\n ref_key: \"el\",\n ref: l,\n class: \"top-rive\"\n }, null, 512));\n }\n });\n exports.TopRive = o;\n});\n//# sourceMappingURL=extra.js.map\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref, watch } from 'vue';\nimport type { Rive, RiveParameters } from '@rive-app/canvas-lite';\nimport type { Props } from './types';\n\nlet rive: typeof import('@rive-app/canvas-lite');\n\nconst props = withDefaults(defineProps<Props>(), {\n\tautoplay: true,\n});\n\nconst el = ref<HTMLCanvasElement>();\n\nconst topRive = {\n\triveInstance: undefined as Rive | undefined,\n};\n\nwatch([el, props], async () => {\n\tif (!rive) rive = await import('@rive-app/canvas-lite');\n\n\tconst canvas = el.value;\n\tif (!canvas) return;\n\n\ttopRive.riveInstance?.cleanup();\n\n\tconst options: RiveParameters = {\n\t\t...props,\n\t\tcanvas,\n\t\tonLoad: (e) => {\n\t\t\tprops.onLoad?.(e);\n\n\t\t\ttopRive.riveInstance?.resizeDrawingSurfaceToCanvas();\n\t\t},\n\t};\n\n\ttopRive.riveInstance = new rive.Rive(options);\n});\n\nonUnmounted(() => {\n\ttopRive.riveInstance?.cleanup();\n});\n\ndefineExpose(topRive);\n</script>\n\n<template>\n\t<canvas ref=\"el\" class=\"top-rive\"></canvas>\n</template>\n\n<style>\n.top-rive {\n\twidth: 100%;\n\theight: 100%;\n\tflex-grow: 1;\n}\n</style>\n"]}
|