@platforma-sdk/ui-vue 1.54.11 → 1.54.13

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.
Files changed (72) hide show
  1. package/.turbo/turbo-build.log +25 -21
  2. package/.turbo/turbo-formatter$colon$check.log +2 -2
  3. package/.turbo/turbo-linter$colon$check.log +2 -2
  4. package/.turbo/turbo-types$colon$check.log +1 -1
  5. package/CHANGELOG.md +16 -0
  6. package/dist/AgGridVue/useAgGridOptions.js +10 -9
  7. package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
  8. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.d.ts +32 -40
  9. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.d.ts.map +1 -1
  10. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js.map +1 -1
  11. package/dist/components/PlAdvancedFilter/index.d.ts +2 -2
  12. package/dist/components/PlAdvancedFilter/index.d.ts.map +1 -1
  13. package/dist/components/PlAdvancedFilter/index.js.map +1 -1
  14. package/dist/components/PlAdvancedFilter/types.d.ts +9 -8
  15. package/dist/components/PlAdvancedFilter/types.d.ts.map +1 -1
  16. package/dist/components/PlAdvancedFilter/utils.js +38 -27
  17. package/dist/components/PlAdvancedFilter/utils.js.map +1 -1
  18. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts.map +1 -1
  19. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +161 -244
  20. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
  21. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +9 -8
  22. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +1 -1
  23. package/dist/components/PlAgDataTable/compositions/useFilterableColumns.d.ts +134 -0
  24. package/dist/components/PlAgDataTable/compositions/useFilterableColumns.d.ts.map +1 -0
  25. package/dist/components/PlAgDataTable/compositions/useFilterableColumns.js +33 -0
  26. package/dist/components/PlAgDataTable/compositions/useFilterableColumns.js.map +1 -0
  27. package/dist/components/PlAgDataTable/compositions/useGrid.d.ts +15 -0
  28. package/dist/components/PlAgDataTable/compositions/useGrid.d.ts.map +1 -0
  29. package/dist/components/PlAgDataTable/compositions/useGrid.js +113 -0
  30. package/dist/components/PlAgDataTable/compositions/useGrid.js.map +1 -0
  31. package/dist/components/PlAgDataTable/sources/row-number.d.ts.map +1 -1
  32. package/dist/components/PlAgDataTable/sources/row-number.js.map +1 -1
  33. package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts +1 -2
  34. package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts.map +1 -1
  35. package/dist/components/PlAgDataTable/sources/table-source-v2.js +47 -62
  36. package/dist/components/PlAgDataTable/sources/table-source-v2.js.map +1 -1
  37. package/dist/components/PlAgDataTable/sources/table-state-v2.d.ts +4 -4
  38. package/dist/components/PlAgDataTable/sources/table-state-v2.d.ts.map +1 -1
  39. package/dist/components/PlAgDataTable/sources/table-state-v2.js +105 -95
  40. package/dist/components/PlAgDataTable/sources/table-state-v2.js.map +1 -1
  41. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +11 -10
  42. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js.map +1 -1
  43. package/dist/components/PlAgRowNumHeader.vue.js +10 -9
  44. package/dist/components/PlAgRowNumHeader.vue.js.map +1 -1
  45. package/dist/components/PlTableFastSearch/PlTableFastSearch.vue.d.ts +10 -0
  46. package/dist/components/PlTableFastSearch/PlTableFastSearch.vue.d.ts.map +1 -0
  47. package/dist/components/PlTableFastSearch/PlTableFastSearch.vue.js +30 -0
  48. package/dist/components/PlTableFastSearch/PlTableFastSearch.vue.js.map +1 -0
  49. package/dist/components/PlTableFastSearch/PlTableFastSearch.vue2.js +5 -0
  50. package/dist/components/PlTableFastSearch/PlTableFastSearch.vue2.js.map +1 -0
  51. package/dist/components/PlTableFastSearch/index.d.ts +2 -0
  52. package/dist/components/PlTableFastSearch/index.d.ts.map +1 -0
  53. package/dist/components/PlTableFilters/PlTableFiltersV2.vue.d.ts +4 -5
  54. package/dist/components/PlTableFilters/PlTableFiltersV2.vue.d.ts.map +1 -1
  55. package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js.map +1 -1
  56. package/dist/index.js +1 -1
  57. package/dist/lib/util/helpers/dist/functions.js +13 -4
  58. package/dist/lib/util/helpers/dist/functions.js.map +1 -1
  59. package/dist/lib/util/helpers/dist/objects.js.map +1 -1
  60. package/package.json +5 -5
  61. package/src/components/PlAdvancedFilter/PlAdvancedFilter.vue +2 -2
  62. package/src/components/PlAdvancedFilter/index.ts +7 -2
  63. package/src/components/PlAdvancedFilter/types.ts +19 -5
  64. package/src/components/PlAgDataTable/PlAgDataTableV2.vue +52 -172
  65. package/src/components/PlAgDataTable/compositions/useFilterableColumns.ts +62 -0
  66. package/src/components/PlAgDataTable/compositions/useGrid.ts +143 -0
  67. package/src/components/PlAgDataTable/sources/row-number.ts +0 -1
  68. package/src/components/PlAgDataTable/sources/table-source-v2.ts +1 -15
  69. package/src/components/PlAgDataTable/sources/table-state-v2.ts +137 -94
  70. package/src/components/PlTableFastSearch/PlTableFastSearch.vue +27 -0
  71. package/src/components/PlTableFastSearch/index.ts +1 -0
  72. package/src/components/PlTableFilters/PlTableFiltersV2.vue +8 -3
@@ -1,13 +1,13 @@
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.54.11 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.13 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
8
  vite v6.4.1 building for production...
9
9
  transforming...
10
- ✓ 175 modules transformed.
10
+ ✓ 180 modules transformed.
11
11
  Export "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.
12
12
  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.
13
13
  rendering chunks...
@@ -19,9 +19,10 @@ computing gzip size...
19
19
  dist/components/PlAgCellFile/PlAgCellFile.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
20
20
  dist/components/PlAgDataTable/PlAgRowCount.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
21
21
  dist/components/PlAgCsvExporter/PlAgCsvExporter.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
22
- dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
23
22
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
23
+ dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
24
24
  dist/components/PlAgRowNumHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
25
+ dist/components/PlTableFastSearch/PlTableFastSearch.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
25
26
  dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
26
27
  dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
27
28
  dist/plugins/Monetization/MonetizationSidebar.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
@@ -45,10 +46,9 @@ computing gzip size...
45
46
  dist/components/PlAgDataTable/PlAgDataTableV2.vue3.js  0.20 kB │ gzip: 0.16 kB │ map: 0.11 kB
46
47
  dist/components/PlAnnotations/components/PlAnnotationsModal.vue3.js  0.20 kB │ gzip: 0.16 kB │ map: 0.11 kB
47
48
  dist/components/PlAgDataTable/sources/common.js  0.21 kB │ gzip: 0.17 kB │ map: 0.66 kB
48
- dist/lib/util/helpers/dist/functions.js  0.21 kB │ gzip: 0.18 kB │ map: 5.34 kB
49
49
  dist/components/PlAnnotations/utils.js  0.21 kB │ gzip: 0.21 kB │ map: 1.07 kB
50
50
  dist/components/PlBtnExportArchive/Summary.vue3.js  0.24 kB │ gzip: 0.17 kB │ map: 0.10 kB
51
- dist/components/PlAdvancedFilter/index.js  0.24 kB │ gzip: 0.20 kB │ map: 0.66 kB
51
+ dist/components/PlAdvancedFilter/index.js  0.24 kB │ gzip: 0.20 kB │ map: 0.74 kB
52
52
  dist/components/PlAdvancedFilter/OperandButton.vue3.js  0.24 kB │ gzip: 0.18 kB │ map: 0.11 kB
53
53
  dist/components/PlAnnotations/components/style.module.css.js  0.25 kB │ gzip: 0.17 kB │ map: 0.11 kB
54
54
  dist/components/PlBtnExportArchive/Item.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
@@ -69,12 +69,13 @@ computing gzip size...
69
69
  dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
70
70
  dist/components/PlBtnExportArchive/PlBtnExportArchive.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
71
71
  dist/components/PlAnnotations/components/PlAnnotationsModal.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
72
- dist/components/PlAgDataTable/PlAgDataTableSheets.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
73
72
  dist/components/PlAnnotations/components/AnnotationsSidebar.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
73
+ dist/components/PlAgDataTable/PlAgDataTableSheets.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
74
74
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.js  0.32 kB │ gzip: 0.23 kB │ map: 0.12 kB
75
75
  dist/lib/util/helpers/dist/strings.js  0.35 kB │ gzip: 0.24 kB │ map: 4.22 kB
76
76
  dist/components/PlAgDataTable/pl-ag-overlay-loading.module.scss.js  0.36 kB │ gzip: 0.22 kB │ map: 0.12 kB
