@platforma-sdk/ui-vue 1.48.2 → 1.48.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/.turbo/turbo-build.log +207 -1
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.d.ts.map +1 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js +12 -12
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue.d.ts.map +1 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js +45 -37
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/types.d.ts +3 -1
- package/dist/components/PlAnnotations/types.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/components/PlAdvancedFilter/PlAdvancedFilter.vue +7 -1
- package/src/components/PlAnnotations/components/AnnotationsSidebar.vue +12 -1
- package/src/components/PlAnnotations/types.ts +1 -1
- package/src/components/PlAnnotations/components/DynamicForm.vue +0 -151
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,15 +1,221 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-sdk/ui-vue@1.48.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.48.5 build /home/runner/_work/platforma/platforma/sdk/ui-vue
|
|
4
4
|
> ts-builder build --target browser-lib
|
|
5
5
|
|
|
6
6
|
Building browser-lib project...
|
|
7
7
|
↳ vite.js build --config /configs/vite.browser-lib.config.js --mode production
|
|
8
|
+
[36mvite v6.3.5 [32mbuilding for production...[36m[39m
|
|
8
9
|
[96msrc/components/PlTableFilters/filters_logic.ts[0m:[93m22[0m:[93m8[0m - [91merror[0m[90m TS1192: [0mModule '"/home/runner/_work/platforma/platforma/node_modules/.pnpm/@types+semver@7.7.0/node_modules/@types/semver/index"' has no default export.
|
|
9
10
|
|
|
10
11
|
[7m22[0m import semver from 'semver';
|
|
11
12
|
[7m [0m [91m ~~~~~~[0m
|
|
12
13
|
|
|
14
|
+
transforming...
|
|
15
|
+
[32m✓[39m 234 modules transformed.
|
|
13
16
|
[33mExport "default" of module "src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue" was reexported through module "src/components/PlAgGridColumnManager/index.ts" while both modules are dependencies of each other and will end up in different chunks by current Rollup settings. This scenario is not well supported at the moment as it will produce a circular dependency between chunks and will likely lead to broken execution order.
|
|
14
17
|
Either change the import in "src/components/PlAgDataTable/PlAgDataTableV2.vue?vue&type=script&setup=true&lang.ts" to point directly to the exporting module or do not use "output.preserveModules" to ensure these modules end up in the same chunk.[39m
|
|
18
|
+
rendering chunks...
|
|
19
|
+
|
|
20
|
+
[vite:dts] Start generate declaration files...
|
|
21
|
+
computing gzip size...
|
|
22
|
+
[2mdist/[22m[36m_virtual/re.js [39m[1m[2m 0.08 kB[22m[1m[22m[2m │ gzip: 0.10 kB[22m[2m │ map: 0.09 kB[22m
|
|
23
|
+
[2mdist/[22m[36mcomponents/NotFound.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
24
|
+
[2mdist/[22m[36mcomponents/BlockLoader.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
25
|
+
[2mdist/[22m[36mcomponents/PlAgCellFile/PlAgCellFile.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
26
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgRowCount.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
27
|
+
[2mdist/[22m[36mcomponents/PlAgCsvExporter/PlAgCsvExporter.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
28
|
+
[2mdist/[22m[36mcomponents/PlAgColumnHeader/PlAgColumnHeader.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
29
|
+
[2mdist/[22m[36mcomponents/PlAgCellProgress/PlAgCellProgress.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
30
|
+
[2mdist/[22m[36mcomponents/PlAgRowNumHeader.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
31
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgOverlayLoading.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
32
|
+
[2mdist/[22m[36mcomponents/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
33
|
+
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableAddFilterV2.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
34
|
+
[2mdist/[22m[36mplugins/Monetization/MonetizationSidebar.vue2.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
35
|
+
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableFilterEntryV2.vue2.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
36
|
+
[2mdist/[22m[36mcomponents/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
37
|
+
[2mdist/[22m[36mcomponents/ValueOrErrorsComponent.vue2.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
38
|
+
[2mdist/[22m[36murls.js [39m[1m[2m 0.14 kB[22m[1m[22m[2m │ gzip: 0.15 kB[22m[2m │ map: 0.64 kB[22m
|
|
39
|
+
[2mdist/[22m[36mcomponents/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue2.js [39m[1m[2m 0.14 kB[22m[1m[22m[2m │ gzip: 0.13 kB[22m[2m │ map: 0.12 kB[22m
|
|
40
|
+
[2mdist/[22m[36mlib/util/helpers/dist/random.js [39m[1m[2m 0.16 kB[22m[1m[22m[2m │ gzip: 0.16 kB[22m[2m │ map: 0.74 kB[22m
|
|
41
|
+
[2mdist/[22m[36m_virtual/_plugin-vue_export-helper.js [39m[1m[2m 0.19 kB[22m[1m[22m[2m │ gzip: 0.17 kB[22m[2m │ map: 0.12 kB[22m
|
|
42
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/menu-items.js [39m[1m[2m 0.19 kB[22m[1m[22m[2m │ gzip: 0.16 kB[22m[2m │ map: 0.52 kB[22m
|
|
43
|
+
[2mdist/[22m[36mlib/util/helpers/dist/functions.js [39m[1m[2m 0.20 kB[22m[1m[22m[2m │ gzip: 0.17 kB[22m[2m │ map: 5.26 kB[22m
|
|
44
|
+
[2mdist/[22m[36m_virtual/_commonjsHelpers.js [39m[1m[2m 0.20 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.10 kB[22m
|
|
45
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/common.js [39m[1m[2m 0.21 kB[22m[1m[22m[2m │ gzip: 0.17 kB[22m[2m │ map: 0.65 kB[22m
|
|
46
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gt.js [39m[1m[2m 0.22 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.48 kB[22m
|
|
47
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lt.js [39m[1m[2m 0.22 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.48 kB[22m
|
|
48
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rcompare.js [39m[1m[2m 0.23 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.50 kB[22m
|
|
49
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/eq.js [39m[1m[2m 0.23 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.48 kB[22m
|
|
50
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gte.js [39m[1m[2m 0.23 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.49 kB[22m
|
|
51
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lte.js [39m[1m[2m 0.23 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.49 kB[22m
|
|
52
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/gtr.js [39m[1m[2m 0.23 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.60 kB[22m
|
|
53
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/ltr.js [39m[1m[2m 0.23 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.60 kB[22m
|
|
54
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/neq.js [39m[1m[2m 0.23 kB[22m[1m[22m[2m │ gzip: 0.19 kB[22m[2m │ map: 0.49 kB[22m
|
|
55
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-loose.js [39m[1m[2m 0.23 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 0.50 kB[22m
|
|
56
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/major.js [39m[1m[2m 0.24 kB[22m[1m[22m[2m │ gzip: 0.19 kB[22m[2m │ map: 0.48 kB[22m
|
|
57
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/minor.js [39m[1m[2m 0.24 kB[22m[1m[22m[2m │ gzip: 0.19 kB[22m[2m │ map: 0.49 kB[22m
|
|
58
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/patch.js [39m[1m[2m 0.24 kB[22m[1m[22m[2m │ gzip: 0.19 kB[22m[2m │ map: 0.48 kB[22m
|
|
59
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/index.js [39m[1m[2m 0.24 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.66 kB[22m
|
|
60
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/sort.js [39m[1m[2m 0.24 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.56 kB[22m
|
|
61
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rsort.js [39m[1m[2m 0.24 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.56 kB[22m
|
|
62
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/parse-options.js [39m[1m[2m 0.25 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.79 kB[22m
|
|
63
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.58 kB[22m
|
|
64
|
+
[2mdist/[22m[36mcomponents/PlBtnExportArchive/Item.vue.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.10 kB[22m
|
|
65
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/valid.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.59 kB[22m
|
|
66
|
+
[2mdist/[22m[36m_virtual/index.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.09 kB[22m
|
|
67
|
+
[2mdist/[22m[36mcomponents/PlBtnExportArchive/Summary.vue.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.10 kB[22m
|
|
68
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/intersects.js [39m[1m[2m 0.28 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.67 kB[22m
|
|
69
|
+
[2mdist/[22m[36mplugins/Monetization/RunStatus.vue.js [39m[1m[2m 0.28 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.10 kB[22m
|
|
70
|
+
[2mdist/[22m[36mplugins/Monetization/LimitCard.vue.js [39m[1m[2m 0.28 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.10 kB[22m
|
|
71
|
+
[2mdist/[22m[36mcomponents/BlockLayout.vue.js [39m[1m[2m 0.28 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
72
|
+
[2mdist/[22m[36mplugins/Monetization/EndOfPeriod.vue.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
73
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/FilterEditor.vue.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
74
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/debug.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.63 kB[22m
|
|
75
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/OperandButton.vue.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
76
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/PlAnnotations.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
77
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/FilterSidebar.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
78
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgDataTableV2.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
79
|
+
[2mdist/[22m[36mplugins/Monetization/UserCabinetCard.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
80
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.65 kB[22m
|
|
81
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/prerelease.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.68 kB[22m
|
|
82
|
+
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableFiltersV2.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
83
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/PlAdvancedFilter.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
84
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/to-comparators.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.78 kB[22m
|
|
85
|
+
[2mdist/[22m[36mcomponents/PlBtnExportArchive/PlBtnExportArchive.vue.js [39m[1m[2m 0.31 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
86
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/PlAnnotationsModal.vue.js [39m[1m[2m 0.31 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
87
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/AnnotationsSidebar.vue.js [39m[1m[2m 0.31 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
88
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgDataTableSheets.vue.js [39m[1m[2m 0.31 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
89
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/valid.js [39m[1m[2m 0.31 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.76 kB[22m
|
|
90
|
+
[2mdist/[22m[36mcomponents/PlAgGridColumnManager/PlAgGridColumnManager.vue.js [39m[1m[2m 0.32 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.12 kB[22m
|
|
91
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/satisfies.js [39m[1m[2m 0.32 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.74 kB[22m
|
|
92
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-build.js [39m[1m[2m 0.32 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.80 kB[22m
|
|
93
|
+
[2mdist/[22m[36mlib/util/helpers/dist/strings.js [39m[1m[2m 0.35 kB[22m[1m[22m[2m │ gzip: 0.24 kB[22m[2m │ map: 4.16 kB[22m
|
|
94
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/parse.js [39m[1m[2m 0.38 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.86 kB[22m
|
|
95
|
+
[2mdist/[22m[36mcomputedResult.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.26 kB[22m[2m │ map: 2.42 kB[22m
|
|
96
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/identifiers.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.26 kB[22m[2m │ map: 1.10 kB[22m
|
|
97
|
+
[2mdist/[22m[36mcomponents/PlAgCellStatusTag/PlAgCellStatusTag.vue3.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m[2m │ map: 0.11 kB[22m
|
|
98
|
+
[2mdist/[22m[36mcomponents/BlockLayout.vue3.js [39m[1m[2m 0.42 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m[2m │ map: 0.10 kB[22m
|
|
99
|
+
[2mdist/[22m[36mobjectHash.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m[2m │ map: 1.23 kB[22m
|
|
100
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/PlAnnotations.vue3.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m[2m │ map: 0.11 kB[22m
|
|
101
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/inc.js [39m[1m[2m 0.44 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m[2m │ map: 1.10 kB[22m
|
|
102
|
+
[2mdist/[22m[36mcomponents/PlAgGridColumnManager/PlAgGridColumnManager.vue3.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.33 kB[22m[2m │ map: 0.11 kB[22m
|
|
103
|
+
[2mdist/[22m[36mcomponents/PlAgCellProgress/PlAgCellProgress.vue.js [39m[1m[2m 0.47 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m[2m │ map: 0.76 kB[22m
|
|
104
|
+
[2mdist/[22m[36mdefineStore.js [39m[1m[2m 0.47 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m[2m │ map: 1.40 kB[22m
|
|
105
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgDataTableSheets.vue3.js [39m[1m[2m 0.47 kB[22m[1m[22m[2m │ gzip: 0.33 kB[22m[2m │ map: 0.11 kB[22m
|
|
106
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/PlAnnotationsModal.vue3.js [39m[1m[2m 0.49 kB[22m[1m[22m[2m │ gzip: 0.34 kB[22m[2m │ map: 0.11 kB[22m
|
|
107
|
+
[2mdist/[22m[36mcomponents/LoaderPage.vue.js [39m[1m[2m 0.51 kB[22m[1m[22m[2m │ gzip: 0.35 kB[22m[2m │ map: 0.55 kB[22m
|
|
108
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgDataTableV2.vue3.js [39m[1m[2m 0.52 kB[22m[1m[22m[2m │ gzip: 0.36 kB[22m[2m │ map: 0.11 kB[22m
|
|
109
|
+
[2mdist/[22m[36mcomponents/PlAgChartHistogramCell/PlAgChartHistogramCell.vue3.js [39m[1m[2m 0.52 kB[22m[1m[22m[2m │ gzip: 0.36 kB[22m[2m │ map: 0.11 kB[22m
|
|
110
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-satisfying.js [39m[1m[2m 0.52 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m[2m │ map: 1.36 kB[22m
|
|
111
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/max-satisfying.js [39m[1m[2m 0.53 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m[2m │ map: 1.36 kB[22m
|
|
112
|
+
[2mdist/[22m[36mplugins/Monetization/useButtonTarget.js [39m[1m[2m 0.53 kB[22m[1m[22m[2m │ gzip: 0.33 kB[22m[2m │ map: 1.29 kB[22m
|
|
113
|
+
[2mdist/[22m[36mcomponents/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue3.js [39m[1m[2m 0.53 kB[22m[1m[22m[2m │ gzip: 0.36 kB[22m[2m │ map: 0.11 kB[22m
|
|
114
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/FilterSidebar.vue3.js [39m[1m[2m 0.53 kB[22m[1m[22m[2m │ gzip: 0.34 kB[22m[2m │ map: 0.11 kB[22m
|
|
115
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/constants.js [39m[1m[2m 0.60 kB[22m[1m[22m[2m │ gzip: 0.38 kB[22m[2m │ map: 1.59 kB[22m
|
|
116
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/ag-override.css.js [39m[1m[2m 0.61 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m[2m │ map: 0.92 kB[22m
|
|
117
|
+
[2mdist/[22m[36mcomponents/PlAgCellStatusTag/PlAgCellStatusTag.vue.js [39m[1m[2m 0.61 kB[22m[1m[22m[2m │ gzip: 0.40 kB[22m[2m │ map: 0.95 kB[22m
|
|
118
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/lrucache.js [39m[1m[2m 0.68 kB[22m[1m[22m[2m │ gzip: 0.33 kB[22m[2m │ map: 1.70 kB[22m
|
|
119
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgOverlayNoRows.vue.js [39m[1m[2m 0.69 kB[22m[1m[22m[2m │ gzip: 0.44 kB[22m[2m │ map: 1.74 kB[22m
|
|
120
|
+
[2mdist/[22m[36mplugins/Monetization/EndOfPeriod.vue3.js [39m[1m[2m 0.72 kB[22m[1m[22m[2m │ gzip: 0.48 kB[22m[2m │ map: 0.10 kB[22m
|
|
121
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/style.module.css.js [39m[1m[2m 0.74 kB[22m[1m[22m[2m │ gzip: 0.44 kB[22m[2m │ map: 0.11 kB[22m
|
|
122
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/diff.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.39 kB[22m[2m │ map: 2.46 kB[22m
|
|
123
|
+
[2mdist/[22m[36mcomponents/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.js [39m[1m[2m 0.77 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m[2m │ map: 1.51 kB[22m
|
|
124
|
+
[2mdist/[22m[36mplugins/Monetization/EndOfPeriod.vue2.js [39m[1m[2m 0.77 kB[22m[1m[22m[2m │ gzip: 0.47 kB[22m[2m │ map: 1.86 kB[22m
|
|
125
|
+
[2mdist/[22m[36mcomponents/BlockLoader.vue.js [39m[1m[2m 0.82 kB[22m[1m[22m[2m │ gzip: 0.48 kB[22m[2m │ map: 1.30 kB[22m
|
|
126
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/simplify.js [39m[1m[2m 0.83 kB[22m[1m[22m[2m │ gzip: 0.44 kB[22m[2m │ map: 2.64 kB[22m
|
|
127
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/OperandButton.vue2.js [39m[1m[2m 0.84 kB[22m[1m[22m[2m │ gzip: 0.51 kB[22m[2m │ map: 1.86 kB[22m
|
|
128
|
+
[2mdist/[22m[36mcomponents/PlBtnExportArchive/Summary.vue3.js [39m[1m[2m 0.85 kB[22m[1m[22m[2m │ gzip: 0.49 kB[22m[2m │ map: 0.10 kB[22m
|
|
129
|
+
[2mdist/[22m[36mcomponents/NotFound.vue.js [39m[1m[2m 0.90 kB[22m[1m[22m[2m │ gzip: 0.54 kB[22m[2m │ map: 1.17 kB[22m
|
|
130
|
+
[2mdist/[22m[36mcomponents/PlBtnExportArchive/PlBtnExportArchive.vue3.js [39m[1m[2m 0.91 kB[22m[1m[22m[2m │ gzip: 0.52 kB[22m[2m │ map: 0.11 kB[22m
|
|
131
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/OperandButton.vue3.js [39m[1m[2m 0.93 kB[22m[1m[22m[2m │ gzip: 0.52 kB[22m[2m │ map: 0.11 kB[22m
|
|
132
|
+
[2mdist/[22m[36mnode_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/index.js [39m[1m[2m 0.94 kB[22m[1m[22m[2m │ gzip: 0.42 kB[22m[2m │ map: 1.12 kB[22m
|
|
133
|
+
[2mdist/[22m[36mcomponents/ValueOrErrorsComponent.vue.js [39m[1m[2m 0.98 kB[22m[1m[22m[2m │ gzip: 0.50 kB[22m[2m │ map: 1.62 kB[22m
|
|
134
|
+
[2mdist/[22m[36mcomponents/PlAgChartHistogramCell/PlAgChartHistogramCell.vue.js [39m[1m[2m 1.00 kB[22m[1m[22m[2m │ gzip: 0.55 kB[22m[2m │ map: 2.09 kB[22m
|
|
135
|
+
[2mdist/[22m[36mcomponents/PlBtnExportArchive/Item.vue3.js [39m[1m[2m 1.03 kB[22m[1m[22m[2m │ gzip: 0.52 kB[22m[2m │ map: 0.10 kB[22m
|
|
136
|
+
[2mdist/[22m[36mcomponents/PlAgRowNumCheckbox/pl-ag-row-num-checkbox.module.scss.js [39m[1m[2m 1.03 kB[22m[1m[22m[2m │ gzip: 0.49 kB[22m[2m │ map: 0.13 kB[22m
|
|
137
|
+
[2mdist/[22m[36mcomponents/PlAgCellFile/PlAgCellFile.vue.js [39m[1m[2m 1.09 kB[22m[1m[22m[2m │ gzip: 0.59 kB[22m[2m │ map: 3.22 kB[22m
|
|
138
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/cmp.js [39m[1m[2m 1.11 kB[22m[1m[22m[2m │ gzip: 0.40 kB[22m[2m │ map: 2.14 kB[22m
|
|
139
|
+
[2mdist/[22m[36mlib/util/helpers/dist/utils.js [39m[1m[2m 1.13 kB[22m[1m[22m[2m │ gzip: 0.53 kB[22m[2m │ map: 7.55 kB[22m
|
|
140
|
+
[2mdist/[22m[36mcomponents/PlAgGridColumnManager/useFilteredItems.js [39m[1m[2m 1.13 kB[22m[1m[22m[2m │ gzip: 0.58 kB[22m[2m │ map: 3.95 kB[22m
|
|
141
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/value-rendering.js [39m[1m[2m 1.14 kB[22m[1m[22m[2m │ gzip: 0.54 kB[22m[2m │ map: 3.41 kB[22m
|
|
142
|
+
[2mdist/[22m[36mcomponents/PlAgCsvExporter/PlAgCsvExporter.vue.js [39m[1m[2m 1.15 kB[22m[1m[22m[2m │ gzip: 0.62 kB[22m[2m │ map: 1.77 kB[22m
|
|
143
|
+
[2mdist/[22m[36mAgGridVue/selection.js [39m[1m[2m 1.17 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m[2m │ map: 3.53 kB[22m
|
|
144
|
+
[2mdist/[22m[36mplugins/Monetization/validation.js [39m[1m[2m 1.17 kB[22m[1m[22m[2m │ gzip: 0.56 kB[22m[2m │ map: 2.85 kB[22m
|
|
145
|
+
[2mdist/[22m[36mlib/util/helpers/dist/objects.js [39m[1m[2m 1.18 kB[22m[1m[22m[2m │ gzip: 0.53 kB[22m[2m │ map: 9.42 kB[22m
|
|
146
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js [39m[1m[2m 1.18 kB[22m[1m[22m[2m │ gzip: 0.58 kB[22m[2m │ map: 3.54 kB[22m
|
|
147
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-version.js [39m[1m[2m 1.20 kB[22m[1m[22m[2m │ gzip: 0.57 kB[22m[2m │ map: 2.88 kB[22m
|
|
148
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgOverlayLoading.vue.js [39m[1m[2m 1.23 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m[2m │ map: 2.46 kB[22m
|
|
149
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/utils.js [39m[1m[2m 1.26 kB[22m[1m[22m[2m │ gzip: 0.60 kB[22m[2m │ map: 5.10 kB[22m
|
|
150
|
+
[2mdist/[22m[36mplugins/Monetization/RunStatus.vue2.js [39m[1m[2m 1.27 kB[22m[1m[22m[2m │ gzip: 0.59 kB[22m[2m │ map: 3.13 kB[22m
|
|
151
|
+
[2mdist/[22m[36mcomponents/PlBtnExportArchive/Summary.vue2.js [39m[1m[2m 1.32 kB[22m[1m[22m[2m │ gzip: 0.58 kB[22m[2m │ map: 2.53 kB[22m
|
|
152
|
+
[2mdist/[22m[36mlib/util/helpers/dist/prettyBytes.js [39m[1m[2m 1.34 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m[2m │ map: 4.36 kB[22m
|
|
153
|
+
[2mdist/[22m[36mcomponents/PlBtnExportArchive/Item.vue2.js [39m[1m[2m 1.37 kB[22m[1m[22m[2m │ gzip: 0.56 kB[22m[2m │ map: 2.80 kB[22m
|
|
154
|
+
[2mdist/[22m[36mcreateModel.js [39m[1m[2m 1.39 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m[2m │ map: 3.91 kB[22m
|
|
155
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/types.js [39m[1m[2m 1.40 kB[22m[1m[22m[2m │ gzip: 0.56 kB[22m[2m │ map: 9.40 kB[22m
|
|
156
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/PlAdvancedFilter.vue3.js [39m[1m[2m 1.52 kB[22m[1m[22m[2m │ gzip: 0.73 kB[22m[2m │ map: 0.11 kB[22m
|
|
157
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/outside.js [39m[1m[2m 1.55 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m[2m │ map: 3.99 kB[22m
|
|
158
|
+
[2mdist/[22m[36mplugins/Monetization/UserCabinetCard.vue3.js [39m[1m[2m 1.55 kB[22m[1m[22m[2m │ gzip: 0.77 kB[22m[2m │ map: 0.11 kB[22m
|
|
159
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/focus-row.js [39m[1m[2m 1.57 kB[22m[1m[22m[2m │ gzip: 0.75 kB[22m[2m │ map: 2.65 kB[22m
|
|
160
|
+
[2mdist/[22m[36mutils.js [39m[1m[2m 1.57 kB[22m[1m[22m[2m │ gzip: 0.72 kB[22m[2m │ map: 3.81 kB[22m
|
|
161
|
+
[2mdist/[22m[36mAgGridVue/createAgGridColDef.js [39m[1m[2m 1.61 kB[22m[1m[22m[2m │ gzip: 0.72 kB[22m[2m │ map: 9.40 kB[22m
|
|
162
|
+
[2mdist/[22m[36mcomponents/PlAgCsvExporter/export-csv.js [39m[1m[2m 1.63 kB[22m[1m[22m[2m │ gzip: 0.74 kB[22m[2m │ map: 3.92 kB[22m
|
|
163
|
+
[2mdist/[22m[36maggrid.js [39m[1m[2m 1.65 kB[22m[1m[22m[2m │ gzip: 0.79 kB[22m[2m │ map: 3.09 kB[22m
|
|
164
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/constants.js [39m[1m[2m 1.66 kB[22m[1m[22m[2m │ gzip: 0.51 kB[22m[2m │ map: 3.77 kB[22m
|
|
165
|
+
[2mdist/[22m[36minternal/createAppModel.js [39m[1m[2m 1.73 kB[22m[1m[22m[2m │ gzip: 0.77 kB[22m[2m │ map: 4.81 kB[22m
|
|
166
|
+
[2mdist/[22m[36mplugins/Monetization/RunStatus.vue3.js [39m[1m[2m 1.79 kB[22m[1m[22m[2m │ gzip: 0.82 kB[22m[2m │ map: 0.11 kB[22m
|
|
167
|
+
[2mdist/[22m[36minternal/UpdateSerializer.js [39m[1m[2m 1.86 kB[22m[1m[22m[2m │ gzip: 0.80 kB[22m[2m │ map: 4.63 kB[22m
|
|
168
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/PlAnnotationsModal.vue2.js [39m[1m[2m 1.99 kB[22m[1m[22m[2m │ gzip: 0.86 kB[22m[2m │ map: 2.62 kB[22m
|
|
169
|
+
[2mdist/[22m[36mdefineApp.js [39m[1m[2m 2.15 kB[22m[1m[22m[2m │ gzip: 0.96 kB[22m[2m │ map: 9.58 kB[22m
|
|
170
|
+
[2mdist/[22m[36mplugins/Monetization/useInfo.js [39m[1m[2m 2.18 kB[22m[1m[22m[2m │ gzip: 0.80 kB[22m[2m │ map: 4.32 kB[22m
|
|
171
|
+
[2mdist/[22m[36mcomponents/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js [39m[1m[2m 2.20 kB[22m[1m[22m[2m │ gzip: 1.05 kB[22m[2m │ map: 3.27 kB[22m
|
|
172
|
+
[2mdist/[22m[36mplugins/Monetization/UserCabinetCard.vue2.js [39m[1m[2m 2.36 kB[22m[1m[22m[2m │ gzip: 0.95 kB[22m[2m │ map: 4.61 kB[22m
|
|
173
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/FilterEditor.vue3.js [39m[1m[2m 2.49 kB[22m[1m[22m[2m │ gzip: 1.00 kB[22m[2m │ map: 0.12 kB[22m
|
|
174
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgDataTableSheets.vue2.js [39m[1m[2m 2.57 kB[22m[1m[22m[2m │ gzip: 1.16 kB[22m[2m │ map: 5.91 kB[22m
|
|
175
|
+
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableFiltersV2.vue3.js [39m[1m[2m 2.58 kB[22m[1m[22m[2m │ gzip: 0.94 kB[22m[2m │ map: 0.12 kB[22m
|
|
176
|
+
[2mdist/[22m[36mcomponents/PlTableFilters/filters-state.js [39m[1m[2m 2.60 kB[22m[1m[22m[2m │ gzip: 1.08 kB[22m[2m │ map: 7.95 kB[22m
|
|
177
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/comparator.js [39m[1m[2m 2.65 kB[22m[1m[22m[2m │ gzip: 0.94 kB[22m[2m │ map: 6.36 kB[22m
|
|
178
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/PlAnnotations.vue2.js [39m[1m[2m 2.68 kB[22m[1m[22m[2m │ gzip: 1.08 kB[22m[2m │ map: 4.03 kB[22m
|
|
179
|
+
[2mdist/[22m[36mnode_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/helpers.js [39m[1m[2m 2.79 kB[22m[1m[22m[2m │ gzip: 1.21 kB[22m[2m │ map: 8.92 kB[22m
|
|
180
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/row-number.js [39m[1m[2m 3.10 kB[22m[1m[22m[2m │ gzip: 1.34 kB[22m[2m │ map: 8.36 kB[22m
|
|
181
|
+
[2mdist/[22m[36mplugins/Monetization/LimitCard.vue3.js [39m[1m[2m 3.10 kB[22m[1m[22m[2m │ gzip: 1.09 kB[22m[2m │ map: 0.11 kB[22m
|
|
182
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/table-state-v2.js [39m[1m[2m 3.18 kB[22m[1m[22m[2m │ gzip: 1.16 kB[22m[2m │ map: 9.94 kB[22m
|
|
183
|
+
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableAddFilterV2.vue.js [39m[1m[2m 3.19 kB[22m[1m[22m[2m │ gzip: 1.28 kB[22m[2m │ map: 4.96 kB[22m
|
|
184
|
+
[2mdist/[22m[36mnode_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/duplex.js [39m[1m[2m 3.33 kB[22m[1m[22m[2m │ gzip: 1.22 kB[22m[2m │ map: 10.70 kB[22m
|
|
185
|
+
[2mdist/[22m[36mcomponents/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js [39m[1m[2m 3.37 kB[22m[1m[22m[2m │ gzip: 1.43 kB[22m[2m │ map: 4.14 kB[22m
|
|
186
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/subset.js [39m[1m[2m 3.51 kB[22m[1m[22m[2m │ gzip: 1.04 kB[22m[2m │ map: 11.66 kB[22m
|
|
187
|
+
[2mdist/[22m[36mcomponents/PlAgColumnHeader/PlAgColumnHeader.vue.js [39m[1m[2m 3.51 kB[22m[1m[22m[2m │ gzip: 1.38 kB[22m[2m │ map: 4.73 kB[22m
|
|
188
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js [39m[1m[2m 3.67 kB[22m[1m[22m[2m │ gzip: 1.01 kB[22m[2m │ map: 5.45 kB[22m
|
|
189
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/AnnotationsSidebar.vue2.js [39m[1m[2m 3.80 kB[22m[1m[22m[2m │ gzip: 1.45 kB[22m[2m │ map: 5.60 kB[22m
|
|
190
|
+
[2mdist/[22m[36mplugins/Monetization/LimitCard.vue2.js [39m[1m[2m 3.84 kB[22m[1m[22m[2m │ gzip: 1.15 kB[22m[2m │ map: 9.38 kB[22m
|
|
191
|
+
[2mdist/[22m[36mcomponents/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js [39m[1m[2m 3.85 kB[22m[1m[22m[2m │ gzip: 1.53 kB[22m[2m │ map: 6.90 kB[22m
|
|
192
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js [39m[1m[2m 4.03 kB[22m[1m[22m[2m │ gzip: 1.23 kB[22m[2m │ map: 12.92 kB[22m
|
|
193
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/FilterSidebar.vue2.js [39m[1m[2m 4.22 kB[22m[1m[22m[2m │ gzip: 1.53 kB[22m[2m │ map: 7.29 kB[22m
|
|
194
|
+
[2mdist/[22m[36mplugins/Monetization/MonetizationSidebar.vue.js [39m[1m[2m 4.71 kB[22m[1m[22m[2m │ gzip: 1.75 kB[22m[2m │ map: 6.69 kB[22m
|
|
195
|
+
[2mdist/[22m[36mcomponents/BlockLayout.vue2.js [39m[1m[2m 4.97 kB[22m[1m[22m[2m │ gzip: 1.84 kB[22m[2m │ map: 3.90 kB[22m
|
|
196
|
+
[2mdist/[22m[36mcomponents/PlAnnotations/components/AnnotationsSidebar.vue3.js [39m[1m[2m 5.65 kB[22m[1m[22m[2m │ gzip: 1.67 kB[22m[2m │ map: 0.11 kB[22m
|
|
197
|
+
[2mdist/[22m[36minternal/createAppV1.js [39m[1m[2m 5.76 kB[22m[1m[22m[2m │ gzip: 1.84 kB[22m[2m │ map: 15.33 kB[22m
|
|
198
|
+
[2mdist/[22m[36mcomposition/fileContent.js [39m[1m[2m 5.78 kB[22m[1m[22m[2m │ gzip: 1.95 kB[22m[2m │ map: 14.16 kB[22m
|
|
199
|
+
[2mdist/[22m[36mcomponents/PlBtnExportArchive/PlBtnExportArchive.vue2.js [39m[1m[2m 5.93 kB[22m[1m[22m[2m │ gzip: 2.22 kB[22m[2m │ map: 11.97 kB[22m
|
|
200
|
+
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableFiltersV2.vue2.js [39m[1m[2m 6.12 kB[22m[1m[22m[2m │ gzip: 2.03 kB[22m[2m │ map: 11.68 kB[22m
|
|
201
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/semver.js [39m[1m[2m 6.70 kB[22m[1m[22m[2m │ gzip: 1.86 kB[22m[2m │ map: 15.20 kB[22m
|
|
202
|
+
[2mdist/[22m[36minternal/createAppV2.js [39m[1m[2m 6.93 kB[22m[1m[22m[2m │ gzip: 2.43 kB[22m[2m │ map: 19.37 kB[22m
|
|
203
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/table-source-v2.js [39m[1m[2m 7.32 kB[22m[1m[22m[2m │ gzip: 2.67 kB[22m[2m │ map: 22.27 kB[22m
|
|
204
|
+
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableFilterEntryV2.vue.js [39m[1m[2m 7.36 kB[22m[1m[22m[2m │ gzip: 1.62 kB[22m[2m │ map: 10.79 kB[22m
|
|
205
|
+
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js [39m[1m[2m 7.70 kB[22m[1m[22m[2m │ gzip: 2.49 kB[22m[2m │ map: 25.65 kB[22m
|
|
206
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/PlAdvancedFilter.vue2.js [39m[1m[2m 8.33 kB[22m[1m[22m[2m │ gzip: 2.42 kB[22m[2m │ map: 16.80 kB[22m
|
|
207
|
+
[2mdist/[22m[36mnode_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/core.js [39m[1m[2m 8.44 kB[22m[1m[22m[2m │ gzip: 2.53 kB[22m[2m │ map: 29.29 kB[22m
|
|
208
|
+
[2mdist/[22m[36mcomponents/PlTableFilters/filters_logic.js [39m[1m[2m 9.18 kB[22m[1m[22m[2m │ gzip: 2.18 kB[22m[2m │ map: 20.22 kB[22m
|
|
209
|
+
[2mdist/[22m[36mcomponents/PlAdvancedFilter/FilterEditor.vue2.js [39m[1m[2m12.66 kB[22m[1m[22m[2m │ gzip: 3.26 kB[22m[2m │ map: 24.94 kB[22m
|
|
210
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgOverlayNoRows.vue3.js [39m[1m[2m35.48 kB[22m[1m[22m[2m │ gzip: 26.70 kB[22m[2m │ map: 0.11 kB[22m
|
|
211
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/pl-ag-overlay-loading.module.scss.js [39m[1m[2m41.43 kB[22m[1m[22m[2m │ gzip: 30.91 kB[22m[2m │ map: 0.12 kB[22m
|
|
212
|
+
[2mdist/[22m[36mindex.js [39m[1m[2m43.15 kB[22m[1m[22m[2m │ gzip: 29.03 kB[22m[2m │ map: 0.13 kB[22m
|
|
213
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgRowCount.vue.js [39m[1m[2m43.93 kB[22m[1m[22m[2m │ gzip: 29.02 kB[22m[2m │ map: 2.76 kB[22m
|
|
214
|
+
[2mdist/[22m[36mcomponents/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js [39m[1m[2m44.32 kB[22m[1m[22m[2m │ gzip: 29.25 kB[22m[2m │ map: 3.03 kB[22m
|
|
215
|
+
[2mdist/[22m[36mcomponents/PlAgRowNumHeader.vue.js [39m[1m[2m44.59 kB[22m[1m[22m[2m │ gzip: 29.26 kB[22m[2m │ map: 4.04 kB[22m
|
|
216
|
+
[2mdist/[22m[36mAgGridVue/useAgGridOptions.js [39m[1m[2m48.98 kB[22m[1m[22m[2m │ gzip: 30.09 kB[22m[2m │ map: 15.74 kB[22m
|
|
217
|
+
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgDataTableV2.vue2.js [39m[1m[2m50.37 kB[22m[1m[22m[2m │ gzip: 31.06 kB[22m[2m │ map: 34.73 kB[22m
|
|
218
|
+
[vite:dts] Declaration files built in 5022ms.
|
|
219
|
+
|
|
220
|
+
[32m✓ built in 6.88s[39m
|
|
15
221
|
Build completed successfully
|
package/.turbo/turbo-lint.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-sdk/ui-vue@1.48.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.48.5 lint /home/runner/_work/platforma/platforma/sdk/ui-vue
|
|
4
4
|
> eslint .
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-sdk/ui-vue@1.48.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.48.5 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
|
|
4
4
|
> ts-builder types --target browser-lib
|
|
5
5
|
|
|
6
6
|
↳ vue-tsc.js --noEmit --project ./tsconfig.json --customConditions ,
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @platforma-sdk/ui-vue
|
|
2
2
|
|
|
3
|
+
## 1.48.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 1eb721e: annotations default value
|
|
8
|
+
- @milaboratories/biowasm-tools@2.0.0
|
|
9
|
+
- @milaboratories/uikit@2.8.2
|
|
10
|
+
- @platforma-sdk/model@1.48.4
|
|
11
|
+
- @milaboratories/ptabler-expression-js@1.1.7
|
|
12
|
+
|
|
13
|
+
## 1.48.4
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [3e168c4]
|
|
18
|
+
- @platforma-sdk/model@1.48.4
|
|
19
|
+
- @milaboratories/uikit@2.8.2
|
|
20
|
+
|
|
3
21
|
## 1.48.2
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAdvancedFilter.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAdvancedFilter/PlAdvancedFilter.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAdvancedFilter.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAdvancedFilter/PlAdvancedFilter.vue"],"names":[],"mappings":"AAsTA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,EAAwC,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,KAAK,EAA4C,wBAAwB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAKhI,KAAK,WAAW,GAAG;IACjB,6EAA6E;IAC7E,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACjD,wHAAwH;IACxH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yFAAyF;IACzF,iBAAiB,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,wBAAwB,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAA;KAAE,KACpI,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;CAClF,CAAC;AAoJF,KAAK,iBAAiB,GAAG;IACzB,SAAS,EAAE,UAAU,CAAC;CACrB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WA6QT,OAAO,IAA6B;;qCAVR,GAAG;;;;EAe5C;AA6BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;eAjdP,OAAO;sBAFA,OAAO,sBAAsB;0BAIzB,OAAO;wFAwd9B,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AA0BpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { defineComponent as I, mergeModels as M, useModel as x, computed as Y, createElementBlock as y, openBlock as r, createVNode as b, createBlock as v, createCommentVNode as
|
|
1
|
+
import { defineComponent as I, mergeModels as M, useModel as x, computed as Y, createElementBlock as y, openBlock as r, createVNode as b, createBlock as v, createCommentVNode as T, unref as p, withCtx as l, normalizeClass as f, createElementVNode as D, createTextVNode as g, Fragment as q, renderList as W, renderSlot as j, toRaw as H } from "vue";
|
|
2
2
|
import { PlElementList as $, PlCheckbox as J, PlBtnSecondary as B } from "@milaboratories/uikit";
|
|
3
3
|
import K from "./FilterEditor.vue.js";
|
|
4
4
|
import Q from "./OperandButton.vue.js";
|
|
5
5
|
import { SUPPORTED_FILTER_TYPES as X, DEFAULT_FILTERS as Z, DEFAULT_FILTER_TYPE as _ } from "./constants.js";
|
|
6
|
-
import { getNewId as R, createNewGroup as ee, isValidColumnId as
|
|
6
|
+
import { getNewId as R, createNewGroup as ee, isValidColumnId as P } from "./utils.js";
|
|
7
7
|
const te = ["onDrop"], de = /* @__PURE__ */ I({
|
|
8
8
|
__name: "PlAdvancedFilter",
|
|
9
9
|
props: /* @__PURE__ */ M({
|
|
@@ -21,7 +21,7 @@ const te = ["onDrop"], de = /* @__PURE__ */ I({
|
|
|
21
21
|
const i = x(m, "filters"), s = m, G = Y(() => {
|
|
22
22
|
var e;
|
|
23
23
|
return (e = s.items[0]) == null ? void 0 : e.id;
|
|
24
|
-
}),
|
|
24
|
+
}), N = [{
|
|
25
25
|
id: -1,
|
|
26
26
|
type: "and",
|
|
27
27
|
filters: [],
|
|
@@ -90,17 +90,17 @@ const te = ["onDrop"], de = /* @__PURE__ */ I({
|
|
|
90
90
|
const o = t.dataTransfer;
|
|
91
91
|
if (o != null && o.getData("text/plain")) {
|
|
92
92
|
const n = o.getData("text/plain");
|
|
93
|
-
|
|
93
|
+
P(n) && w(e, n);
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
function O(e) {
|
|
97
97
|
const t = e.dataTransfer;
|
|
98
98
|
if (t != null && t.getData("text/plain")) {
|
|
99
99
|
const o = t.getData("text/plain");
|
|
100
|
-
|
|
100
|
+
P(o) && C(o);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
function
|
|
103
|
+
function F(e) {
|
|
104
104
|
e.preventDefault();
|
|
105
105
|
}
|
|
106
106
|
function h(e) {
|
|
@@ -136,7 +136,7 @@ const te = ["onDrop"], de = /* @__PURE__ */ I({
|
|
|
136
136
|
class: f(e.$style.groupContent),
|
|
137
137
|
dropzone: "true",
|
|
138
138
|
onDrop: (c) => V(n, c),
|
|
139
|
-
onDragover:
|
|
139
|
+
onDragover: F
|
|
140
140
|
}, [
|
|
141
141
|
b(p(J), {
|
|
142
142
|
"model-value": o.type === "not",
|
|
@@ -144,7 +144,7 @@ const te = ["onDrop"], de = /* @__PURE__ */ I({
|
|
|
144
144
|
"onUpdate:modelValue": (c) => L(n)
|
|
145
145
|
}, {
|
|
146
146
|
default: l(() => [...t[3] || (t[3] = [
|
|
147
|
-
g("
|
|
147
|
+
g(" Filter Out ", -1)
|
|
148
148
|
])]),
|
|
149
149
|
_: 1
|
|
150
150
|
}, 8, ["model-value", "class", "onUpdate:modelValue"]),
|
|
@@ -185,13 +185,13 @@ const te = ["onDrop"], de = /* @__PURE__ */ I({
|
|
|
185
185
|
active: i.value.type,
|
|
186
186
|
disabled: o === d().length - 1,
|
|
187
187
|
"on-select": (n) => i.value.type = n
|
|
188
|
-
}, null, 8, ["class", "active", "disabled", "on-select"])) :
|
|
188
|
+
}, null, 8, ["class", "active", "disabled", "on-select"])) : T("", !0)
|
|
189
189
|
]),
|
|
190
190
|
_: 1
|
|
191
191
|
}, 8, ["items", "get-item-key", "item-class", "item-class-content", "item-class-title", "is-expanded", "on-expand"]),
|
|
192
192
|
s.enableAddGroupButton ? (r(), v(p($), {
|
|
193
193
|
key: 0,
|
|
194
|
-
items:
|
|
194
|
+
items: N,
|
|
195
195
|
"get-item-key": (o) => o.id,
|
|
196
196
|
"item-class": e.$style.filterGroup,
|
|
197
197
|
"item-class-content": e.$style.filterGroupContent,
|
|
@@ -203,7 +203,7 @@ const te = ["onDrop"], de = /* @__PURE__ */ I({
|
|
|
203
203
|
disablePinning: !0,
|
|
204
204
|
dropzone: "true",
|
|
205
205
|
onDrop: O,
|
|
206
|
-
onDragover:
|
|
206
|
+
onDragover: F
|
|
207
207
|
}, {
|
|
208
208
|
"item-title": l(() => [...t[6] || (t[6] = [
|
|
209
209
|
g("Filter group", -1)
|
|
@@ -227,7 +227,7 @@ const te = ["onDrop"], de = /* @__PURE__ */ I({
|
|
|
227
227
|
])
|
|
228
228
|
]),
|
|
229
229
|
_: 3
|
|
230
|
-
}, 8, ["get-item-key", "item-class", "item-class-content", "item-class-title"])) :
|
|
230
|
+
}, 8, ["get-item-key", "item-class", "item-class-content", "item-class-title"])) : T("", !0)
|
|
231
231
|
]));
|
|
232
232
|
}
|
|
233
233
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAdvancedFilter.vue2.js","sources":["../../../src/components/PlAdvancedFilter/PlAdvancedFilter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlBtnSecondary, PlCheckbox, PlElementList } from '@milaboratories/uikit';\nimport type { ListOptionBase } from '@platforma-sdk/model';\nimport { computed, toRaw } from 'vue';\nimport FilterEditor from './FilterEditor.vue';\nimport OperandButton from './OperandButton.vue';\nimport { DEFAULT_FILTER_TYPE, DEFAULT_FILTERS, SUPPORTED_FILTER_TYPES } from './constants';\nimport type { CommonFilter, EditableFilter, NodeFilter, PlAdvancedFilterColumnId, RootFilter, SourceOptionInfo } from './types';\nimport { createNewGroup, getNewId, isValidColumnId } from './utils';\n\nconst model = defineModel<RootFilter>('filters', { required: true });\n\nconst props = withDefaults(defineProps<{\n /** List of ids of sources (columns, axes) that can be selected in filters */\n items: SourceOptionInfo[];\n /** List of supported filter types */\n supportedFilters?: typeof SUPPORTED_FILTER_TYPES;\n /** If true - new filter can be added by droppind element into filter group; else new column is added by button click */\n enableDnd?: boolean;\n /** If true - \"Add group\" button is shown below the filter groups */\n enableAddGroupButton?: boolean;\n /** Loading function for unique values for Equal/InSet filters and fixed axes options. */\n getSuggestOptions: (params: { columnId: PlAdvancedFilterColumnId; axisIdx?: number; searchStr: string; searchType: 'value' | 'label' }) =>\n ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;\n}>(), {\n supportedFilters: () => SUPPORTED_FILTER_TYPES,\n getSuggestModel: undefined,\n\n enableDnd: false,\n enableAddGroupButton: false,\n});\n\nconst firstColumnId = computed(() => props.items[0]?.id);\nconst emptyGroup: NodeFilter[] = [{\n id: -1,\n type: 'and',\n filters: [],\n isExpanded: true,\n}];\n\nfunction getRootGroups() {\n if (model.value.type !== 'or' && model.value.type !== 'and') {\n throw new Error('Invalid model structure, expected root to be \"or\" or \"and\" group');\n }\n return model.value.filters;\n}\n\nfunction getRootGroup(idx: number): NodeFilter {\n const groups = getRootGroups();\n const group = groups[idx];\n if (group.type !== 'and' && group.type !== 'or' && group.type !== 'not') {\n throw new Error('Invalid group structure, expected \"and\", \"or\" or \"not\" group');\n }\n return group;\n}\n\nfunction getRootGroupContent(idx: number): Exclude<NodeFilter, { type: 'not' }> {\n const group = getRootGroup(idx);\n\n if (group.type !== 'not') {\n return group;\n }\n\n if (group.filter.type !== 'and' && group.filter.type !== 'or') {\n throw new Error('Invalid group structure, expected \"and\" or \"or\" group inside \"not\"');\n }\n\n return group.filter;\n}\n\nfunction addColumnToGroup(groupIdx: number, selectedSourceId: PlAdvancedFilterColumnId) {\n const group = getRootGroupContent(groupIdx);\n\n group.filters.push({\n ...DEFAULT_FILTERS[DEFAULT_FILTER_TYPE],\n column: selectedSourceId,\n id: getNewId(),\n isExpanded: true,\n } as CommonFilter);\n}\n\nfunction removeFilterFromGroup(groupIdx: number, filterIdx: number) {\n const group = getRootGroupContent(groupIdx);\n\n if (group.filters.length === 1 && filterIdx === 0) {\n removeGroup(groupIdx);\n } else {\n group.filters.splice(filterIdx, 1);\n }\n}\nfunction inverseRootNode(groupIdx: number) {\n const groups = getRootGroups();\n const group = groups[groupIdx];\n if (group.type === 'not') {\n if (group.filter.type !== 'and' && group.filter.type !== 'or') {\n throw new Error('Invalid group structure, expected \"and\" or \"or\" group inside \"not\"');\n }\n groups[groupIdx] = group.filter;\n } else {\n const type = groups[groupIdx].type;\n if (type !== 'and' && type !== 'or' && type !== 'not') {\n throw new Error('Invalid group structure, expected \"and\", \"or\" or \"not\" group');\n }\n\n groups[groupIdx] = {\n id: getNewId(),\n isExpanded: true,\n type: 'not',\n filter: groups[groupIdx],\n };\n }\n}\n\nfunction getNotContent<T extends CommonFilter>(item: T): Exclude<T, { type: 'not' }> {\n return item.type === 'not' ? item.filter as Exclude<T, { type: 'not' }> : item as Exclude<T, { type: 'not' }>;\n}\n\nfunction removeGroup(groupIdx: number) {\n const groups = getRootGroups();\n groups.splice(groupIdx, 1);\n}\nfunction addGroup(selectedSourceId: PlAdvancedFilterColumnId) {\n const newGroup = createNewGroup(selectedSourceId);\n const groups = getRootGroups();\n groups.push(newGroup);\n}\n\nfunction handleDropToExistingGroup(groupIdx: number, event: DragEvent) {\n const dataTransfer = event.dataTransfer;\n if (dataTransfer?.getData('text/plain')) {\n const draggedId = dataTransfer.getData('text/plain');\n if (isValidColumnId(draggedId)) {\n addColumnToGroup(groupIdx, draggedId);\n }\n }\n}\nfunction handleDropToNewGroup(event: DragEvent) {\n const dataTransfer = event.dataTransfer;\n if (dataTransfer?.getData('text/plain')) {\n const draggedId = dataTransfer.getData('text/plain');\n if (isValidColumnId(draggedId)) {\n addGroup(draggedId);\n }\n }\n}\nfunction dragOver(event: DragEvent) {\n event.preventDefault();\n}\n\nfunction validateFilter<T extends CommonFilter>(item: T): EditableFilter {\n if (item.type === 'and' || item.type === 'or' || item.type === 'not') {\n throw new Error('Invalid filter structure, expected leaf filter');\n }\n\n return item as EditableFilter;\n}\n\nfunction updateFilter(filters: CommonFilter[], idx: number, updatedFilter: EditableFilter) {\n filters[idx] = toRaw(updatedFilter as CommonFilter);\n}\n</script>\n<template>\n <div>\n <PlElementList\n v-model:items=\"model.filters\"\n :get-item-key=\"(filter) => filter.id\"\n\n :item-class=\"$style.filterGroup\"\n :item-class-content=\"$style.filterGroupContent\"\n :item-class-title=\"$style.filterGroupTitle\"\n\n :is-expanded=\"(filter) => filter.isExpanded === true\"\n :on-expand=\"(group) => { group.isExpanded = !group.isExpanded}\"\n\n :disableDragging=\"false\"\n :disableRemoving=\"false\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n >\n <template #item-title>\n Filter group\n </template>\n <template #item-content=\"{ item, index }\">\n <div\n :class=\"$style.groupContent\"\n dropzone=\"true\"\n @drop=\"(event) => handleDropToExistingGroup(index, event)\"\n @dragover=\"dragOver\"\n >\n <PlCheckbox :model-value=\"item.type === 'not'\" :class=\"$style.notCheckbox\" @update:model-value=\"inverseRootNode(index)\">NOT</PlCheckbox>\n <template v-for=\"(_, filterIdx) in getNotContent(item).filters\" :key=\"filterIdx\">\n <FilterEditor\n :filter=\"validateFilter(getNotContent(item).filters[filterIdx])\"\n :operand=\"getNotContent(item).type\"\n :column-options=\"items\"\n :supported-filters=\"props.supportedFilters\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :enable-dnd=\"Boolean(props.enableDnd)\"\n :is-last=\"filterIdx === getNotContent(item).filters.length - 1\"\n :on-change-operand=\"(v) => getNotContent(item).type = v\"\n :on-delete=\"() => removeFilterFromGroup(index, filterIdx)\"\n @update:filter=\"(value) => updateFilter(getNotContent(item).filters, filterIdx, value)\"\n />\n </template>\n <div v-if=\"props.enableDnd\" :class=\"$style.dropzone\">\n <div>Drop dimensions here</div>\n </div>\n <PlBtnSecondary v-else icon=\"add\" @click=\"addColumnToGroup(index, firstColumnId)\">\n Add filter\n </PlBtnSecondary>\n </div>\n </template>\n <template #item-after=\"{ index }\">\n <OperandButton\n v-if=\"props.enableAddGroupButton || index < getRootGroups().length - 1\"\n :class=\"$style.buttonWrapper\"\n :active=\"model.type\"\n :disabled=\"index === getRootGroups().length - 1\"\n :on-select=\"(v) => model.type = v\"\n />\n </template>\n </PlElementList>\n\n <!-- Last group - always empty, just for adding new groups -->\n <PlElementList\n v-if=\"props.enableAddGroupButton\"\n :items=\"emptyGroup\"\n :get-item-key=\"(group) => group.id\"\n :item-class=\"$style.filterGroup\"\n :item-class-content=\"$style.filterGroupContent\"\n :item-class-title=\"$style.filterGroupTitle\"\n\n :is-expanded=\"() => true\"\n\n :disableDragging=\"true\"\n :disableRemoving=\"true\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n dropzone=\"true\"\n @drop=\"handleDropToNewGroup\"\n @dragover=\"dragOver\"\n >\n <template #item-title>Filter group</template>\n <template #item-content>\n <div v-if=\"enableDnd\" :class=\"$style.dropzone\">\n <div>Drop dimensions here</div>\n </div>\n <slot v-else name=\"add-group-buttons\">\n <PlBtnSecondary icon=\"add\" @click=\"addGroup(firstColumnId)\">\n Add filter\n </PlBtnSecondary>\n </slot>\n </template>\n </PlElementList>\n </div>\n</template>\n<style module>\n .filterGroup {\n background: var(--bg-base-light);\n }\n .filterGroup:hover {\n background: rgba(99, 224, 36, 0.12);\n }\n .filterGroupTitle {\n background: none;\n }\n .filterGroupContent {\n padding: 4px 24px 24px 24px;\n }\n .groupContent {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n .notCheckbox {\n margin: 4px 0;\n }\n .dropzone {\n border-radius: 6px;\n border: 1.5px dashed var(--color-div-grey);\n color: var(--txt-03);\n font-family: Manrope;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n height: 40px;\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .buttonWrapper {\n margin-top: 8px;\n height: 56px;\n display: flex;\n align-items: center;\n }\n :global(.sortable-chosen) .buttonWrapper {\n visibility: hidden;\n }\n</style>\n"],"names":["model","_useModel","__props","props","firstColumnId","computed","_a","emptyGroup","getRootGroups","getRootGroup","idx","group","getRootGroupContent","addColumnToGroup","groupIdx","selectedSourceId","DEFAULT_FILTERS","DEFAULT_FILTER_TYPE","getNewId","removeFilterFromGroup","filterIdx","removeGroup","inverseRootNode","groups","type","getNotContent","item","addGroup","newGroup","createNewGroup","handleDropToExistingGroup","event","dataTransfer","draggedId","isValidColumnId","handleDropToNewGroup","dragOver","validateFilter","updateFilter","filters","updatedFilter","toRaw","_createElementBlock","_createVNode","_unref","PlElementList","_cache","$event","filter","$style","_withCtx","index","_createElementVNode","_normalizeClass","PlCheckbox","_Fragment","_renderList","_","_createBlock","FilterEditor","v","value","PlBtnSecondary","OperandButton","_renderSlot","_ctx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlAdvancedFilter.vue2.js","sources":["../../../src/components/PlAdvancedFilter/PlAdvancedFilter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlBtnSecondary, PlCheckbox, PlElementList } from '@milaboratories/uikit';\nimport type { ListOptionBase } from '@platforma-sdk/model';\nimport { computed, toRaw } from 'vue';\nimport FilterEditor from './FilterEditor.vue';\nimport OperandButton from './OperandButton.vue';\nimport { DEFAULT_FILTER_TYPE, DEFAULT_FILTERS, SUPPORTED_FILTER_TYPES } from './constants';\nimport type { CommonFilter, EditableFilter, NodeFilter, PlAdvancedFilterColumnId, RootFilter, SourceOptionInfo } from './types';\nimport { createNewGroup, getNewId, isValidColumnId } from './utils';\n\nconst model = defineModel<RootFilter>('filters', { required: true });\n\nconst props = withDefaults(defineProps<{\n /** List of ids of sources (columns, axes) that can be selected in filters */\n items: SourceOptionInfo[];\n /** List of supported filter types */\n supportedFilters?: typeof SUPPORTED_FILTER_TYPES;\n /** If true - new filter can be added by droppind element into filter group; else new column is added by button click */\n enableDnd?: boolean;\n /** If true - \"Add group\" button is shown below the filter groups */\n enableAddGroupButton?: boolean;\n /** Loading function for unique values for Equal/InSet filters and fixed axes options. */\n getSuggestOptions: (params: { columnId: PlAdvancedFilterColumnId; axisIdx?: number; searchStr: string; searchType: 'value' | 'label' }) =>\n ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;\n}>(), {\n supportedFilters: () => SUPPORTED_FILTER_TYPES,\n getSuggestModel: undefined,\n\n enableDnd: false,\n enableAddGroupButton: false,\n});\n\nconst firstColumnId = computed(() => props.items[0]?.id);\nconst emptyGroup: NodeFilter[] = [{\n id: -1,\n type: 'and',\n filters: [],\n isExpanded: true,\n}];\n\nfunction getRootGroups() {\n if (model.value.type !== 'or' && model.value.type !== 'and') {\n throw new Error('Invalid model structure, expected root to be \"or\" or \"and\" group');\n }\n return model.value.filters;\n}\n\nfunction getRootGroup(idx: number): NodeFilter {\n const groups = getRootGroups();\n const group = groups[idx];\n if (group.type !== 'and' && group.type !== 'or' && group.type !== 'not') {\n throw new Error('Invalid group structure, expected \"and\", \"or\" or \"not\" group');\n }\n return group;\n}\n\nfunction getRootGroupContent(idx: number): Exclude<NodeFilter, { type: 'not' }> {\n const group = getRootGroup(idx);\n\n if (group.type !== 'not') {\n return group;\n }\n\n if (group.filter.type !== 'and' && group.filter.type !== 'or') {\n throw new Error('Invalid group structure, expected \"and\" or \"or\" group inside \"not\"');\n }\n\n return group.filter;\n}\n\nfunction addColumnToGroup(groupIdx: number, selectedSourceId: PlAdvancedFilterColumnId) {\n const group = getRootGroupContent(groupIdx);\n\n group.filters.push({\n ...DEFAULT_FILTERS[DEFAULT_FILTER_TYPE],\n column: selectedSourceId,\n id: getNewId(),\n isExpanded: true,\n } as CommonFilter);\n}\n\nfunction removeFilterFromGroup(groupIdx: number, filterIdx: number) {\n const group = getRootGroupContent(groupIdx);\n\n if (group.filters.length === 1 && filterIdx === 0) {\n removeGroup(groupIdx);\n } else {\n group.filters.splice(filterIdx, 1);\n }\n}\nfunction inverseRootNode(groupIdx: number) {\n const groups = getRootGroups();\n const group = groups[groupIdx];\n if (group.type === 'not') {\n if (group.filter.type !== 'and' && group.filter.type !== 'or') {\n throw new Error('Invalid group structure, expected \"and\" or \"or\" group inside \"not\"');\n }\n groups[groupIdx] = group.filter;\n } else {\n const type = groups[groupIdx].type;\n if (type !== 'and' && type !== 'or' && type !== 'not') {\n throw new Error('Invalid group structure, expected \"and\", \"or\" or \"not\" group');\n }\n\n groups[groupIdx] = {\n id: getNewId(),\n isExpanded: true,\n type: 'not',\n filter: groups[groupIdx],\n };\n }\n}\n\nfunction getNotContent<T extends CommonFilter>(item: T): Exclude<T, { type: 'not' }> {\n return item.type === 'not' ? item.filter as Exclude<T, { type: 'not' }> : item as Exclude<T, { type: 'not' }>;\n}\n\nfunction removeGroup(groupIdx: number) {\n const groups = getRootGroups();\n groups.splice(groupIdx, 1);\n}\nfunction addGroup(selectedSourceId: PlAdvancedFilterColumnId) {\n const newGroup = createNewGroup(selectedSourceId);\n const groups = getRootGroups();\n groups.push(newGroup);\n}\n\nfunction handleDropToExistingGroup(groupIdx: number, event: DragEvent) {\n const dataTransfer = event.dataTransfer;\n if (dataTransfer?.getData('text/plain')) {\n const draggedId = dataTransfer.getData('text/plain');\n if (isValidColumnId(draggedId)) {\n addColumnToGroup(groupIdx, draggedId);\n }\n }\n}\nfunction handleDropToNewGroup(event: DragEvent) {\n const dataTransfer = event.dataTransfer;\n if (dataTransfer?.getData('text/plain')) {\n const draggedId = dataTransfer.getData('text/plain');\n if (isValidColumnId(draggedId)) {\n addGroup(draggedId);\n }\n }\n}\nfunction dragOver(event: DragEvent) {\n event.preventDefault();\n}\n\nfunction validateFilter<T extends CommonFilter>(item: T): EditableFilter {\n if (item.type === 'and' || item.type === 'or' || item.type === 'not') {\n throw new Error('Invalid filter structure, expected leaf filter');\n }\n\n return item as EditableFilter;\n}\n\nfunction updateFilter(filters: CommonFilter[], idx: number, updatedFilter: EditableFilter) {\n filters[idx] = toRaw(updatedFilter as CommonFilter);\n}\n</script>\n<template>\n <div>\n <PlElementList\n v-model:items=\"model.filters\"\n :get-item-key=\"(filter) => filter.id\"\n\n :item-class=\"$style.filterGroup\"\n :item-class-content=\"$style.filterGroupContent\"\n :item-class-title=\"$style.filterGroupTitle\"\n\n :is-expanded=\"(filter) => filter.isExpanded === true\"\n :on-expand=\"(group) => { group.isExpanded = !group.isExpanded}\"\n\n :disableDragging=\"false\"\n :disableRemoving=\"false\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n >\n <template #item-title>\n Filter group\n </template>\n <template #item-content=\"{ item, index }\">\n <div\n :class=\"$style.groupContent\"\n dropzone=\"true\"\n @drop=\"(event) => handleDropToExistingGroup(index, event)\"\n @dragover=\"dragOver\"\n >\n <PlCheckbox\n :model-value=\"item.type === 'not'\"\n :class=\"$style.notCheckbox\"\n @update:model-value=\"inverseRootNode(index)\"\n >\n Filter Out\n </PlCheckbox>\n <template v-for=\"(_, filterIdx) in getNotContent(item).filters\" :key=\"filterIdx\">\n <FilterEditor\n :filter=\"validateFilter(getNotContent(item).filters[filterIdx])\"\n :operand=\"getNotContent(item).type\"\n :column-options=\"items\"\n :supported-filters=\"props.supportedFilters\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :enable-dnd=\"Boolean(props.enableDnd)\"\n :is-last=\"filterIdx === getNotContent(item).filters.length - 1\"\n :on-change-operand=\"(v) => getNotContent(item).type = v\"\n :on-delete=\"() => removeFilterFromGroup(index, filterIdx)\"\n @update:filter=\"(value) => updateFilter(getNotContent(item).filters, filterIdx, value)\"\n />\n </template>\n <div v-if=\"props.enableDnd\" :class=\"$style.dropzone\">\n <div>Drop dimensions here</div>\n </div>\n <PlBtnSecondary v-else icon=\"add\" @click=\"addColumnToGroup(index, firstColumnId)\">\n Add filter\n </PlBtnSecondary>\n </div>\n </template>\n <template #item-after=\"{ index }\">\n <OperandButton\n v-if=\"props.enableAddGroupButton || index < getRootGroups().length - 1\"\n :class=\"$style.buttonWrapper\"\n :active=\"model.type\"\n :disabled=\"index === getRootGroups().length - 1\"\n :on-select=\"(v) => model.type = v\"\n />\n </template>\n </PlElementList>\n\n <!-- Last group - always empty, just for adding new groups -->\n <PlElementList\n v-if=\"props.enableAddGroupButton\"\n :items=\"emptyGroup\"\n :get-item-key=\"(group) => group.id\"\n :item-class=\"$style.filterGroup\"\n :item-class-content=\"$style.filterGroupContent\"\n :item-class-title=\"$style.filterGroupTitle\"\n\n :is-expanded=\"() => true\"\n\n :disableDragging=\"true\"\n :disableRemoving=\"true\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n dropzone=\"true\"\n @drop=\"handleDropToNewGroup\"\n @dragover=\"dragOver\"\n >\n <template #item-title>Filter group</template>\n <template #item-content>\n <div v-if=\"enableDnd\" :class=\"$style.dropzone\">\n <div>Drop dimensions here</div>\n </div>\n <slot v-else name=\"add-group-buttons\">\n <PlBtnSecondary icon=\"add\" @click=\"addGroup(firstColumnId)\">\n Add filter\n </PlBtnSecondary>\n </slot>\n </template>\n </PlElementList>\n </div>\n</template>\n<style module>\n .filterGroup {\n background: var(--bg-base-light);\n }\n .filterGroup:hover {\n background: rgba(99, 224, 36, 0.12);\n }\n .filterGroupTitle {\n background: none;\n }\n .filterGroupContent {\n padding: 4px 24px 24px 24px;\n }\n .groupContent {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n .notCheckbox {\n margin: 4px 0;\n }\n .dropzone {\n border-radius: 6px;\n border: 1.5px dashed var(--color-div-grey);\n color: var(--txt-03);\n font-family: Manrope;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n height: 40px;\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .buttonWrapper {\n margin-top: 8px;\n height: 56px;\n display: flex;\n align-items: center;\n }\n :global(.sortable-chosen) .buttonWrapper {\n visibility: hidden;\n }\n</style>\n"],"names":["model","_useModel","__props","props","firstColumnId","computed","_a","emptyGroup","getRootGroups","getRootGroup","idx","group","getRootGroupContent","addColumnToGroup","groupIdx","selectedSourceId","DEFAULT_FILTERS","DEFAULT_FILTER_TYPE","getNewId","removeFilterFromGroup","filterIdx","removeGroup","inverseRootNode","groups","type","getNotContent","item","addGroup","newGroup","createNewGroup","handleDropToExistingGroup","event","dataTransfer","draggedId","isValidColumnId","handleDropToNewGroup","dragOver","validateFilter","updateFilter","filters","updatedFilter","toRaw","_createElementBlock","_createVNode","_unref","PlElementList","_cache","$event","filter","$style","_withCtx","index","_createElementVNode","_normalizeClass","PlCheckbox","_Fragment","_renderList","_","_createBlock","FilterEditor","v","value","PlBtnSecondary","OperandButton","_renderSlot","_ctx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationsSidebar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AnnotationsSidebar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"names":[],"mappings":"AAgIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA4B3C,KAAK,iBAAiB,GAAG;IACzB,YAAY,EAAE,UAAU,CAAC;IACzB,gBAAgB,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CACrC,CAAC;;;;;;;;;;;AA+MF,wBAQG"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
const
|
|
1
|
+
import { defineComponent as S, mergeModels as k, useModel as m, createBlock as I, openBlock as V, unref as a, createSlots as C, withCtx as n, createVNode as i, withModifiers as p, createTextVNode as r, normalizeClass as s, createElementVNode as v, toDisplayString as P } from "vue";
|
|
2
|
+
import f from "./style.module.css.js";
|
|
3
|
+
import { randomInt as b } from "../../../lib/util/helpers/dist/random.js";
|
|
4
|
+
import { PlSidebarItem as M, PlBtnGhost as $, PlEditableTitle as h, PlTextField as w, PlElementList as x, PlBtnSecondary as A } from "@milaboratories/uikit";
|
|
5
|
+
const N = /* @__PURE__ */ S({
|
|
6
6
|
__name: "AnnotationsSidebar",
|
|
7
7
|
props: {
|
|
8
8
|
annotation: { required: !0 },
|
|
@@ -10,41 +10,41 @@ const T = /* @__PURE__ */ y({
|
|
|
10
10
|
selectedStepId: {},
|
|
11
11
|
selectedStepIdModifiers: {}
|
|
12
12
|
},
|
|
13
|
-
emits: /* @__PURE__ */
|
|
14
|
-
setup(
|
|
15
|
-
const l = u
|
|
16
|
-
function
|
|
17
|
-
const
|
|
13
|
+
emits: /* @__PURE__ */ k(["delete-schema"], ["update:annotation", "update:selectedStepId"]),
|
|
14
|
+
setup(u, { emit: c }) {
|
|
15
|
+
const l = m(u, "annotation"), d = m(u, "selectedStepId"), g = c;
|
|
16
|
+
function y() {
|
|
17
|
+
const o = b();
|
|
18
18
|
l.value.steps.push({
|
|
19
|
-
id:
|
|
19
|
+
id: o,
|
|
20
20
|
label: "",
|
|
21
21
|
filter: {
|
|
22
|
-
id:
|
|
22
|
+
id: b(),
|
|
23
23
|
type: "and",
|
|
24
24
|
filters: []
|
|
25
25
|
}
|
|
26
|
-
}), d.value =
|
|
26
|
+
}), d.value = o;
|
|
27
27
|
}
|
|
28
|
-
return (
|
|
29
|
-
"header-content":
|
|
30
|
-
a(
|
|
28
|
+
return (o, e) => (V(), I(a(M), null, C({
|
|
29
|
+
"header-content": n(() => [
|
|
30
|
+
i(a(h), {
|
|
31
31
|
modelValue: l.value.title,
|
|
32
32
|
"onUpdate:modelValue": e[0] || (e[0] = (t) => l.value.title = t),
|
|
33
|
-
class:
|
|
33
|
+
class: s({ [a(f).flashing]: l.value.title.length === 0 }),
|
|
34
34
|
"max-length": 40,
|
|
35
35
|
"max-width": "600px",
|
|
36
36
|
placeholder: "Annotation Title",
|
|
37
37
|
autofocus: l.value.title.length === 0
|
|
38
38
|
}, null, 8, ["modelValue", "class", "autofocus"])
|
|
39
39
|
]),
|
|
40
|
-
"footer-content":
|
|
41
|
-
a(
|
|
40
|
+
"footer-content": n(() => [
|
|
41
|
+
i(a($), {
|
|
42
42
|
icon: "delete-bin",
|
|
43
43
|
reverse: "",
|
|
44
44
|
disabled: l.value.steps.length === 0,
|
|
45
|
-
onClick: e[
|
|
45
|
+
onClick: e[5] || (e[5] = p((t) => g("delete-schema"), ["stop"]))
|
|
46
46
|
}, {
|
|
47
|
-
default:
|
|
47
|
+
default: n(() => [...e[7] || (e[7] = [
|
|
48
48
|
r(" Delete Schema ", -1)
|
|
49
49
|
])]),
|
|
50
50
|
_: 1
|
|
@@ -54,32 +54,40 @@ const T = /* @__PURE__ */ y({
|
|
|
54
54
|
}, [
|
|
55
55
|
l.value ? {
|
|
56
56
|
name: "body-content",
|
|
57
|
-
fn:
|
|
58
|
-
|
|
59
|
-
class:
|
|
57
|
+
fn: n(() => [
|
|
58
|
+
v("div", {
|
|
59
|
+
class: s([o.$style.root, { [a(f).disabled]: l.value.title.length === 0 }])
|
|
60
60
|
}, [
|
|
61
|
-
|
|
62
|
-
class:
|
|
61
|
+
v("span", {
|
|
62
|
+
class: s(o.$style.tip)
|
|
63
63
|
}, "Lower annotations override the ones above. Rearrange them by dragging.", 2),
|
|
64
|
-
a(
|
|
64
|
+
i(a(w), {
|
|
65
|
+
"model-value": l.value.defaultValue ?? "",
|
|
66
|
+
label: "Default label",
|
|
67
|
+
clearable: "",
|
|
68
|
+
onClick: e[1] || (e[1] = p(() => {
|
|
69
|
+
}, ["stop"])),
|
|
70
|
+
"onUpdate:modelValue": e[2] || (e[2] = (t) => l.value.defaultValue = t === "" ? void 0 : t)
|
|
71
|
+
}, null, 8, ["model-value"]),
|
|
72
|
+
i(a(x), {
|
|
65
73
|
items: l.value.steps,
|
|
66
|
-
"onUpdate:items": e[
|
|
74
|
+
"onUpdate:items": e[3] || (e[3] = (t) => l.value.steps = t),
|
|
67
75
|
"get-item-key": (t) => t.id,
|
|
68
76
|
"is-active": (t) => t.id === d.value,
|
|
69
|
-
"item-class":
|
|
70
|
-
class:
|
|
71
|
-
onItemClick: e[
|
|
77
|
+
"item-class": o.$style.stepItem,
|
|
78
|
+
class: s(o.$style.steps),
|
|
79
|
+
onItemClick: e[4] || (e[4] = (t) => d.value = t.id)
|
|
72
80
|
}, {
|
|
73
|
-
"item-title":
|
|
74
|
-
r(
|
|
81
|
+
"item-title": n(({ item: t }) => [
|
|
82
|
+
r(P(t.label), 1)
|
|
75
83
|
]),
|
|
76
84
|
_: 1
|
|
77
85
|
}, 8, ["items", "get-item-key", "is-active", "item-class", "class"]),
|
|
78
|
-
a(
|
|
86
|
+
i(a(A), {
|
|
79
87
|
icon: "add",
|
|
80
|
-
onClick:
|
|
88
|
+
onClick: y
|
|
81
89
|
}, {
|
|
82
|
-
default:
|
|
90
|
+
default: n(() => [...e[6] || (e[6] = [
|
|
83
91
|
r(" Add label ", -1)
|
|
84
92
|
])]),
|
|
85
93
|
_: 1
|
|
@@ -92,6 +100,6 @@ const T = /* @__PURE__ */ y({
|
|
|
92
100
|
}
|
|
93
101
|
});
|
|
94
102
|
export {
|
|
95
|
-
|
|
103
|
+
N as default
|
|
96
104
|
};
|
|
97
105
|
//# sourceMappingURL=AnnotationsSidebar.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationsSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n} from '@milaboratories/uikit';\nimport type { Annotation } from '../types';\
|
|
1
|
+
{"version":3,"file":"AnnotationsSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport $commonStyle from './style.module.css';\n\nimport { randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n PlTextField,\n} from '@milaboratories/uikit';\nimport type { Annotation } from '../types';\n\n// Models\nconst annotation = defineModel<Annotation>('annotation', { required: true });\nconst selectedStepId = defineModel<undefined | number>('selectedStepId');\n// Emits\nconst emits = defineEmits<{\n (e: 'delete-schema'): void;\n}>();\n// Actions\nfunction handleAddStep() {\n const id = randomInt();\n annotation.value.steps.push({\n id,\n label: '',\n filter: {\n id: randomInt(),\n type: 'and',\n filters: [],\n },\n });\n selectedStepId.value = id;\n};\n</script>\n\n<template>\n <PlSidebarItem>\n <template #header-content>\n <PlEditableTitle\n v-model=\"annotation.title\"\n :class=\"{ [$commonStyle.flashing]: annotation.title.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Title\"\n :autofocus=\"annotation.title.length === 0\"\n />\n </template>\n <template v-if=\"annotation\" #body-content>\n <div :class=\"[$style.root, { [$commonStyle.disabled]: annotation.title.length === 0 }]\">\n <span :class=\"$style.tip\">Lower annotations override the ones above. Rearrange them by dragging.</span>\n\n <PlTextField\n :model-value=\"annotation.defaultValue ?? ''\"\n label=\"Default label\"\n clearable\n @click.stop\n @update:model-value=\"annotation.defaultValue = $event === '' ? undefined : $event\"\n />\n\n <PlElementList\n v-model:items=\"annotation.steps\"\n :get-item-key=\"(item) => item.id\"\n :is-active=\"(item) => item.id === selectedStepId\"\n :item-class=\"$style.stepItem\"\n :class=\"$style.steps\"\n @item-click=\"(item) => selectedStepId = item.id\"\n >\n <template #item-title=\"{ item }\">\n {{ item.label }}\n </template>\n </PlElementList>\n\n <PlBtnSecondary icon=\"add\" @click=\"handleAddStep\">\n Add label\n </PlBtnSecondary>\n </div>\n </template>\n <template #footer-content>\n <PlBtnGhost\n icon=\"delete-bin\"\n reverse\n :disabled=\"annotation.steps.length === 0\"\n @click.stop=\"emits('delete-schema')\"\n >\n Delete Schema\n </PlBtnGhost>\n </template>\n </PlSidebarItem>\n</template>\n\n<style lang=\"scss\" module>\n@use '@milaboratories/uikit/styles/variables' as *;\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tip {\n color: var(--txt-03);\n}\n\n.steps {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.stepItem {\n cursor: pointer;\n}\n</style>\n"],"names":["annotation","_useModel","selectedStepId","__props","emits","__emit","handleAddStep","id","randomInt","_createBlock","_unref","PlSidebarItem","_createSlots","_createVNode","PlEditableTitle","_cache","$event","_normalizeClass","PlBtnGhost","_createElementVNode","$style","$commonStyle","PlTextField","PlElementList","item","_withCtx","_createTextVNode","_toDisplayString","PlBtnSecondary"],"mappings":"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"}
|
|
@@ -10,5 +10,7 @@ export type Filter = FilterSpecUi<Extract<FilterSpec, {
|
|
|
10
10
|
}>> & {
|
|
11
11
|
id: number;
|
|
12
12
|
};
|
|
13
|
-
export type Annotation = AnnotationSpecUi<Filter
|
|
13
|
+
export type Annotation = AnnotationSpecUi<Filter> & {
|
|
14
|
+
defaultValue?: string;
|
|
15
|
+
};
|
|
14
16
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/PlAnnotations/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtH,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE1G,MAAM,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/PlAnnotations/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtH,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE1G,MAAM,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/ui-vue",
|
|
3
|
-
"version": "1.48.
|
|
3
|
+
"version": "1.48.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"styles": "dist/index.js",
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"zod": "~3.23.8",
|
|
27
27
|
"@zip.js/zip.js": "^2.8.2",
|
|
28
28
|
"es-toolkit": "^1.39.10",
|
|
29
|
-
"@milaboratories/
|
|
30
|
-
"@
|
|
29
|
+
"@milaboratories/biowasm-tools": "2.0.0",
|
|
30
|
+
"@milaboratories/uikit": "2.8.2",
|
|
31
31
|
"@milaboratories/ptabler-expression-js": "1.1.7",
|
|
32
|
-
"@
|
|
32
|
+
"@platforma-sdk/model": "1.48.4"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"happy-dom": "^15.11.7",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"yarpm": "^1.2.0",
|
|
45
45
|
"fast-json-patch": "^3.1.1",
|
|
46
46
|
"@faker-js/faker": "^9.2.0",
|
|
47
|
+
"@milaboratories/build-configs": "1.2.1",
|
|
47
48
|
"@milaboratories/eslint-config": "1.0.5",
|
|
48
|
-
"@milaboratories/
|
|
49
|
-
"@milaboratories/
|
|
50
|
-
"@milaboratories/ts-
|
|
51
|
-
"@milaboratories/helpers": "1.12.0"
|
|
49
|
+
"@milaboratories/ts-builder": "1.2.1",
|
|
50
|
+
"@milaboratories/helpers": "1.12.0",
|
|
51
|
+
"@milaboratories/ts-configs": "1.2.0"
|
|
52
52
|
},
|
|
53
53
|
"scripts": {
|
|
54
54
|
"test": "vitest run --passWithNoTests",
|
|
@@ -187,7 +187,13 @@ function updateFilter(filters: CommonFilter[], idx: number, updatedFilter: Edita
|
|
|
187
187
|
@drop="(event) => handleDropToExistingGroup(index, event)"
|
|
188
188
|
@dragover="dragOver"
|
|
189
189
|
>
|
|
190
|
-
<PlCheckbox
|
|
190
|
+
<PlCheckbox
|
|
191
|
+
:model-value="item.type === 'not'"
|
|
192
|
+
:class="$style.notCheckbox"
|
|
193
|
+
@update:model-value="inverseRootNode(index)"
|
|
194
|
+
>
|
|
195
|
+
Filter Out
|
|
196
|
+
</PlCheckbox>
|
|
191
197
|
<template v-for="(_, filterIdx) in getNotContent(item).filters" :key="filterIdx">
|
|
192
198
|
<FilterEditor
|
|
193
199
|
:filter="validateFilter(getNotContent(item).filters[filterIdx])"
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
import $commonStyle from './style.module.css';
|
|
3
|
+
|
|
2
4
|
import { randomInt } from '@milaboratories/helpers';
|
|
3
5
|
import {
|
|
4
6
|
PlBtnGhost,
|
|
@@ -6,9 +8,9 @@ import {
|
|
|
6
8
|
PlEditableTitle,
|
|
7
9
|
PlElementList,
|
|
8
10
|
PlSidebarItem,
|
|
11
|
+
PlTextField,
|
|
9
12
|
} from '@milaboratories/uikit';
|
|
10
13
|
import type { Annotation } from '../types';
|
|
11
|
-
import $commonStyle from './style.module.css';
|
|
12
14
|
|
|
13
15
|
// Models
|
|
14
16
|
const annotation = defineModel<Annotation>('annotation', { required: true });
|
|
@@ -49,6 +51,14 @@ function handleAddStep() {
|
|
|
49
51
|
<div :class="[$style.root, { [$commonStyle.disabled]: annotation.title.length === 0 }]">
|
|
50
52
|
<span :class="$style.tip">Lower annotations override the ones above. Rearrange them by dragging.</span>
|
|
51
53
|
|
|
54
|
+
<PlTextField
|
|
55
|
+
:model-value="annotation.defaultValue ?? ''"
|
|
56
|
+
label="Default label"
|
|
57
|
+
clearable
|
|
58
|
+
@click.stop
|
|
59
|
+
@update:model-value="annotation.defaultValue = $event === '' ? undefined : $event"
|
|
60
|
+
/>
|
|
61
|
+
|
|
52
62
|
<PlElementList
|
|
53
63
|
v-model:items="annotation.steps"
|
|
54
64
|
:get-item-key="(item) => item.id"
|
|
@@ -61,6 +71,7 @@ function handleAddStep() {
|
|
|
61
71
|
{{ item.label }}
|
|
62
72
|
</template>
|
|
63
73
|
</PlElementList>
|
|
74
|
+
|
|
64
75
|
<PlBtnSecondary icon="add" @click="handleAddStep">
|
|
65
76
|
Add label
|
|
66
77
|
</PlBtnSecondary>
|
|
@@ -5,4 +5,4 @@ export type FilterSpec = _FilterSpec<FilterSpecLeaf, { id: number; name?: string
|
|
|
5
5
|
|
|
6
6
|
export type Filter = FilterSpecUi<Extract<FilterSpec, { type: 'and' | 'or' }>> & { id: number };
|
|
7
7
|
|
|
8
|
-
export type Annotation = AnnotationSpecUi<Filter
|
|
8
|
+
export type Annotation = AnnotationSpecUi<Filter> & { defaultValue?: string };
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts" generic="T extends FilterSpecLeaf = FilterSpecLeaf">
|
|
2
|
-
import { computed, watch } from 'vue';
|
|
3
|
-
|
|
4
|
-
import { isNil } from '@milaboratories/helpers';
|
|
5
|
-
import type { FilterSpecTypeFieldRecord } from '@milaboratories/uikit';
|
|
6
|
-
import { getFilterUiMetadata, getFilterUiTypeOptions, PlCheckbox, PlDropdown, PlNumberField, PlTextField } from '@milaboratories/uikit';
|
|
7
|
-
import type { FilterSpecLeaf, SimplifiedUniversalPColumnEntry, SUniversalPColumnId } from '@platforma-sdk/model';
|
|
8
|
-
|
|
9
|
-
import type { FilterSpecType } from '../types';
|
|
10
|
-
|
|
11
|
-
type ObjectEntries<T, K extends keyof T = keyof T> = [K, T[K]][];
|
|
12
|
-
|
|
13
|
-
const formData = defineModel<T>({ default: () => ({}) });
|
|
14
|
-
|
|
15
|
-
const props = defineProps<{
|
|
16
|
-
columns: SimplifiedUniversalPColumnEntry[];
|
|
17
|
-
formMetadata: FilterSpecTypeFieldRecord<T>;
|
|
18
|
-
}>();
|
|
19
|
-
|
|
20
|
-
const columnSpecRef = computed(() => {
|
|
21
|
-
const value = formData.value;
|
|
22
|
-
if ('column' in value) {
|
|
23
|
-
return props.columns.find((c) => c.id === value.column)?.obj;
|
|
24
|
-
}
|
|
25
|
-
return undefined;
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
const typeMetadataRef = computed(() => {
|
|
29
|
-
const value = formData.value;
|
|
30
|
-
if (value.type && typeof value.type === 'string') {
|
|
31
|
-
return getFilterUiMetadata(value.type);
|
|
32
|
-
}
|
|
33
|
-
return undefined;
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
const filterUiTypeOptions = computed(() => {
|
|
37
|
-
return getFilterUiTypeOptions(columnSpecRef.value);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
const firstColumnsOptions = computed(() => props.columns.map((c) => ({ label: c.label, value: c.id })));
|
|
41
|
-
const secondColumnOptions = computed(() => {
|
|
42
|
-
const typeMetadata = typeMetadataRef.value;
|
|
43
|
-
const columnSpec = columnSpecRef.value;
|
|
44
|
-
if (typeMetadata && columnSpec) {
|
|
45
|
-
return props.columns.filter((c) => typeMetadata.supportedFor(columnSpec, c.obj)).map((c) => ({
|
|
46
|
-
label: c.label,
|
|
47
|
-
value: c.id,
|
|
48
|
-
}));
|
|
49
|
-
}
|
|
50
|
-
return [];
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
const setFieldValue = <K extends keyof T>(fieldName: K, value: T[K]) => {
|
|
54
|
-
formData.value[fieldName] = value;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
watch(() => props.formMetadata, (newForm) => {
|
|
58
|
-
for (const [fieldName, field] of Object.entries(newForm) as ObjectEntries<typeof newForm>) {
|
|
59
|
-
if (formData.value[fieldName] === undefined) {
|
|
60
|
-
const value = field.defaultValue();
|
|
61
|
-
if (!isNil(value)) {
|
|
62
|
-
formData.value[fieldName] = value;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
{ immediate: true, deep: true },
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
function isFilterType(type: string | undefined): boolean {
|
|
71
|
-
return type === 'FilterType'
|
|
72
|
-
// @deprecated version
|
|
73
|
-
|| type === 'FilterUiType';
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
</script>
|
|
77
|
-
|
|
78
|
-
<template>
|
|
79
|
-
<div v-if="formMetadata" :class="$style.form">
|
|
80
|
-
<template v-for="(field, fieldName) in formMetadata" :key="fieldName">
|
|
81
|
-
<template v-if="field.fieldType === 'form'">
|
|
82
|
-
<!-- TODO: Nested Form not described in FilterUi, we need to define it later. Even more in type it don't possible situations -->
|
|
83
|
-
<DynamicForm
|
|
84
|
-
v-if="'form' in field"
|
|
85
|
-
:model-value="formData[fieldName] as any"
|
|
86
|
-
:form-metadata="field.form as any"
|
|
87
|
-
:columns="props.columns"
|
|
88
|
-
@update:model-value="setFieldValue(fieldName, $event as T[keyof T])"
|
|
89
|
-
/>
|
|
90
|
-
</template>
|
|
91
|
-
<template v-else-if="isFilterType(field.fieldType)">
|
|
92
|
-
<PlDropdown
|
|
93
|
-
:model-value="formData[fieldName] as FilterSpecType"
|
|
94
|
-
:label="field.label ?? fieldName"
|
|
95
|
-
:options="filterUiTypeOptions"
|
|
96
|
-
@update:model-value="setFieldValue(fieldName, $event as T[keyof T])"
|
|
97
|
-
/>
|
|
98
|
-
</template>
|
|
99
|
-
<template v-else-if="field.fieldType === 'string'">
|
|
100
|
-
<PlTextField
|
|
101
|
-
:model-value="formData[fieldName] as string"
|
|
102
|
-
:label="field.label ?? fieldName"
|
|
103
|
-
@update:model-value="setFieldValue(fieldName, $event as T[keyof T])"
|
|
104
|
-
/>
|
|
105
|
-
</template>
|
|
106
|
-
<template v-else-if="field.fieldType === 'SUniversalPColumnId'">
|
|
107
|
-
<PlDropdown
|
|
108
|
-
:model-value="formData[fieldName] as SUniversalPColumnId"
|
|
109
|
-
:label="field.label ?? fieldName"
|
|
110
|
-
:options="fieldName === 'column' ? firstColumnsOptions : secondColumnOptions"
|
|
111
|
-
@update:model-value="setFieldValue(fieldName, $event as T[keyof T])"
|
|
112
|
-
/>
|
|
113
|
-
</template>
|
|
114
|
-
<template v-else-if="field.fieldType === 'number'">
|
|
115
|
-
<PlNumberField
|
|
116
|
-
:model-value="formData[fieldName] as number"
|
|
117
|
-
:label="field.label ?? fieldName"
|
|
118
|
-
@update:model-value="setFieldValue(fieldName, $event as T[keyof T])"
|
|
119
|
-
/>
|
|
120
|
-
</template>
|
|
121
|
-
<template v-else-if="field.fieldType === 'number?'">
|
|
122
|
-
<PlNumberField
|
|
123
|
-
:model-value="formData[fieldName] as (undefined | number)"
|
|
124
|
-
:label="field.label ?? fieldName"
|
|
125
|
-
:clearable="true"
|
|
126
|
-
@update:model-value="setFieldValue(fieldName, $event as T[keyof T])"
|
|
127
|
-
/>
|
|
128
|
-
</template>
|
|
129
|
-
<template v-else-if="field.fieldType === 'boolean' || field.fieldType === 'boolean?'">
|
|
130
|
-
<PlCheckbox
|
|
131
|
-
:model-value="Boolean(formData[fieldName])"
|
|
132
|
-
:label="field.label ?? fieldName"
|
|
133
|
-
@update:model-value="setFieldValue(fieldName, $event as T[keyof T])"
|
|
134
|
-
>
|
|
135
|
-
{{ field.label ?? fieldName }}
|
|
136
|
-
</PlCheckbox>
|
|
137
|
-
</template>
|
|
138
|
-
<template v-else>
|
|
139
|
-
<pre>TODO:{{ field.fieldType }}</pre>
|
|
140
|
-
</template>
|
|
141
|
-
</template>
|
|
142
|
-
</div>
|
|
143
|
-
</template>
|
|
144
|
-
|
|
145
|
-
<style module>
|
|
146
|
-
.form {
|
|
147
|
-
display: flex;
|
|
148
|
-
flex-direction: column;
|
|
149
|
-
gap: 12px;
|
|
150
|
-
}
|
|
151
|
-
</style>
|