77
77
  dist/components/PlAgRowNumCheckbox/pl-ag-row-num-checkbox.module.scss.js  0.38 kB │ gzip: 0.23 kB │ map: 0.13 kB
78
+ dist/lib/util/helpers/dist/functions.js  0.39 kB │ gzip: 0.26 kB │ map: 5.59 kB
78
79
  dist/computedResult.js  0.40 kB │ gzip: 0.26 kB │ map: 2.43 kB
79
80
  dist/objectHash.js  0.43 kB │ gzip: 0.32 kB │ map: 1.24 kB
80
81
  dist/components/PlAnnotations/components/AnnotationsSidebar.vue3.js  0.45 kB │ gzip: 0.25 kB │ map: 0.12 kB
@@ -94,6 +95,8 @@ computing gzip size...
94
95
  dist/components/PlAdvancedFilter/OperandButton.vue2.js  0.84 kB │ gzip: 0.51 kB │ map: 1.87 kB
95
96
  dist/components/PlAdvancedFilter/FilterEditor.vue3.js  0.87 kB │ gzip: 0.41 kB │ map: 0.12 kB
96
97
  dist/components/NotFound.vue.js  0.90 kB │ gzip: 0.54 kB │ map: 1.18 kB
98
+ dist/components/PlTableFastSearch/PlTableFastSearch.vue.js  0.92 kB │ gzip: 0.51 kB │ map: 1.42 kB
99
+ dist/components/PlAgDataTable/compositions/useFilterableColumns.js  0.93 kB │ gzip: 0.49 kB │ map: 3.42 kB
97
100
  dist/plugins/Monetization/LimitCard.vue3.js  0.97 kB │ gzip: 0.40 kB │ map: 0.11 kB
98
101
  dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue.js  1.00 kB │ gzip: 0.55 kB │ map: 2.09 kB
99
102
  dist/components/PlAgCsvExporter/PlAgCsvExporter.vue.js  1.06 kB │ gzip: 0.59 kB │ map: 1.70 kB
@@ -102,18 +105,18 @@ computing gzip size...
102
105
  dist/components/PlAgGridColumnManager/useFilteredItems.js  1.13 kB │ gzip: 0.58 kB │ map: 3.95 kB
103
106
  dist/components/PlAgDataTable/sources/value-rendering.js  1.14 kB │ gzip: 0.54 kB │ map: 3.43 kB
104
107
  dist/AgGridVue/selection.js  1.17 kB │ gzip: 0.45 kB │ map: 3.56 kB
105
- dist/lib/util/helpers/dist/objects.js  1.18 kB │ gzip: 0.53 kB │ map: 9.48 kB
108
+ dist/lib/util/helpers/dist/objects.js  1.18 kB │ gzip: 0.53 kB │ map: 9.22 kB
106
109
  dist/plugins/Monetization/validation.js  1.19 kB │ gzip: 0.57 kB │ map: 2.92 kB
107
110
  dist/components/PlAgDataTable/types.js  1.24 kB │ gzip: 0.47 kB │ map: 7.82 kB
108
111
  dist/lib/util/helpers/dist/prettyBytes.js  1.26 kB │ gzip: 0.65 kB │ map: 4.14 kB
109
112
  dist/plugins/Monetization/RunStatus.vue2.js  1.27 kB │ gzip: 0.59 kB │ map: 3.14 kB
110
- dist/components/PlAdvancedFilter/utils.js  1.31 kB │ gzip: 0.61 kB │ map: 5.45 kB
111
113
  dist/components/PlBtnExportArchive/Summary.vue2.js  1.32 kB │ gzip: 0.58 kB │ map: 2.53 kB
112
114
  dist/components/PlBtnExportArchive/Item.vue2.js  1.37 kB │ gzip: 0.56 kB │ map: 2.78 kB
113
115
  dist/createModel.js  1.39 kB │ gzip: 0.65 kB │ map: 3.92 kB
114
116
  dist/components/PlAgDataTable/PlAgOverlayLoading.vue.js  1.42 kB │ gzip: 0.73 kB │ map: 2.85 kB
115
117
  dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js  1.49 kB │ gzip: 0.73 kB │ map: 3.30 kB
116
118
  dist/components/PlAgDataTable/sources/focus-row.js  1.57 kB │ gzip: 0.75 kB │ map: 2.66 kB
119
+ dist/components/PlAdvancedFilter/utils.js  1.57 kB │ gzip: 0.68 kB │ map: 5.71 kB
117
120
  dist/utils.js  1.61 kB │ gzip: 0.75 kB │ map: 3.93 kB
118
121
  dist/components/PlAgCsvExporter/export-csv.js  1.63 kB │ gzip: 0.74 kB │ map: 3.93 kB
119
122
  dist/AgGridVue/createAgGridColDef.js  1.64 kB │ gzip: 0.73 kB │ map: 9.71 kB
@@ -122,22 +125,23 @@ computing gzip size...
122
125
  dist/internal/createAppModel.js  1.73 kB │ gzip: 0.77 kB │ map: 4.86 kB
123
126
  dist/internal/UpdateSerializer.js  1.89 kB │ gzip: 0.80 kB │ map: 4.70 kB
124
127
  dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js  1.99 kB │ gzip: 0.86 kB │ map: 2.63 kB
125
- dist/components/PlAgDataTable/PlAgRowCount.vue.js  2.10 kB │ gzip: 0.76 kB │ map: 2.79 kB
128
+ dist/components/PlAgDataTable/PlAgRowCount.vue.js  2.12 kB │ gzip: 0.76 kB │ map: 2.79 kB
126
129
  dist/plugins/Monetization/useInfo.js  2.18 kB │ gzip: 0.83 kB │ map: 4.93 kB
127
130
  dist/components/BlockLayout.vue2.js  2.30 kB │ gzip: 1.00 kB │ map: 3.92 kB
128
131
  dist/plugins/Monetization/UserCabinetCard.vue2.js  2.36 kB │ gzip: 0.95 kB │ map: 4.69 kB
129
- dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js  2.55 kB │ gzip: 1.00 kB │ map: 3.09 kB
130
132
  dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js  2.57 kB │ gzip: 1.16 kB │ map: 5.86 kB
133
+ dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js  2.58 kB │ gzip: 1.00 kB │ map: 3.09 kB
131
134
  dist/defineApp.js  2.68 kB │ gzip: 1.00 kB │ map: 12.88 kB
132
135
  dist/components/PlAnnotations/components/PlAnnotations.vue2.js  2.68 kB │ gzip: 1.08 kB │ map: 4.05 kB
133
- dist/components/PlAgRowNumHeader.vue.js  2.76 kB │ gzip: 0.99 kB │ map: 4.07 kB
136
+ dist/components/PlAgRowNumHeader.vue.js  2.78 kB │ gzip: 1.00 kB │ map: 4.07 kB
134
137
  dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js  2.81 kB │ gzip: 1.16 kB │ map: 4.23 kB
135
138
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js  2.98 kB │ gzip: 1.12 kB │ map: 4.85 kB
136
- dist/components/PlAgDataTable/sources/row-number.js  3.14 kB │ gzip: 1.35 kB │ map: 8.52 kB
137
- dist/components/PlAgDataTable/sources/table-state-v2.js  3.49 kB │ gzip: 1.25 kB │ map: 10.94 kB
138
- dist/components/PlTableFilters/PlTableFiltersV2.vue2.js  3.76 kB │ gzip: 1.59 kB │ map: 7.28 kB
139
+ dist/components/PlAgDataTable/sources/row-number.js  3.14 kB │ gzip: 1.35 kB │ map: 8.45 kB
140
+ dist/components/PlAgDataTable/compositions/useGrid.js  3.19 kB │ gzip: 1.32 kB │ map: 7.28 kB
141
+ dist/components/PlTableFilters/PlTableFiltersV2.vue2.js  3.76 kB │ gzip: 1.59 kB │ map: 7.35 kB
139
142
  dist/plugins/Monetization/LimitCard.vue2.js  3.84 kB │ gzip: 1.15 kB │ map: 9.62 kB
140
143
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  3.85 kB │ gzip: 1.53 kB │ map: 6.85 kB
144
+ dist/components/PlAgDataTable/sources/table-state-v2.js  4.23 kB │ gzip: 1.50 kB │ map: 13.17 kB
141
145
  dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js  4.26 kB │ gzip: 1.61 kB │ map: 6.42 kB
142
146
  dist/components/PlAnnotations/components/FilterSidebar.vue2.js  4.44 kB │ gzip: 1.57 kB │ map: 7.52 kB
143
147
  dist/plugins/Monetization/MonetizationSidebar.vue.js  4.71 kB │ gzip: 1.75 kB │ map: 6.78 kB
@@ -146,13 +150,13 @@ computing gzip size...
146
150
  dist/internal/createAppV1.js  5.98 kB │ gzip: 1.91 kB │ map: 16.18 kB
147
151
  dist/components/PlBtnExportArchive/PlBtnExportArchive.vue2.js  5.99 kB │ gzip: 2.23 kB │ map: 12.13 kB
148
152
  dist/internal/createAppV2.js  7.01 kB │ gzip: 2.46 kB │ map: 20.24 kB
149
- dist/components/PlAgDataTable/sources/table-source-v2.js  7.33 kB │ gzip: 2.67 kB │ map: 22.43 kB
150
- dist/AgGridVue/useAgGridOptions.js  7.48 kB │ gzip: 2.13 kB │ map: 16.27 kB
151
- dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js  8.35 kB │ gzip: 2.42 kB │ map: 16.93 kB
153
+ dist/components/PlAgDataTable/sources/table-source-v2.js  7.11 kB │ gzip: 2.61 kB │ map: 21.91 kB
154
+ dist/AgGridVue/useAgGridOptions.js  7.50 kB │ gzip: 2.13 kB │ map: 16.27 kB
155
+ dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js  8.35 kB │ gzip: 2.42 kB │ map: 16.95 kB
152
156
  dist/components/PlAdvancedFilter/FilterEditor.vue2.js 12.83 kB │ gzip: 3.28 kB │ map: 25.49 kB
153
- dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js 15.37 kB │ gzip: 4.44 kB │ map: 35.29 kB
154
- dist/index.js 99.79 kB │ gzip: 64.33 kB │ map: 0.13 kB
155
- [vite:dts] Declaration files built in 4126ms.
157
+ dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js 12.92 kB │ gzip: 3.68 kB │ map: 29.49 kB
158
+ dist/index.js 99.79 kB │ gzip: 64.29 kB │ map: 0.13 kB
159
+ [vite:dts] Declaration files built in 7984ms.
156
160
 
157
- ✓ built in 5.36s
161
+ ✓ built in 9.50s
158
162
  Build completed successfully
@@ -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.54.11 formatter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.13 formatter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder formatter --check
5
5
 
6
6
  Checking formatting...
@@ -8,5 +8,5 @@ Checking formatting...
8
8
  Checking formatting...
9
9
 
10
10
  All matched files use the correct format.
11
- Finished in 1111ms on 120 files using 8 threads.
11
+ Finished in 1554ms on 124 files using 8 threads.
12
12
  Format check completed successfully
@@ -1,10 +1,10 @@
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.54.11 linter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.13 linter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder linter --check
5
5
 
6
6
  Linting project...
7
7
  ↳ oxlint --config /home/runner/_work/platforma/platforma/sdk/ui-vue/.oxlintrc.json --deny-warnings
8
8
  Found 0 warnings and 0 errors.
9
- Finished in 29ms on 103 files with 98 rules using 8 threads.
9
+ Finished in 28ms on 107 files with 98 rules using 8 threads.
10
10
  Linting completed successfully
@@ -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.54.11 types:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.54.13 types:check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder type-check --target browser-lib
5
5
 
6
6
  ↳ vue-tsc.js --noEmit --project ./tsconfig.json --customConditions ,
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.54.13
4
+
5
+ ### Patch Changes
6
+
7
+ - cb28fde: FilterSpec strict types, fast table search
8
+ - Updated dependencies [cb28fde]
9
+ - @milaboratories/uikit@2.10.25
10
+ - @platforma-sdk/model@1.54.13
11
+
12
+ ## 1.54.12
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies [d2e1b6b]
17
+ - @milaboratories/uikit@2.10.24
18
+
3
19
  ## 1.54.11
4
20
 
5
21
  ### Patch Changes
@@ -10,15 +10,15 @@ import "ag-grid-vue3";
10
10
  import "@milaboratories/uikit";
11
11
  import "ag-grid-enterprise";
12
12
  import { makeRowNumberColDef as w, autoSizeRowNumberColumn as R } from "../components/PlAgDataTable/sources/row-number.js";
13
- import T from "../components/PlAgDataTable/PlAgOverlayLoading.vue.js";
14
- import O from "../components/PlAgDataTable/PlAgOverlayNoRows.vue.js";
15
- /* empty css */
13
+ import { whenever as T } from "@vueuse/core";
16
14
  /* empty css */
17
15
  /* empty css */
18
- import { whenever as D } from "@vueuse/core";
19
16
  import "fast-json-patch";
20
17
  /* empty css */
21
18
  import "../plugins/Monetization/validation.js";
19
+ import O from "../components/PlAgDataTable/PlAgOverlayLoading.vue.js";
20
+ import D from "../components/PlAgDataTable/PlAgOverlayNoRows.vue.js";
21
+ /* empty css */
22
22
  import { createAgGridColDef as P } from "./createAgGridColDef.js";
23
23
  import b from "../components/PlAgCellFile/PlAgCellFile.vue.js";
24
24
  import _ from "../components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.js";
@@ -34,6 +34,7 @@ import "@zip.js/zip.js";
34
34
  import "canonicalize";
35
35
  import "../composition/fileContent.js";
36
36
  import "d3-format";
37
+ import "es-toolkit";
37
38
  var e;
38
39
  class C {
39
40
  constructor() {
@@ -183,13 +184,13 @@ class C {
183
184
  }
184
185
  }
185
186
  e = new WeakMap();
186
- function mt(r) {
187
+ function ut(r) {
187
188
  const t = f(), o = v(() => {
188
189
  var u;
189
190
  const s = {
190
191
  theme: x,
191
- loadingOverlayComponent: T,
192
- noRowsOverlayComponent: O,
192
+ loadingOverlayComponent: O,
193
+ noRowsOverlayComponent: D,
193
194
  onGridReady: (m) => {
194
195
  t.value = m.api, R(m.api);
195
196
  }
@@ -215,7 +216,7 @@ function mt(r) {
215
216
  }
216
217
  };
217
218
  });
218
- return D(
219
+ return T(
219
220
  () => o.value.rowNumbersColumn,
220
221
  () => {
221
222
  t.value && R(t.value);
@@ -242,6 +243,6 @@ function mt(r) {
242
243
  ), { gridOptions: a, gridApi: t };
243
244
  }
244
245
  export {
245
- mt as useAgGridOptions
246
+ ut as useAgGridOptions
246
247
  };
247
248
  //# sourceMappingURL=useAgGridOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAgGridOptions.js","sources":["../../src/AgGridVue/useAgGridOptions.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {\n ColGroupDef,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ICellRendererParams,\n RowSelectionOptions,\n ValueSetterParams,\n} from \"ag-grid-enterprise\";\nimport type { Component } from \"vue\";\nimport { computed, shallowRef, watch } from \"vue\";\nimport { AgGridTheme } from \"../aggrid\";\nimport {\n autoSizeRowNumberColumn,\n makeRowNumberColDef,\n PlAgOverlayLoading,\n type PlAgOverlayLoadingParams,\n} from \"../components/PlAgDataTable\";\nimport { PlAgOverlayNoRows } from \"../components/PlAgDataTable\";\nimport { createAgGridColDef, type ColDefExtended } from \"./createAgGridColDef\";\nimport { whenever } from \"@vueuse/core\";\nimport { PlAgCellFile } from \"../components/PlAgCellFile\";\nimport { PlAgChartStackedBarCell } from \"../components/PlAgChartStackedBarCell\";\nimport { PlAgChartHistogramCell } from \"../components/PlAgChartHistogramCell\";\nimport type { ImportFileHandle } from \"@platforma-sdk/model\";\nimport type { ImportProgress } from \"@platforma-sdk/model\";\nimport { PlAgCellStatusTag } from \"../components/PlAgCellStatusTag\";\ninterface GridOptionsExtended<TData = any> extends Omit<\n GridOptions<TData>,\n \"columnDefs\" | \"loadingOverlayComponentParams\"\n> {\n /**\n * Array of Column / Column Group definitions.\n */\n columnDefs?: (ColDefExtended<TData> | ColGroupDef<TData>)[] | null;\n /**\n * Show row numbers column\n */\n rowNumbersColumn?: boolean;\n /**\n * Loading overlay text\n */\n loadingText?: string;\n /**\n * Not ready overlay (Data is not computed). Takes priority over \"loading\"\n */\n notReady?: boolean;\n /**\n * \"Data is not computed\" by default\n */\n notReadyText?: string;\n /**\n * Override standard 'Empty' text for the \"no rows\" overlay\n */\n noRowsText?: string;\n /**\n * @deprecated Use loading, notReady, loadingText instead\n */\n loadingOverlayComponentParams?: never;\n}\n\n// @TODO (super simple builder for now)\nclass Builder<TData> {\n #options: GridOptionsExtended<TData> = {};\n\n public options(options: GridOptionsExtended<TData>) {\n this.#options = Object.assign({}, this.#options, options);\n return this;\n }\n\n private get columnDefs() {\n return this.#options.columnDefs ?? [];\n }\n\n /**\n * Set default column definition\n * @param def - column definition\n * @returns this\n */\n public setDefaultColDef(def: ColDefExtended<TData>) {\n this.#options.defaultColDef = def;\n return this;\n }\n\n /**\n * Show loading overlay\n * @param loading\n * @returns this\n */\n public setLoading(loading?: boolean) {\n this.#options.loading = loading;\n return this;\n }\n\n /**\n * Set loading overlay custom text (default is \"Loading\")\n * @param loadingText\n * @returns this\n */\n public setLoadingText(loadingText?: string) {\n this.#options.loadingText = loadingText;\n return this;\n }\n\n /**\n * Show \"not ready overlay\n * @param notReady\n * @returns this\n */\n public setNotReady(notReady?: boolean) {\n this.#options.notReady = notReady;\n return this;\n }\n\n /**\n * Set \"not ready\" text\n * @param notReadyText\n * @returns this\n */\n public setNotReadyText(notReadyText?: string) {\n this.#options.notReadyText = notReadyText;\n return this;\n }\n\n /**\n * Set \"no rows\" text when there are no rows (default is \"Empty\")\n * @param noRowsText\n * @returns this\n */\n public setNoRowsText(noRowsText?: string) {\n this.#options.noRowsText = noRowsText;\n return this;\n }\n\n /**\n * Set row selection options\n * @param rowSelection\n * @returns this\n */\n public setRowSelection(rowSelection?: RowSelectionOptions) {\n this.#options.rowSelection = rowSelection;\n return this;\n }\n\n /**\n * Set row data\n * @param rowData\n * @returns this\n */\n public setRowData(rowData?: TData[]) {\n this.#options.rowData = rowData;\n return this;\n }\n\n /**\n * Set components\n * @param components\n * @returns this\n */\n public setComponents(components?: Record<string, Component>) {\n this.#options.components = components;\n return this;\n }\n\n /**\n * Set an option\n * @param key - option key\n * @param value - option value\n * @returns this\n */\n public setOption<K extends keyof GridOptionsExtended<TData>>(\n key: K,\n value: GridOptionsExtended<TData>[K],\n ) {\n this.#options[key] = value;\n return this;\n }\n\n /**\n * Add an extended column definition\n * @param def - column definition\n * @returns this\n */\n public column<TValue = any>(def: ColDefExtended<TData, TValue>) {\n this.#options.columnDefs = [...this.columnDefs, def];\n return this;\n }\n\n /**\n * Show row numbers column\n * @param show - show or hide row numbers column\n * @returns this\n */\n public columnRowNumbers(show: boolean = true) {\n this.#options.rowNumbersColumn = show;\n return this;\n }\n\n /**\n * Add a file input column\n * @param def - column definition\n * @param cb - callback to set params for the file input cell renderer\n * @returns this\n */\n public columnFileInput<TValue = any>(\n def: ColDefExtended<TData, TValue> & {\n /**\n * Allowed file extensions (like ['fastq.gz'])\n */\n extensions?: string[];\n /**\n * The resolveProgress function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveProgress, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveProgress: (cellData) => {\n * const progresses = app.progresses;\n * if (!cellData.value.importFileHandle) return undefined;\n * else return progresses[cellData.value.importFileHandle];\n * }\n * }\n */\n resolveImportProgress?: (\n cellData: ICellRendererParams<TData, TValue>,\n ) => ImportProgress | undefined;\n\n /**\n * The resolveFileHandle function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveFileHandle, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveFileHandle: (cellData) => {\n * return cellData.value.importFileHandle;\n * }\n * }\n */\n resolveImportFileHandle?: (\n cellData: ICellRendererParams<TData, TValue>,\n ) => ImportFileHandle | undefined;\n\n setImportFileHandle?: (d: ValueSetterParams<TData, ImportFileHandle | undefined>) => void;\n },\n ) {\n return this.column(\n Object.assign(\n {\n cellRenderer: \"PlAgCellFile\",\n headerComponentParams: { type: \"File\" },\n cellStyle: { padding: 0 },\n valueSetter: (d: ValueSetterParams<TData, ImportFileHandle | undefined>) => {\n def.setImportFileHandle?.(d);\n return true;\n },\n cellRendererSelector: (cellData: ICellRendererParams<TData, TValue>) => {\n return {\n component: \"PlAgCellFile\",\n params: {\n extensions: def.extensions,\n value: def.resolveImportFileHandle?.(cellData),\n resolveProgress: () => {\n return def.resolveImportProgress?.(cellData);\n },\n },\n };\n },\n },\n def,\n ),\n );\n }\n\n public build() {\n return this.#options;\n }\n}\n\n// Simple helper to use like column<string> in grid options literal\ntype ColumnFunc<TData> = <TValue>(\n def: ColDefExtended<TData, TValue>,\n) => ColDefExtended<TData, TValue>;\n\n/**\n * Returns a set of Ag Grid options along with a reference to the Ag Grid API.\n * (This is a fast prototype)\n *\n * @example\n * ```ts\n * const { gridOptions, gridApi } = useAgGridOptions(() => ({\n * // custom grid options here\n * }));\n *\n * // Usage in a template (v-bind is required!)\n * <template>\n * <AgGridVue :style=\"{ height: '100%' }\" v-bind=\"gridOptions\" />\n * </template>\n * ```\n */\nexport function useAgGridOptions<TData>(\n factory: (context: {\n builder: Builder<TData>;\n column: ColumnFunc<TData>;\n }) => Builder<TData> | GridOptionsExtended<TData>,\n) {\n const gridApi = shallowRef<GridApi>();\n\n const extOptions = computed<GridOptionsExtended>(() => {\n const def: GridOptionsExtended<TData> = {\n theme: AgGridTheme,\n loadingOverlayComponent: PlAgOverlayLoading,\n noRowsOverlayComponent: PlAgOverlayNoRows,\n onGridReady: (e: GridReadyEvent) => {\n gridApi.value = e.api;\n autoSizeRowNumberColumn(e.api); // @TODO\n },\n };\n\n const column = <TValue>(def: ColDefExtended<TData, TValue>) => {\n return def;\n };\n\n const result = factory({ builder: new Builder(), column });\n\n const options = Object.assign({}, def, result instanceof Builder ? result.build() : result);\n\n if (options.rowNumbersColumn) {\n options.columnDefs = [makeRowNumberColDef(), ...(options.columnDefs ?? [])];\n }\n\n if (options.noRowsText) {\n options.noRowsOverlayComponentParams = {\n text: options.noRowsText,\n };\n }\n\n if (\"loadingOverlayComponentParams\" in options) {\n console.warn(\n \"useAgGridOptions: remove loadingOverlayComponentParams from options, use loading, notReady, loadingText instead\",\n );\n }\n\n options.loading = options.notReady || options.loading;\n\n options.columnDefs = options.columnDefs?.map((it) => createAgGridColDef(it));\n\n // Register all special components\n options.components = Object.assign({}, options.components ?? {}, {\n PlAgCellFile,\n PlAgChartStackedBarCell,\n PlAgChartHistogramCell,\n PlAgCellStatusTag,\n });\n\n return options;\n });\n\n const gridOptions = computed<GridOptions>(() => {\n const options = extOptions.value;\n\n return {\n ...options,\n loadingOverlayComponentParams: {\n variant: options.notReady ? \"not-ready\" : \"loading\",\n notReadyText: options.notReadyText,\n loadingText: options.loadingText,\n } satisfies PlAgOverlayLoadingParams,\n };\n });\n\n whenever(\n () => extOptions.value.rowNumbersColumn,\n () => {\n if (gridApi.value) {\n autoSizeRowNumberColumn(gridApi.value);\n }\n },\n );\n\n watch(\n [() => extOptions.value.notReady, () => extOptions.value.loading],\n ([notReady, loading]) => {\n const loadingOverlayComponentParams = {\n variant: notReady ? \"not-ready\" : \"loading\",\n // we probably don't need to update the parameters below\n notReadyText: extOptions.value.notReadyText,\n loadingText: extOptions.value.loadingText,\n } satisfies PlAgOverlayLoadingParams;\n\n // Hack to apply loadingOverlayComponentParams\n gridApi.value?.updateGridOptions({\n loading: !loading,\n loadingOverlayComponentParams,\n });\n\n gridApi.value?.updateGridOptions({\n loading,\n loadingOverlayComponentParams,\n });\n },\n { deep: true, immediate: true },\n );\n\n return { gridOptions, gridApi };\n}\n"],"names":["Builder","__privateAdd","_options","options","__privateSet","__privateGet","def","loading","loadingText","notReady","notReadyText","noRowsText","rowSelection","rowData","components","key","value","show","d","_a","cellData","useAgGridOptions","factory","gridApi","shallowRef","extOptions","computed","AgGridTheme","PlAgOverlayLoading","PlAgOverlayNoRows","e","autoSizeRowNumberColumn","column","result","makeRowNumberColDef","it","createAgGridColDef","PlAgCellFile","PlAgChartStackedBarCell","PlAgChartHistogramCell","PlAgCellStatusTag","gridOptions","whenever","watch","loadingOverlayComponentParams","_b"],"mappings":"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"}
1
+ {"version":3,"file":"useAgGridOptions.js","sources":["../../src/AgGridVue/useAgGridOptions.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {\n ColGroupDef,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ICellRendererParams,\n RowSelectionOptions,\n ValueSetterParams,\n} from \"ag-grid-enterprise\";\nimport type { Component } from \"vue\";\nimport { computed, shallowRef, watch } from \"vue\";\nimport { AgGridTheme } from \"../aggrid\";\nimport {\n autoSizeRowNumberColumn,\n makeRowNumberColDef,\n PlAgOverlayLoading,\n type PlAgOverlayLoadingParams,\n} from \"../components/PlAgDataTable\";\nimport { PlAgOverlayNoRows } from \"../components/PlAgDataTable\";\nimport { createAgGridColDef, type ColDefExtended } from \"./createAgGridColDef\";\nimport { whenever } from \"@vueuse/core\";\nimport { PlAgCellFile } from \"../components/PlAgCellFile\";\nimport { PlAgChartStackedBarCell } from \"../components/PlAgChartStackedBarCell\";\nimport { PlAgChartHistogramCell } from \"../components/PlAgChartHistogramCell\";\nimport type { ImportFileHandle } from \"@platforma-sdk/model\";\nimport type { ImportProgress } from \"@platforma-sdk/model\";\nimport { PlAgCellStatusTag } from \"../components/PlAgCellStatusTag\";\ninterface GridOptionsExtended<TData = any> extends Omit<\n GridOptions<TData>,\n \"columnDefs\" | \"loadingOverlayComponentParams\"\n> {\n /**\n * Array of Column / Column Group definitions.\n */\n columnDefs?: (ColDefExtended<TData> | ColGroupDef<TData>)[] | null;\n /**\n * Show row numbers column\n */\n rowNumbersColumn?: boolean;\n /**\n * Loading overlay text\n */\n loadingText?: string;\n /**\n * Not ready overlay (Data is not computed). Takes priority over \"loading\"\n */\n notReady?: boolean;\n /**\n * \"Data is not computed\" by default\n */\n notReadyText?: string;\n /**\n * Override standard 'Empty' text for the \"no rows\" overlay\n */\n noRowsText?: string;\n /**\n * @deprecated Use loading, notReady, loadingText instead\n */\n loadingOverlayComponentParams?: never;\n}\n\n// @TODO (super simple builder for now)\nclass Builder<TData> {\n #options: GridOptionsExtended<TData> = {};\n\n public options(options: GridOptionsExtended<TData>) {\n this.#options = Object.assign({}, this.#options, options);\n return this;\n }\n\n private get columnDefs() {\n return this.#options.columnDefs ?? [];\n }\n\n /**\n * Set default column definition\n * @param def - column definition\n * @returns this\n */\n public setDefaultColDef(def: ColDefExtended<TData>) {\n this.#options.defaultColDef = def;\n return this;\n }\n\n /**\n * Show loading overlay\n * @param loading\n * @returns this\n */\n public setLoading(loading?: boolean) {\n this.#options.loading = loading;\n return this;\n }\n\n /**\n * Set loading overlay custom text (default is \"Loading\")\n * @param loadingText\n * @returns this\n */\n public setLoadingText(loadingText?: string) {\n this.#options.loadingText = loadingText;\n return this;\n }\n\n /**\n * Show \"not ready overlay\n * @param notReady\n * @returns this\n */\n public setNotReady(notReady?: boolean) {\n this.#options.notReady = notReady;\n return this;\n }\n\n /**\n * Set \"not ready\" text\n * @param notReadyText\n * @returns this\n */\n public setNotReadyText(notReadyText?: string) {\n this.#options.notReadyText = notReadyText;\n return this;\n }\n\n /**\n * Set \"no rows\" text when there are no rows (default is \"Empty\")\n * @param noRowsText\n * @returns this\n */\n public setNoRowsText(noRowsText?: string) {\n this.#options.noRowsText = noRowsText;\n return this;\n }\n\n /**\n * Set row selection options\n * @param rowSelection\n * @returns this\n */\n public setRowSelection(rowSelection?: RowSelectionOptions) {\n this.#options.rowSelection = rowSelection;\n return this;\n }\n\n /**\n * Set row data\n * @param rowData\n * @returns this\n */\n public setRowData(rowData?: TData[]) {\n this.#options.rowData = rowData;\n return this;\n }\n\n /**\n * Set components\n * @param components\n * @returns this\n */\n public setComponents(components?: Record<string, Component>) {\n this.#options.components = components;\n return this;\n }\n\n /**\n * Set an option\n * @param key - option key\n * @param value - option value\n * @returns this\n */\n public setOption<K extends keyof GridOptionsExtended<TData>>(\n key: K,\n value: GridOptionsExtended<TData>[K],\n ) {\n this.#options[key] = value;\n return this;\n }\n\n /**\n * Add an extended column definition\n * @param def - column definition\n * @returns this\n */\n public column<TValue = any>(def: ColDefExtended<TData, TValue>) {\n this.#options.columnDefs = [...this.columnDefs, def];\n return this;\n }\n\n /**\n * Show row numbers column\n * @param show - show or hide row numbers column\n * @returns this\n */\n public columnRowNumbers(show: boolean = true) {\n this.#options.rowNumbersColumn = show;\n return this;\n }\n\n /**\n * Add a file input column\n * @param def - column definition\n * @param cb - callback to set params for the file input cell renderer\n * @returns this\n */\n public columnFileInput<TValue = any>(\n def: ColDefExtended<TData, TValue> & {\n /**\n * Allowed file extensions (like ['fastq.gz'])\n */\n extensions?: string[];\n /**\n * The resolveProgress function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveProgress, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveProgress: (cellData) => {\n * const progresses = app.progresses;\n * if (!cellData.value.importFileHandle) return undefined;\n * else return progresses[cellData.value.importFileHandle];\n * }\n * }\n */\n resolveImportProgress?: (\n cellData: ICellRendererParams<TData, TValue>,\n ) => ImportProgress | undefined;\n\n /**\n * The resolveFileHandle function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveFileHandle, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveFileHandle: (cellData) => {\n * return cellData.value.importFileHandle;\n * }\n * }\n */\n resolveImportFileHandle?: (\n cellData: ICellRendererParams<TData, TValue>,\n ) => ImportFileHandle | undefined;\n\n setImportFileHandle?: (d: ValueSetterParams<TData, ImportFileHandle | undefined>) => void;\n },\n ) {\n return this.column(\n Object.assign(\n {\n cellRenderer: \"PlAgCellFile\",\n headerComponentParams: { type: \"File\" },\n cellStyle: { padding: 0 },\n valueSetter: (d: ValueSetterParams<TData, ImportFileHandle | undefined>) => {\n def.setImportFileHandle?.(d);\n return true;\n },\n cellRendererSelector: (cellData: ICellRendererParams<TData, TValue>) => {\n return {\n component: \"PlAgCellFile\",\n params: {\n extensions: def.extensions,\n value: def.resolveImportFileHandle?.(cellData),\n resolveProgress: () => {\n return def.resolveImportProgress?.(cellData);\n },\n },\n };\n },\n },\n def,\n ),\n );\n }\n\n public build() {\n return this.#options;\n }\n}\n\n// Simple helper to use like column<string> in grid options literal\ntype ColumnFunc<TData> = <TValue>(\n def: ColDefExtended<TData, TValue>,\n) => ColDefExtended<TData, TValue>;\n\n/**\n * Returns a set of Ag Grid options along with a reference to the Ag Grid API.\n * (This is a fast prototype)\n *\n * @example\n * ```ts\n * const { gridOptions, gridApi } = useAgGridOptions(() => ({\n * // custom grid options here\n * }));\n *\n * // Usage in a template (v-bind is required!)\n * <template>\n * <AgGridVue :style=\"{ height: '100%' }\" v-bind=\"gridOptions\" />\n * </template>\n * ```\n */\nexport function useAgGridOptions<TData>(\n factory: (context: {\n builder: Builder<TData>;\n column: ColumnFunc<TData>;\n }) => Builder<TData> | GridOptionsExtended<TData>,\n) {\n const gridApi = shallowRef<GridApi>();\n\n const extOptions = computed<GridOptionsExtended>(() => {\n const def: GridOptionsExtended<TData> = {\n theme: AgGridTheme,\n loadingOverlayComponent: PlAgOverlayLoading,\n noRowsOverlayComponent: PlAgOverlayNoRows,\n onGridReady: (e: GridReadyEvent) => {\n gridApi.value = e.api;\n autoSizeRowNumberColumn(e.api); // @TODO\n },\n };\n\n const column = <TValue>(def: ColDefExtended<TData, TValue>) => {\n return def;\n };\n\n const result = factory({ builder: new Builder(), column });\n\n const options = Object.assign({}, def, result instanceof Builder ? result.build() : result);\n\n if (options.rowNumbersColumn) {\n options.columnDefs = [makeRowNumberColDef(), ...(options.columnDefs ?? [])];\n }\n\n if (options.noRowsText) {\n options.noRowsOverlayComponentParams = {\n text: options.noRowsText,\n };\n }\n\n if (\"loadingOverlayComponentParams\" in options) {\n console.warn(\n \"useAgGridOptions: remove loadingOverlayComponentParams from options, use loading, notReady, loadingText instead\",\n );\n }\n\n options.loading = options.notReady || options.loading;\n\n options.columnDefs = options.columnDefs?.map((it) => createAgGridColDef(it));\n\n // Register all special components\n options.components = Object.assign({}, options.components ?? {}, {\n PlAgCellFile,\n PlAgChartStackedBarCell,\n PlAgChartHistogramCell,\n PlAgCellStatusTag,\n });\n\n return options;\n });\n\n const gridOptions = computed<GridOptions>(() => {\n const options = extOptions.value;\n\n return {\n ...options,\n loadingOverlayComponentParams: {\n variant: options.notReady ? \"not-ready\" : \"loading\",\n notReadyText: options.notReadyText,\n loadingText: options.loadingText,\n } satisfies PlAgOverlayLoadingParams,\n };\n });\n\n whenever(\n () => extOptions.value.rowNumbersColumn,\n () => {\n if (gridApi.value) {\n autoSizeRowNumberColumn(gridApi.value);\n }\n },\n );\n\n watch(\n [() => extOptions.value.notReady, () => extOptions.value.loading],\n ([notReady, loading]) => {\n const loadingOverlayComponentParams = {\n variant: notReady ? \"not-ready\" : \"loading\",\n // we probably don't need to update the parameters below\n notReadyText: extOptions.value.notReadyText,\n loadingText: extOptions.value.loadingText,\n } satisfies PlAgOverlayLoadingParams;\n\n // Hack to apply loadingOverlayComponentParams\n gridApi.value?.updateGridOptions({\n loading: !loading,\n loadingOverlayComponentParams,\n });\n\n gridApi.value?.updateGridOptions({\n loading,\n loadingOverlayComponentParams,\n });\n },\n { deep: true, immediate: true },\n );\n\n return { gridOptions, gridApi };\n}\n"],"names":["Builder","__privateAdd","_options","options","__privateSet","__privateGet","def","loading","loadingText","notReady","notReadyText","noRowsText","rowSelection","rowData","components","key","value","show","d","_a","cellData","useAgGridOptions","factory","gridApi","shallowRef","extOptions","computed","AgGridTheme","PlAgOverlayLoading","PlAgOverlayNoRows","e","autoSizeRowNumberColumn","column","result","makeRowNumberColDef","it","createAgGridColDef","PlAgCellFile","PlAgChartStackedBarCell","PlAgChartHistogramCell","PlAgCellStatusTag","gridOptions","whenever","watch","loadingOverlayComponentParams","_b"],"mappings":"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"}
@@ -1,49 +1,41 @@
1
1
  import { ListOptionBase } from '@platforma-sdk/model';
2
2
  import { SUPPORTED_FILTER_TYPES } from './constants';
3
3
  import { PlAdvancedFilterColumnId, RootFilter, SourceOptionInfo } from './types';
4
- type __VLS_Props = {
5
- /** List of ids of sources (columns, axes) that can be selected in filters */
6
- items: SourceOptionInfo[];
7
- /** List of supported filter types */
8
- supportedFilters?: typeof SUPPORTED_FILTER_TYPES;
9
- /** If true - new filter can be added by droppind element into filter group; else new column is added by button click */
10
- enableDnd?: boolean;
11
- /** If true - "Add group" button is shown below the filter groups */
12
- enableAddGroupButton?: boolean;
13
- /** Loading function for unique values for Equal/InSet filters and fixed axes options. */
14
- getSuggestOptions: (params: {
15
- columnId: PlAdvancedFilterColumnId;
16
- axisIdx?: number;
17
- searchStr: string;
18
- searchType: "value" | "label";
19
- }) => ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;
20
- };
21
- type __VLS_PublicProps = {
22
- "filters": RootFilter;
23
- } & __VLS_Props;
24
- declare function __VLS_template(): {
25
- attrs: Partial<{}>;
4
+ declare const _default: <T extends RootFilter>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
5
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
6
+ readonly "onUpdate:filters"?: ((value: T) => any) | undefined;
7
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:filters"> & ({
8
+ filters: T;
9
+ } & {
10
+ /** List of ids of sources (columns, axes) that can be selected in filters */
11
+ items: SourceOptionInfo[];
12
+ /** List of supported filter types */
13
+ supportedFilters?: typeof SUPPORTED_FILTER_TYPES;
14
+ /** If true - new filter can be added by droppind element into filter group; else new column is added by button click */
15
+ enableDnd?: boolean;
16
+ /** If true - "Add group" button is shown below the filter groups */
17
+ enableAddGroupButton?: boolean;
18
+ /** Loading function for unique values for Equal/InSet filters and fixed axes options. */
19
+ getSuggestOptions: (params: {
20
+ columnId: PlAdvancedFilterColumnId;
21
+ axisIdx?: number;
22
+ searchStr: string;
23
+ searchType: "value" | "label";
24
+ }) => ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;
25
+ }) & Partial<{}>> & import('vue').PublicProps;
26
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
27
+ attrs: any;
26
28
  slots: {
27
29
  'add-group-buttons'?(_: {}): any;
28
30
  };
29
- refs: {};
30
- rootEl: HTMLDivElement;
31
+ emit: (evt: "update:filters", value: T) => void;
32
+ }>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
33
+ [key: string]: any;
34
+ }> & {
35
+ __ctx?: Awaited<typeof __VLS_setup>;
31
36
  };
32
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
33
- declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
34
- "update:filters": (value: RootFilter) => any;
35
- }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
36
- "onUpdate:filters"?: ((value: RootFilter) => any) | undefined;
37
- }>, {
38
- enableDnd: boolean;
39
- supportedFilters: typeof SUPPORTED_FILTER_TYPES;
40
- enableAddGroupButton: boolean;
41
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
42
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
43
37
  export default _default;
44
- type __VLS_WithTemplateSlots<T, S> = T & {
45
- new (): {
46
- $slots: S;
47
- };
48
- };
38
+ type __VLS_PrettifyLocal<T> = {
39
+ [K in keyof T]: T[K];
40
+ } & {};
49
41
  //# sourceMappingURL=PlAdvancedFilter.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlAdvancedFilter.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAdvancedFilter/PlAdvancedFilter.vue"],"names":[],"mappings":"AAqUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,EAAwC,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,KAAK,EAIV,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAKjB,KAAK,WAAW,GAAG;IACf,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;QAC1B,QAAQ,EAAE,wBAAwB,CAAC;QACnC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;KAC/B,KAAK,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;CACtF,CAAC;AA2JJ,KAAK,iBAAiB,GAAG;IACzB,SAAS,EAAE,UAAU,CAAC;CACrB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAuRT,OAAO,IAA6B;;qCAVR,GAAG;;;;EAe5C;AA6BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;eAteL,OAAO;sBAFA,OAAO,sBAAsB;0BAIzB,OAAO;wFA6ehC,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
+ {"version":3,"file":"PlAdvancedFilter.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAdvancedFilter/PlAdvancedFilter.vue"],"names":[],"mappings":"AAqUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,EAAwC,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,KAAK,EAIV,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EACjB,MAAM,SAAS,CAAC;yBAGA,CAAC,SAAS,UAAU,eACvB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAsf1D,mBAAmB,CAAC;;;iBAjUjB,CAAC;;QAhLR,6EAA6E;eACtE,gBAAgB,EAAE;QACzB,qCAAqC;2BAClB,OAAO,sBAAsB;QAChD,wHAAwH;oBAC5G,OAAO;QACnB,oEAAoE;+BAC7C,OAAO;QAC9B,yFAAyF;2BACtE,CAAC,MAAM,EAAE;YAC1B,QAAQ,EAAE,wBAAwB,CAAC;YACnC,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;SAC/B,KAAK,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;oBAmeM,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;qCAhD+B,GAAG;;;;;;YAqDD,OAAO,CAAC,OAAO,WAAW,CAAC;;AAhgBvE,wBAggB4E;AAc5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -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 {\n CommonFilter,\n EditableFilter,\n NodeFilter,\n PlAdvancedFilterColumnId,\n RootFilter,\n SourceOptionInfo,\n} from \"./types\";\nimport { createNewGroup, getNewId, isValidColumnId } from \"./utils\";\n\nconst model = defineModel<RootFilter>(\"filters\", { required: true });\n\nconst props = withDefaults(\n 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: {\n columnId: PlAdvancedFilterColumnId;\n axisIdx?: number;\n searchStr: string;\n searchType: \"value\" | \"label\";\n }) => ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;\n }>(),\n {\n supportedFilters: () => SUPPORTED_FILTER_TYPES,\n getSuggestModel: undefined,\n\n enableDnd: false,\n enableAddGroupButton: false,\n },\n);\n\nconst firstColumnId = computed(() => props.items[0]?.id);\nconst emptyGroup: NodeFilter[] = [\n {\n id: -1,\n type: \"and\",\n filters: [],\n isExpanded: true,\n },\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\"\n ? (item.filter as Exclude<T, { type: \"not\" }>)\n : (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 :item-class=\"$style.filterGroup\"\n :item-class-content=\"$style.filterGroupContent\"\n :item-class-title=\"$style.filterGroupTitle\"\n :is-expanded=\"(filter) => filter.isExpanded === true\"\n :on-expand=\"\n (group) => {\n group.isExpanded = !group.isExpanded;\n }\n \"\n :disableDragging=\"false\"\n :disableRemoving=\"false\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n >\n <template #item-title> Filter group </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=\"\n (value) => updateFilter(getNotContent(item).filters, filterIdx, value)\n \"\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 :is-expanded=\"() => true\"\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)\"> Add filter </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":";;;;;;;;;;;;;;;;;;;;AAiBA,UAAMA,IAAQC,EAAuBC,GAAC,SAA6B,GAE7DC,IAAQD,GA2BRE,IAAgBC,EAAS,MAAA;;AAAM,cAAAC,IAAAH,EAAM,MAAM,CAAC,MAAb,gBAAAG,EAAgB;AAAA,KAAE,GACjDC,IAA2B;AAAA,MAC/B;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,SAAS,CAAA;AAAA,QACT,YAAY;AAAA,MAAA;AAAA,IACd;AAGF,aAASC,IAAgB;AACvB,UAAIR,EAAM,MAAM,SAAS,QAAQA,EAAM,MAAM,SAAS;AACpD,cAAM,IAAI,MAAM,kEAAkE;AAEpF,aAAOA,EAAM,MAAM;AAAA,IACrB;AAEA,aAASS,EAAaC,GAAyB;AAE7C,YAAMC,IADSH,EAAA,EACME,CAAG;AACxB,UAAIC,EAAM,SAAS,SAASA,EAAM,SAAS,QAAQA,EAAM,SAAS;AAChE,cAAM,IAAI,MAAM,8DAA8D;AAEhF,aAAOA;AAAA,IACT;AAEA,aAASC,EAAoBF,GAAmD;AAC9E,YAAMC,IAAQF,EAAaC,CAAG;AAE9B,UAAIC,EAAM,SAAS;AACjB,eAAOA;AAGT,UAAIA,EAAM,OAAO,SAAS,SAASA,EAAM,OAAO,SAAS;AACvD,cAAM,IAAI,MAAM,oEAAoE;AAGtF,aAAOA,EAAM;AAAA,IACf;AAEA,aAASE,EAAiBC,GAAkBC,GAA4C;AAGtF,MAFcH,EAAoBE,CAAQ,EAEpC,QAAQ,KAAK;AAAA,QACjB,GAAGE,EAAgBC,CAAmB;AAAA,QACtC,QAAQF;AAAA,QACR,IAAIG,EAAA;AAAA,QACJ,YAAY;AAAA,MAAA,CACG;AAAA,IACnB;AAEA,aAASC,EAAsBL,GAAkBM,GAAmB;AAClE,YAAMT,IAAQC,EAAoBE,CAAQ;AAE1C,MAAIH,EAAM,QAAQ,WAAW,KAAKS,MAAc,IAC9CC,EAAYP,CAAQ,IAEpBH,EAAM,QAAQ,OAAOS,GAAW,CAAC;AAAA,IAErC;AACA,aAASE,EAAgBR,GAAkB;AACzC,YAAMS,IAASf,EAAA,GACTG,IAAQY,EAAOT,CAAQ;AAC7B,UAAIH,EAAM,SAAS,OAAO;AACxB,YAAIA,EAAM,OAAO,SAAS,SAASA,EAAM,OAAO,SAAS;AACvD,gBAAM,IAAI,MAAM,oEAAoE;AAEtF,QAAAY,EAAOT,CAAQ,IAAIH,EAAM;AAAA,MAC3B,OAAO;AACL,cAAMa,IAAOD,EAAOT,CAAQ,EAAE;AAC9B,YAAIU,MAAS,SAASA,MAAS,QAAQA,MAAS;AAC9C,gBAAM,IAAI,MAAM,8DAA8D;AAGhF,QAAAD,EAAOT,CAAQ,IAAI;AAAA,UACjB,IAAII,EAAA;AAAA,UACJ,YAAY;AAAA,UACZ,MAAM;AAAA,UACN,QAAQK,EAAOT,CAAQ;AAAA,QAAA;AAAA,MAE3B;AAAA,IACF;AAEA,aAASW,EAAsCC,GAAsC;AACnF,aAAOA,EAAK,SAAS,QAChBA,EAAK,SACLA;AAAA,IACP;AAEA,aAASL,EAAYP,GAAkB;AAErC,MADeN,EAAA,EACR,OAAOM,GAAU,CAAC;AAAA,IAC3B;AACA,aAASa,EAASZ,GAA4C;AAC5D,YAAMa,IAAWC,GAAed,CAAgB;AAEhD,MADeP,EAAA,EACR,KAAKoB,CAAQ;AAAA,IACtB;AAEA,aAASE,EAA0BhB,GAAkBiB,GAAkB;AACrE,YAAMC,IAAeD,EAAM;AAC3B,UAAIC,KAAA,QAAAA,EAAc,QAAQ,eAAe;AACvC,cAAMC,IAAYD,EAAa,QAAQ,YAAY;AACnD,QAAIE,EAAgBD,CAAS,KAC3BpB,EAAiBC,GAAUmB,CAAS;AAAA,MAExC;AAAA,IACF;AACA,aAASE,EAAqBJ,GAAkB;AAC9C,YAAMC,IAAeD,EAAM;AAC3B,UAAIC,KAAA,QAAAA,EAAc,QAAQ,eAAe;AACvC,cAAMC,IAAYD,EAAa,QAAQ,YAAY;AACnD,QAAIE,EAAgBD,CAAS,KAC3BN,EAASM,CAAS;AAAA,MAEtB;AAAA,IACF;AACA,aAASG,EAASL,GAAkB;AAClC,MAAAA,EAAM,eAAA;AAAA,IACR;AAEA,aAASM,EAAuCX,GAAyB;AACvE,UAAIA,EAAK,SAAS,SAASA,EAAK,SAAS,QAAQA,EAAK,SAAS;AAC7D,cAAM,IAAI,MAAM,gDAAgD;AAGlE,aAAOA;AAAA,IACT;AAEA,aAASY,EAAaC,GAAyB7B,GAAa8B,GAA+B;AACzF,MAAAD,EAAQ7B,CAAG,IAAI+B,EAAMD,CAA6B;AAAA,IACpD;2BAGEE,EA+FM,OAAA,MAAA;AAAA,MA9FJC,EAiEgBC,EAAAC,CAAA,GAAA;AAAA,QAhEN,OAAO7C,EAAA,MAAM;AAAA,QAAN,kBAAA8C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAA/C,EAAA,MAAM,UAAO+C;AAAA,QAC3B,gBAAY,CAAGC,MAAWA,EAAO;AAAA,QACjC,cAAYC,EAAAA,OAAO;AAAA,QACnB,sBAAoBA,EAAAA,OAAO;AAAA,QAC3B,oBAAkBA,EAAAA,OAAO;AAAA,QACzB,eAAW,CAAGD,MAAWA,EAAO,eAAU;AAAA,QAC1C,cAAqBrC,MAAK;AAAiB,UAAAA,EAAM,aAAU,CAAIA,EAAM;AAAA;QAKrE,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,MAAA;QAEN,gBAAW,MAAc,CAAA,GAAAmC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,YAAd,kBAAc,EAAA;AAAA,QAAA;QACzB,gBAAYI,EACrB,CAmCM,EApCmB,MAAAxB,GAAM,OAAAyB,QAAK;AAAA,UACpCC,EAmCM,OAAA;AAAA,YAlCH,OAAKC,EAAEJ,EAAAA,OAAO,YAAY;AAAA,YAC3B,UAAS;AAAA,YACR,SAAOlB,MAAUD,EAA0BqB,GAAOpB,CAAK;AAAA,YACvD,YAAUK;AAAA,UAAA;YAEXO,EAMaC,EAAAU,CAAA,GAAA;AAAA,cALV,eAAa5B,EAAK,SAAI;AAAA,cACtB,OAAK2B,EAAEJ,EAAAA,OAAO,WAAW;AAAA,cACzB,uBAAkB,CAAAF,MAAEzB,EAAgB6B,CAAK;AAAA,YAAA;yBAC3C,MAED,CAAA,GAAAL,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,kBAFC,gBAED,EAAA;AAAA,cAAA;;;oBACAJ,EAeWa,GAAA,MAAAC,EAfwB/B,EAAcC,CAAI,EAAE,SAAO,CAA5C+B,GAAGrC,YACnBsC,EAaEC,GAAA;AAAA,mBAdkEvC;AAAA,cAEjE,QAAQiB,EAAeZ,EAAcC,CAAI,EAAE,QAAQN,CAAS,CAAA;AAAA,cAC5D,SAASK,EAAcC,CAAI,EAAE;AAAA,cAC7B,kBAAgBxB,EAAA;AAAA,cAChB,qBAAmBC,EAAM;AAAA,cACzB,uBAAqBA,EAAM;AAAA,cAC3B,cAAY,EAAQA,EAAM;AAAA,cAC1B,WAASiB,MAAcK,EAAcC,CAAI,EAAE,QAAQ,SAAM;AAAA,cACzD,qBAAiB,CAAGkC,MAAOnC,EAAcC,CAAI,EAAE,OAAOkC;AAAA,cACtD,aAAS,MAAQzC,EAAsBgC,GAAO/B,CAAS;AAAA,cACvD,oBAAiCyC,MAAUvB,EAAab,EAAcC,CAAI,EAAE,SAASN,GAAWyC,CAAK;AAAA,YAAA;YAK/F1D,EAAM,kBAAjBuC,EAEM,OAAA;AAAA;cAFuB,OAAKW,EAAEJ,EAAAA,OAAO,QAAQ;AAAA,YAAA;cACjDG,EAA+B,aAA1B,wBAAoB,EAAA;AAAA,YAAA,iBAE3BM,EAEiBd,EAAAkB,CAAA,GAAA;AAAA;cAFM,MAAK;AAAA,cAAO,SAAK,CAAAf,MAAElC,EAAiBsC,GAAO/C,EAAA,KAAa;AAAA,YAAA;yBAAG,MAElF,CAAA,GAAA0C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,kBAFkF,gBAElF,EAAA;AAAA,cAAA;;;;;QAGO,cAAUI,EACnB,CAME,EAPqB,OAAAC,QAAK;AAAA,UAEpBhD,EAAM,wBAAwBgD,IAAQ3C,EAAA,EAAgB,SAAM,UADpEkD,EAMEK,GAAA;AAAA;YAJC,OAAKV,EAAEJ,EAAAA,OAAO,aAAa;AAAA,YAC3B,QAAQjD,EAAA,MAAM;AAAA,YACd,UAAUmD,MAAU3C,EAAA,EAAgB,SAAM;AAAA,YAC1C,cAAYoD,MAAO5D,QAAM,OAAO4D;AAAA,UAAA;;;;MAO/BzD,EAAM,6BADduD,EAyBgBd,EAAAC,CAAA,GAAA;AAAA;QAvBb,OAAOtC;AAAA,QACP,gBAAY,CAAGI,MAAUA,EAAM;AAAA,QAC/B,cAAYsC,EAAAA,OAAO;AAAA,QACnB,sBAAoBA,EAAAA,OAAO;AAAA,QAC3B,oBAAkBA,EAAAA,OAAO;AAAA,QACzB,eAAa,MAAA;AAAA,QACb,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QACjB,UAAS;AAAA,QACR,QAAMd;AAAA,QACN,YAAUC;AAAA,MAAA;QAEA,gBAAW,MAAY,CAAA,GAAAU,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,YAAZ,gBAAY,EAAA;AAAA,QAAA;QACvB,kBACT,MAEM;AAAA,UAFK5C,EAAA,kBAAXwC,EAEM,OAAA;AAAA;YAFiB,OAAKW,EAAEJ,EAAAA,OAAO,QAAQ;AAAA,UAAA;YAC3CG,EAA+B,aAA1B,wBAAoB,EAAA;AAAA,UAAA,WAE3BY,EAEOC,2CAFP,MAEO;AAAA,YADLtB,EAAyFC,EAAAkB,CAAA,GAAA;AAAA,cAAzE,MAAK;AAAA,cAAO,SAAKhB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEpB,EAASvB,EAAA,KAAa;AAAA,YAAA;yBAAG,MAAY,CAAA,GAAA0C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,kBAAZ,gBAAY,EAAA;AAAA,cAAA;;;;;;;;;;"}
1
+ {"version":3,"file":"PlAdvancedFilter.vue2.js","sources":["../../../src/components/PlAdvancedFilter/PlAdvancedFilter.vue"],"sourcesContent":["<script lang=\"ts\" setup generic=\"T extends RootFilter\">\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 {\n CommonFilter,\n EditableFilter,\n NodeFilter,\n PlAdvancedFilterColumnId,\n RootFilter,\n SourceOptionInfo,\n} from \"./types\";\nimport { createNewGroup, getNewId, isValidColumnId } from \"./utils\";\n\nconst model = defineModel<T>(\"filters\", { required: true });\n\nconst props = withDefaults(\n 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: {\n columnId: PlAdvancedFilterColumnId;\n axisIdx?: number;\n searchStr: string;\n searchType: \"value\" | \"label\";\n }) => ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;\n }>(),\n {\n supportedFilters: () => SUPPORTED_FILTER_TYPES,\n getSuggestModel: undefined,\n\n enableDnd: false,\n enableAddGroupButton: false,\n },\n);\n\nconst firstColumnId = computed(() => props.items[0]?.id);\nconst emptyGroup: NodeFilter[] = [\n {\n id: -1,\n type: \"and\",\n filters: [],\n isExpanded: true,\n },\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\"\n ? (item.filter as Exclude<T, { type: \"not\" }>)\n : (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 :item-class=\"$style.filterGroup\"\n :item-class-content=\"$style.filterGroupContent\"\n :item-class-title=\"$style.filterGroupTitle\"\n :is-expanded=\"(filter) => filter.isExpanded === true\"\n :on-expand=\"\n (group) => {\n group.isExpanded = !group.isExpanded;\n }\n \"\n :disableDragging=\"false\"\n :disableRemoving=\"false\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n >\n <template #item-title> Filter group </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=\"\n (value) => updateFilter(getNotContent(item).filters, filterIdx, value)\n \"\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 :is-expanded=\"() => true\"\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)\"> Add filter </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,7 +1,7 @@
1
- import { RootFilter, SourceOptionInfo, PlAdvancedFilterColumnId } from './types.ts';
1
+ import { RootFilter, SourceOptionInfo, PlAdvancedFilterColumnId, RequiredMeta } from './types.ts';
2
2
  export { default as PlAdvancedFilter } from './PlAdvancedFilter.vue';
3
3
  export declare const PlAdvancedFilterSupportedFilters: ("isNA" | "isNotNA" | "patternEquals" | "patternNotEquals" | "patternContainSubsequence" | "patternNotContainSubsequence" | "patternMatchesRegularExpression" | "patternFuzzyContainSubsequence" | "inSet" | "notInSet" | "topN" | "bottomN" | "equal" | "notEqual" | "lessThan" | "greaterThan" | "lessThanOrEqual" | "greaterThanOrEqual")[];
4
4
  export type PlAdvancedFilterItem = SourceOptionInfo;
5
- export type PlAdvancedFilter = RootFilter;
5
+ export type PlAdvancedFilter<Meta extends RequiredMeta = RequiredMeta> = RootFilter<Meta>;
6
6
  export { PlAdvancedFilterColumnId };
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PlAdvancedFilter/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEzF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,eAAO,MAAM,gCAAgC,gVAAyB,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACpD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PlAdvancedFilter/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,eAAO,MAAM,gCAAgC,gVAAyB,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACpD,MAAM,MAAM,gBAAgB,CAAC,IAAI,SAAS,YAAY,GAAG,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/PlAdvancedFilter/index.ts"],"sourcesContent":["import { SUPPORTED_FILTER_TYPES } from \"./constants.ts\";\nimport type { RootFilter, SourceOptionInfo, PlAdvancedFilterColumnId } from \"./types.ts\";\n\nexport { default as PlAdvancedFilter } from \"./PlAdvancedFilter.vue\";\nexport const PlAdvancedFilterSupportedFilters = SUPPORTED_FILTER_TYPES;\nexport type PlAdvancedFilterItem = SourceOptionInfo;\nexport type PlAdvancedFilter = RootFilter;\nexport { PlAdvancedFilterColumnId };\n"],"names":["PlAdvancedFilterSupportedFilters","SUPPORTED_FILTER_TYPES"],"mappings":";;;;AAIO,MAAMA,IAAmCC;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/PlAdvancedFilter/index.ts"],"sourcesContent":["import { SUPPORTED_FILTER_TYPES } from \"./constants.ts\";\nimport type {\n RootFilter,\n SourceOptionInfo,\n PlAdvancedFilterColumnId,\n RequiredMeta,\n} from \"./types.ts\";\n\nexport { default as PlAdvancedFilter } from \"./PlAdvancedFilter.vue\";\nexport const PlAdvancedFilterSupportedFilters = SUPPORTED_FILTER_TYPES;\nexport type PlAdvancedFilterItem = SourceOptionInfo;\nexport type PlAdvancedFilter<Meta extends RequiredMeta = RequiredMeta> = RootFilter<Meta>;\nexport { PlAdvancedFilterColumnId };\n"],"names":["PlAdvancedFilterSupportedFilters","SUPPORTED_FILTER_TYPES"],"mappings":";;;;AASO,MAAMA,IAAmCC;"}