@platforma-sdk/ui-vue 1.40.1 → 1.40.2

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.
@@ -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.40.1 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.40.2 build /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > vite build
5
5
 
6
6
  vite v6.3.5 building for production...
@@ -10,7 +10,7 @@ rendering chunks...
10
10
 
11
11
  [vite:dts] Start generate declaration files...
12
12
  computing gzip size...
13
- [vite:dts] Declaration files built in 5060ms.
13
+ [vite:dts] Declaration files built in 4642ms.
14
14
 
15
15
  dist/_virtual/re.js  0.08 kB │ gzip: 0.10 kB │ map: 0.09 kB
16
16
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js  0.09 kB │ gzip: 0.10 kB │ map: 0.32 kB
@@ -45,12 +45,12 @@ computing gzip size...
45
45
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js  0.12 kB │ gzip: 0.12 kB │ map: 0.40 kB
46
46
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js  0.12 kB │ gzip: 0.12 kB │ map: 0.40 kB
47
47
  dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
48
- dist/components/PlTableFilters/PlTableAddFilterV2.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
49
48
  dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
49
+ dist/components/PlTableFilters/PlTableAddFilterV2.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
50
50
  dist/plugins/Monetization/MonetizationSidebar.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
51
51
  dist/components/PlTableFilters/PlTableFilterEntryV2.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
52
- dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
53
52
  dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
53
+ dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
54
54
  dist/lib/ui/uikit/dist/components/PlRadio/keys.js  0.13 kB │ gzip: 0.13 kB │ map: 0.46 kB
55
55
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js  0.13 kB │ gzip: 0.13 kB │ map: 0.49 kB
56
56
  dist/components/ValueOrErrorsComponent.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
@@ -208,8 +208,8 @@ computing gzip size...
208
208
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_text-align-left.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.52 kB
209
209
  dist/components/PlAgDataTable/PlAgDataTableV2.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
210
210
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_arrow-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.51 kB
211
- dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js  0.30 kB │ gzip: 0.23 kB │ map: 0.65 kB
212
211
  dist/plugins/Monetization/UserCabinetCard.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
212
+ dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js  0.30 kB │ gzip: 0.23 kB │ map: 0.65 kB
213
213
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_chevron-right.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.52 kB
214
214
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/16_arrow-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.51 kB
215
215
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/16_link-arrow.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.51 kB
@@ -224,8 +224,8 @@ computing gzip size...
224
224
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/to-comparators.js  0.30 kB │ gzip: 0.23 kB │ map: 0.78 kB
225
225
  dist/lib/ui/uikit/dist/components/PlChartStackedBar/PlChartStackedBar.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
226
226
  dist/_virtual/canonicalize.js  0.30 kB │ gzip: 0.22 kB │ map: 0.10 kB
227
- dist/lib/ui/uikit/dist/_virtual/canonicalize.js  0.30 kB │ gzip: 0.22 kB │ map: 0.10 kB
228
227
  dist/lib/ui/uikit/dist/components/PlElementList/PlElementListItem.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
228
+ dist/lib/ui/uikit/dist/_virtual/canonicalize.js  0.30 kB │ gzip: 0.22 kB │ map: 0.10 kB
229
229
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/16_arrow-up.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.51 kB
230
230
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_linetype-twodash.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.53 kB
231
231
  dist/lib/ui/uikit/dist/components/PlChartStackedBar/StackedRowCompact.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
@@ -453,12 +453,12 @@ computing gzip size...
453
453
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js  0.55 kB │ gzip: 0.37 kB │ map: 1.48 kB
454
454
  dist/lib/ui/uikit/dist/utils/DoubleContour.vue.js  0.55 kB │ gzip: 0.37 kB │ map: 0.77 kB
455
455
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_paper-clip.svg.js  0.55 kB │ gzip: 0.33 kB │ map: 0.76 kB
456
- dist/lib/ui/uikit/dist/composition/computedCached.js  0.55 kB │ gzip: 0.32 kB │ map: 2.19 kB
457
456
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/16_paper-clip.svg.js  0.55 kB │ gzip: 0.35 kB │ map: 0.77 kB
458
457
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sort.js  0.55 kB │ gzip: 0.36 kB │ map: 1.73 kB
459
458
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectAll.js  0.55 kB │ gzip: 0.34 kB │ map: 1.69 kB
460
459
  dist/components/PlMultiSequenceAlignment/migrations.js  0.56 kB │ gzip: 0.34 kB │ map: 1.95 kB
461
460
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js  0.56 kB │ gzip: 0.26 kB │ map: 0.89 kB
461
+ dist/lib/ui/uikit/dist/composition/computedCached.js  0.56 kB │ gzip: 0.33 kB │ map: 2.42 kB
462
462
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/16_settings.svg.js  0.56 kB │ gzip: 0.33 kB │ map: 0.77 kB
463
463
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_frame-type-none.svg.js  0.56 kB │ gzip: 0.27 kB │ map: 0.78 kB
464
464
  dist/lib/ui/uikit/dist/components/DataTable/ColumnCaret.vue.js  0.56 kB │ gzip: 0.37 kB │ map: 0.82 kB
@@ -571,6 +571,7 @@ computing gzip size...
571
571
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_color.svg.js  0.81 kB │ gzip: 0.44 kB │ map: 1.05 kB
572
572
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_show.svg.js  0.81 kB │ gzip: 0.49 kB │ map: 1.02 kB
573
573
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_cloud-offline.svg.js  0.81 kB │ gzip: 0.51 kB │ map: 1.04 kB
574
+ dist/lib/ui/uikit/dist/composition/watchCached.js  0.81 kB │ gzip: 0.45 kB │ map: 2.48 kB
574
575
  dist/components/BlockLoader.vue.js  0.82 kB │ gzip: 0.48 kB │ map: 1.12 kB
575
576
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_cookie.svg.js  0.82 kB │ gzip: 0.48 kB │ map: 1.03 kB
576
577
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_bar-cross.svg.js  0.82 kB │ gzip: 0.37 kB │ map: 1.11 kB
@@ -581,7 +582,6 @@ computing gzip size...
581
582
  dist/lib/ui/uikit/dist/components/TabItem.vue.js  0.84 kB │ gzip: 0.48 kB │ map: 1.28 kB
582
583
  dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.js  0.84 kB │ gzip: 0.47 kB │ map: 1.25 kB
583
584
  dist/lib/ui/uikit/dist/components/PlFileDialog/remote.js  0.84 kB │ gzip: 0.48 kB │ map: 2.30 kB
584
- dist/lib/ui/uikit/dist/composition/watchCached.js  0.85 kB │ gzip: 0.45 kB │ map: 2.16 kB
585
585
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_skatterplot.svg.js  0.85 kB │ gzip: 0.37 kB │ map: 1.09 kB
586
586
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_boxplot-jitter.svg.js  0.85 kB │ gzip: 0.38 kB │ map: 1.09 kB
587
587
  dist/components/PlAgDataTable/sources/focus-row.js  0.86 kB │ gzip: 0.49 kB │ map: 3.09 kB
@@ -711,7 +711,6 @@ computing gzip size...
711
711
  dist/lib/ui/uikit/dist/components/PlSearchField/PlSearchField.vue3.js  1.53 kB │ gzip: 0.64 kB │ map: 0.12 kB
712
712
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/outside.js  1.55 kB │ gzip: 0.65 kB │ map: 3.99 kB
713
713
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_social-github.svg.js  1.55 kB │ gzip: 0.87 kB │ map: 1.77 kB
714
- dist/components/PlAgDataTable/types.js  1.55 kB │ gzip: 0.53 kB │ map: 9.75 kB
715
714
  dist/lib/ui/uikit/dist/components/PlRadio/PlRadio.vue3.js  1.56 kB │ gzip: 0.76 kB │ map: 0.11 kB
716
715
  dist/lib/ui/uikit/dist/components/contextMenu/Menu.vue.js  1.58 kB │ gzip: 0.77 kB │ map: 0.11 kB
717
716
  dist/components/PlAgCsvExporter/export-csv.js  1.60 kB │ gzip: 0.73 kB │ map: 3.74 kB
@@ -723,6 +722,7 @@ computing gzip size...
723
722
  dist/lib/ui/uikit/dist/base/BtnBase.vue.js  1.63 kB │ gzip: 0.74 kB │ map: 1.80 kB
724
723
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js  1.63 kB │ gzip: 0.68 kB │ map: 4.38 kB
725
724
  dist/lib/ui/uikit/dist/components/PlFileDialog/Shortcuts.vue2.js  1.63 kB │ gzip: 0.60 kB │ map: 0.14 kB
725
+ dist/components/PlAgDataTable/types.js  1.63 kB │ gzip: 0.57 kB │ map: 9.86 kB
726
726
  dist/plugins/Monetization/RunStatus.vue3.js  1.63 kB │ gzip: 0.77 kB │ map: 0.11 kB
727
727
  dist/lib/ui/uikit/dist/components/PlDropdownRef/PlDropdownRef.vue.js  1.64 kB │ gzip: 0.74 kB │ map: 3.45 kB
728
728
  dist/aggrid.js  1.66 kB │ gzip: 0.79 kB │ map: 3.09 kB
@@ -795,8 +795,8 @@ computing gzip size...
795
795
  dist/lib/ui/uikit/dist/colors/palette.js  3.25 kB │ gzip: 1.22 kB │ map: 7.00 kB
796
796
  dist/lib/ui/uikit/dist/components/PlEditableTitle/pl-editable-title.module.scss.js  3.31 kB │ gzip: 1.18 kB │ map: 0.13 kB
797
797
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js  3.32 kB │ gzip: 1.34 kB │ map: 4.05 kB
798
+ dist/components/PlAgDataTable/sources/table-state-v2.js  3.33 kB │ gzip: 1.16 kB │ map: 9.95 kB
798
799
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.js  3.34 kB │ gzip: 1.30 kB │ map: 4.05 kB
799
- dist/components/PlAgDataTable/sources/table-state-v2.js  3.35 kB │ gzip: 1.17 kB │ map: 9.98 kB
800
800
  dist/components/PlTableFilters/PlTableAddFilterV2.vue.js  3.42 kB │ gzip: 1.28 kB │ map: 3.95 kB
801
801
  dist/lib/ui/uikit/dist/generated/icons-24.js  3.43 kB │ gzip: 1.10 kB │ map: 5.86 kB
802
802
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/axis.js  3.49 kB │ gzip: 1.30 kB │ map: 10.47 kB
@@ -869,7 +869,7 @@ computing gzip size...
869
869
  dist/components/PlAgRowNumHeader.vue.js  44.60 kB │ gzip: 29.24 kB │ map: 3.70 kB
870
870
  dist/lib/ui/uikit/dist/components/PlFileDialog/pl-file-dialog.module.scss.js  47.73 kB │ gzip: 16.34 kB │ map: 0.14 kB
871
871
  dist/lib/ui/uikit/dist/sdk/model/dist/index.js  48.66 kB │ gzip: 12.57 kB │ map: 170.61 kB
872
- dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js  48.67 kB │ gzip: 30.56 kB │ map: 28.99 kB
872
+ dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js  48.67 kB │ gzip: 30.57 kB │ map: 28.99 kB
873
873
  dist/AgGridVue/useAgGridOptions.js  49.30 kB │ gzip: 30.16 kB │ map: 16.35 kB
874
874
  dist/lib/ui/uikit/dist/node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.js  50.21 kB │ gzip: 14.79 kB │ map: 181.68 kB
875
875
  dist/sdk/model/dist/index.js  51.26 kB │ gzip: 13.38 kB │ map: 214.18 kB
@@ -879,4 +879,4 @@ computing gzip size...
879
879
  dist/lib/ui/uikit/dist/index.js 497.61 kB │ gzip: 191.71 kB │ map: 0.18 kB
880
880
  dist/lib/ui/uikit/dist/components/PlSlideModal/PlSlideModal.vue.js 601.75 kB │ gzip: 204.47 kB │ map: 0.23 kB
881
881
  dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js 603.08 kB │ gzip: 205.08 kB │ map: 0.28 kB
882
- ✓ built in 8.93s
882
+ ✓ built in 8.48s
@@ -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.40.1 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.40.2 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > vue-tsc --noEmit --project ./tsconfig.json
5
5
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.40.2
4
+
5
+ ### Patch Changes
6
+
7
+ - d6334f9: Adopt PlAgDataTableV2 for v2api in desktop
8
+
3
9
  ## 1.40.1
4
10
 
5
11
  ### Patch Changes
@@ -12,7 +12,7 @@ import re from "./PlAgOverlayNoRows.vue.js";
12
12
  import ne from "./PlAgRowCount.vue.js";
13
13
  import ue from "./PlAgDataTableSheets.vue.js";
14
14
  import { makeOnceTracker as ie, focusRow as de } from "./sources/focus-row.js";
15
- import { PlAgDataTableRowNumberColId as q, autoSizeRowNumberColumn as ce } from "./sources/row-number.js";
15
+ import { PlAgDataTableRowNumberColId as U, autoSizeRowNumberColumn as ce } from "./sources/row-number.js";
16
16
  import { calculateGridOptions as me } from "./sources/table-source-v2.js";
17
17
  import { useTableState as ve } from "./sources/table-state-v2.js";
18
18
  import fe from "../PlTableFilters/PlTableFiltersV2.vue.js";
@@ -43,7 +43,7 @@ const Ke = /* @__PURE__ */ Y({
43
43
  selectionLabeledModifiers: {}
44
44
  }),
45
45
  emits: /* @__PURE__ */ K(["rowDoubleClicked", "cellButtonClicked"], ["update:modelValue", "update:selection", "update:selectionLabeled"]),
46
- setup(b, { expose: U, emit: J }) {
46
+ setup(b, { expose: q, emit: J }) {
47
47
  const H = I(b, "modelValue"), n = I(b, "selection"), u = I(b, "selectionLabeled"), d = b, { settings: p } = Z(d), L = J, { gridState: y, sheetsState: w, filtersState: O } = ve(H, p), Q = T(() => {
48
48
  const e = { ...p.value };
49
49
  return e.sourceId !== null ? {
@@ -162,7 +162,7 @@ const Ke = /* @__PURE__ */ Y({
162
162
  e.state
163
163
  ), e.api.autoSizeColumns(
164
164
  e.api.getAllDisplayedColumns().filter(
165
- (t) => t.getColId() !== q
165
+ (t) => t.getColId() !== U
166
166
  )
167
167
  );
168
168
  },
@@ -208,7 +208,7 @@ const Ke = /* @__PURE__ */ Y({
208
208
  cellRendererSelector: t ?? void 0
209
209
  });
210
210
  }
211
- ), U({
211
+ ), q({
212
212
  focusRow: (e) => de(
213
213
  (t) => {
214
214
  var o;
@@ -228,7 +228,7 @@ const Ke = /* @__PURE__ */ Y({
228
228
  selectedLabeledKeys: []
229
229
  });
230
230
  else {
231
- const o = (l) => !("children" in l), a = ((e == null ? void 0 : e.filter(o)) ?? []).map((l) => l.colId).filter((l) => l !== void 0).filter((l) => l !== q).map((l) => V(l)) ?? [];
231
+ const o = (l) => !("children" in l), a = ((e == null ? void 0 : e.filter(o)) ?? []).map((l) => l.colId).filter((l) => l !== void 0).filter((l) => l !== U).map((l) => V(l)) ?? [];
232
232
  if (D.value = a.map((l) => l.labeled), n.value) {
233
233
  const l = a.reduce((s, v) => (v.source.type === "axis" && s.push(v.source.spec), s), []);
234
234
  n.value = {
@@ -1 +1 @@
1
- {"version":3,"file":"table-state-v2.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAgDataTable/sources/table-state-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAO5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,mBAAmB,EACzB,MAAM,KAAK,CAAC;AACb,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAuFlB,wBAAgB,aAAa,CAC3B,sBAAsB,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAC/C,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,GACnC;IACC,SAAS,EAAE,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACzD,WAAW,EAAE,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC1D,YAAY,EAAE,mBAAmB,CAAC,sBAAsB,EAAE,CAAC,CAAC;CAC7D,CAuGF"}
1
+ {"version":3,"file":"table-state-v2.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAgDataTable/sources/table-state-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAO5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,mBAAmB,EACzB,MAAM,KAAK,CAAC;AACb,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAuFlB,wBAAgB,aAAa,CAC3B,sBAAsB,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAC/C,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,GACnC;IACC,SAAS,EAAE,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACzD,WAAW,EAAE,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC1D,YAAY,EAAE,mBAAmB,CAAC,sBAAsB,EAAE,CAAC,CAAC;CAC7D,CAsGF"}
@@ -61,8 +61,7 @@ function c(e) {
61
61
  function E(e, o) {
62
62
  const a = b({
63
63
  get: () => v(e.value),
64
- set: (t) => e.value = t,
65
- deep: !0
64
+ set: (t) => e.value = t
66
65
  }), s = n({
67
66
  get: () => {
68
67
  const t = P(), r = o.value.sourceId;
@@ -1 +1 @@
1
- {"version":3,"file":"table-state-v2.js","sources":["../../../../src/components/PlAgDataTable/sources/table-state-v2.ts"],"sourcesContent":["import {\n makeDefaultPTableParams,\n parseJson,\n upgradePlDataTableStateV2,\n type PlDataTableGridStateCore,\n type PlDataTableSheetState,\n type PlDataTableStateV2,\n type PlDataTableFilterState,\n type PlDataTableStateV2CacheEntry,\n type PlDataTableStateV2Normalized,\n type PObjectId,\n type PTableParamsV2,\n type PTableRecordFilter,\n type PTableSorting,\n} from '@platforma-sdk/model';\nimport {\n computed,\n watch,\n type Ref,\n type WritableComputedRef,\n} from 'vue';\nimport type {\n PlDataTableSettingsV2,\n} from '../types';\nimport { isJsonEqual } from '@milaboratories/helpers';\nimport { makePredicate } from '../../PlTableFilters/filters_logic';\nimport { computedCached } from '@milaboratories/uikit';\n\ntype PlDataTableStateV2CacheEntryNullable = PlDataTableStateV2CacheEntry | {\n sourceId: null;\n gridState: Record<string, never>;\n sheetsState: [];\n filtersState: [];\n};\n\nfunction makeDefaultState(): PlDataTableStateV2CacheEntryNullable {\n return {\n sourceId: null,\n gridState: {},\n sheetsState: [],\n filtersState: [],\n };\n}\n\nfunction getHiddenColIds(state: PlDataTableGridStateCore['columnVisibility']): PObjectId[] | null {\n return state?.hiddenColIds\n ?.map(parseJson)\n .reduce((acc, c) => {\n if (c.source.type === 'column') {\n acc.push(c.source.id);\n }\n return acc;\n }, [] as PObjectId[])\n ?? null;\n}\n\nfunction makePartitionFilters(sheetsState: PlDataTableSheetState[]): PTableRecordFilter[] {\n return sheetsState.map((s) => ({\n type: 'bySingleColumnV2',\n column: {\n type: 'axis',\n id: s.axisId,\n },\n predicate: {\n operator: 'Equal',\n reference: s.value,\n },\n }));\n}\n\nfunction makeFilters(columnsState: PlDataTableFilterState[]): PTableRecordFilter[] {\n return columnsState\n .reduce((acc, s) => {\n if (!s.filter || s.filter.disabled) {\n return acc;\n }\n acc.push({\n type: 'bySingleColumnV2',\n column: s.id,\n predicate: makePredicate(s.alphabetic, s.filter.value),\n });\n return acc;\n }, [] as PTableRecordFilter[]);\n}\n\nfunction makeSorting(state: PlDataTableGridStateCore['sort']): PTableSorting[] {\n return (\n state?.sortModel.map((item) => {\n const { spec: _, ...column } = parseJson(\n item.colId,\n ).labeled;\n return {\n column,\n ascending: item.sort === 'asc',\n naAndAbsentAreLeastValues: item.sort === 'asc',\n };\n }) ?? []\n );\n}\n\nfunction makePTableParams(state: PlDataTableStateV2CacheEntry): PTableParamsV2 {\n return {\n sourceId: state.sourceId,\n hiddenColIds: getHiddenColIds(state.gridState.columnVisibility),\n partitionFilters: makePartitionFilters(state.sheetsState),\n filters: makeFilters(state.filtersState),\n sorting: makeSorting(state.gridState.sort),\n };\n}\n\nexport function useTableState(\n tableStateDenormalized: Ref<PlDataTableStateV2>,\n settings: Ref<PlDataTableSettingsV2>,\n): {\n gridState: WritableComputedRef<PlDataTableGridStateCore>;\n sheetsState: WritableComputedRef<PlDataTableSheetState[]>;\n filtersState: WritableComputedRef<PlDataTableFilterState[]>;\n } {\n const tableStateNormalized = computedCached<PlDataTableStateV2Normalized>({\n get: () => upgradePlDataTableStateV2(tableStateDenormalized.value),\n set: (newState) => tableStateDenormalized.value = newState,\n deep: true,\n });\n\n const tableState = computed<PlDataTableStateV2CacheEntryNullable>({\n get: () => {\n const defaultState = makeDefaultState();\n\n const sourceId = settings.value.sourceId;\n if (!sourceId) return defaultState;\n\n const cachedState = tableStateNormalized.value.stateCache\n .find((entry) => entry.sourceId === sourceId);\n if (!cachedState) return {\n ...defaultState,\n sourceId,\n };\n\n return cachedState;\n },\n set: (state) => {\n const oldState = { ...tableStateNormalized.value };\n const newState: PlDataTableStateV2Normalized = {\n ...oldState,\n pTableParams: makeDefaultPTableParams(),\n };\n\n if (state.sourceId) {\n newState.pTableParams = makePTableParams(state);\n\n const stateIdx = newState.stateCache.findIndex((entry) => entry.sourceId === state.sourceId);\n if (stateIdx !== -1) {\n newState.stateCache[stateIdx] = state;\n } else {\n const CacheDepth = 5;\n newState.stateCache.push(state);\n newState.stateCache = newState.stateCache.slice(-CacheDepth);\n }\n }\n\n tableStateNormalized.value = newState;\n },\n });\n\n // Update pTableParams when sourceId changes\n watch(\n () => tableState.value,\n (state) => {\n const newParams = state.sourceId ? makePTableParams(state) : makeDefaultPTableParams();\n const oldParams = tableStateNormalized.value.pTableParams;\n if (!isJsonEqual(newParams, oldParams)) {\n tableStateNormalized.value = {\n ...tableStateNormalized.value,\n pTableParams: newParams,\n };\n }\n },\n { deep: true },\n );\n\n const gridState = computed<PlDataTableGridStateCore>({\n get: () => tableState.value.gridState,\n set: (gridState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n gridState,\n };\n }\n },\n });\n\n const sheetsState = computed<PlDataTableSheetState[]>({\n get: () => tableState.value.sheetsState,\n set: (sheetsState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n sheetsState,\n };\n }\n },\n });\n\n const filtersState = computed<PlDataTableFilterState[]>({\n get: () => tableState.value.filtersState,\n set: (filtersState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n filtersState,\n };\n }\n },\n });\n\n return { gridState, sheetsState, filtersState };\n}\n"],"names":["makeDefaultState","getHiddenColIds","state","_a","parseJson","acc","c","makePartitionFilters","sheetsState","s","makeFilters","columnsState","makePredicate","makeSorting","item","_","column","makePTableParams","useTableState","tableStateDenormalized","settings","tableStateNormalized","computedCached","upgradePlDataTableStateV2","newState","tableState","computed","defaultState","sourceId","cachedState","entry","makeDefaultPTableParams","stateIdx","watch","newParams","oldParams","isJsonEqual","gridState","oldState","filtersState"],"mappings":"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"}
1
+ {"version":3,"file":"table-state-v2.js","sources":["../../../../src/components/PlAgDataTable/sources/table-state-v2.ts"],"sourcesContent":["import {\n makeDefaultPTableParams,\n parseJson,\n upgradePlDataTableStateV2,\n type PlDataTableGridStateCore,\n type PlDataTableSheetState,\n type PlDataTableStateV2,\n type PlDataTableFilterState,\n type PlDataTableStateV2CacheEntry,\n type PlDataTableStateV2Normalized,\n type PObjectId,\n type PTableParamsV2,\n type PTableRecordFilter,\n type PTableSorting,\n} from '@platforma-sdk/model';\nimport {\n computed,\n watch,\n type Ref,\n type WritableComputedRef,\n} from 'vue';\nimport type {\n PlDataTableSettingsV2,\n} from '../types';\nimport { isJsonEqual } from '@milaboratories/helpers';\nimport { makePredicate } from '../../PlTableFilters/filters_logic';\nimport { computedCached } from '@milaboratories/uikit';\n\ntype PlDataTableStateV2CacheEntryNullable = PlDataTableStateV2CacheEntry | {\n sourceId: null;\n gridState: Record<string, never>;\n sheetsState: [];\n filtersState: [];\n};\n\nfunction makeDefaultState(): PlDataTableStateV2CacheEntryNullable {\n return {\n sourceId: null,\n gridState: {},\n sheetsState: [],\n filtersState: [],\n };\n}\n\nfunction getHiddenColIds(state: PlDataTableGridStateCore['columnVisibility']): PObjectId[] | null {\n return state?.hiddenColIds\n ?.map(parseJson)\n .reduce((acc, c) => {\n if (c.source.type === 'column') {\n acc.push(c.source.id);\n }\n return acc;\n }, [] as PObjectId[])\n ?? null;\n}\n\nfunction makePartitionFilters(sheetsState: PlDataTableSheetState[]): PTableRecordFilter[] {\n return sheetsState.map((s) => ({\n type: 'bySingleColumnV2',\n column: {\n type: 'axis',\n id: s.axisId,\n },\n predicate: {\n operator: 'Equal',\n reference: s.value,\n },\n }));\n}\n\nfunction makeFilters(columnsState: PlDataTableFilterState[]): PTableRecordFilter[] {\n return columnsState\n .reduce((acc, s) => {\n if (!s.filter || s.filter.disabled) {\n return acc;\n }\n acc.push({\n type: 'bySingleColumnV2',\n column: s.id,\n predicate: makePredicate(s.alphabetic, s.filter.value),\n });\n return acc;\n }, [] as PTableRecordFilter[]);\n}\n\nfunction makeSorting(state: PlDataTableGridStateCore['sort']): PTableSorting[] {\n return (\n state?.sortModel.map((item) => {\n const { spec: _, ...column } = parseJson(\n item.colId,\n ).labeled;\n return {\n column,\n ascending: item.sort === 'asc',\n naAndAbsentAreLeastValues: item.sort === 'asc',\n };\n }) ?? []\n );\n}\n\nfunction makePTableParams(state: PlDataTableStateV2CacheEntry): PTableParamsV2 {\n return {\n sourceId: state.sourceId,\n hiddenColIds: getHiddenColIds(state.gridState.columnVisibility),\n partitionFilters: makePartitionFilters(state.sheetsState),\n filters: makeFilters(state.filtersState),\n sorting: makeSorting(state.gridState.sort),\n };\n}\n\nexport function useTableState(\n tableStateDenormalized: Ref<PlDataTableStateV2>,\n settings: Ref<PlDataTableSettingsV2>,\n): {\n gridState: WritableComputedRef<PlDataTableGridStateCore>;\n sheetsState: WritableComputedRef<PlDataTableSheetState[]>;\n filtersState: WritableComputedRef<PlDataTableFilterState[]>;\n } {\n const tableStateNormalized = computedCached<PlDataTableStateV2Normalized>({\n get: () => upgradePlDataTableStateV2(tableStateDenormalized.value),\n set: (newState) => tableStateDenormalized.value = newState,\n });\n\n const tableState = computed<PlDataTableStateV2CacheEntryNullable>({\n get: () => {\n const defaultState = makeDefaultState();\n\n const sourceId = settings.value.sourceId;\n if (!sourceId) return defaultState;\n\n const cachedState = tableStateNormalized.value.stateCache\n .find((entry) => entry.sourceId === sourceId);\n if (!cachedState) return {\n ...defaultState,\n sourceId,\n };\n\n return cachedState;\n },\n set: (state) => {\n const oldState = { ...tableStateNormalized.value };\n const newState: PlDataTableStateV2Normalized = {\n ...oldState,\n pTableParams: makeDefaultPTableParams(),\n };\n\n if (state.sourceId) {\n newState.pTableParams = makePTableParams(state);\n\n const stateIdx = newState.stateCache.findIndex((entry) => entry.sourceId === state.sourceId);\n if (stateIdx !== -1) {\n newState.stateCache[stateIdx] = state;\n } else {\n const CacheDepth = 5;\n newState.stateCache.push(state);\n newState.stateCache = newState.stateCache.slice(-CacheDepth);\n }\n }\n\n tableStateNormalized.value = newState;\n },\n });\n\n // Update pTableParams when sourceId changes\n watch(\n () => tableState.value,\n (state) => {\n const newParams = state.sourceId ? makePTableParams(state) : makeDefaultPTableParams();\n const oldParams = tableStateNormalized.value.pTableParams;\n if (!isJsonEqual(newParams, oldParams)) {\n tableStateNormalized.value = {\n ...tableStateNormalized.value,\n pTableParams: newParams,\n };\n }\n },\n { deep: true },\n );\n\n const gridState = computed<PlDataTableGridStateCore>({\n get: () => tableState.value.gridState,\n set: (gridState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n gridState,\n };\n }\n },\n });\n\n const sheetsState = computed<PlDataTableSheetState[]>({\n get: () => tableState.value.sheetsState,\n set: (sheetsState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n sheetsState,\n };\n }\n },\n });\n\n const filtersState = computed<PlDataTableFilterState[]>({\n get: () => tableState.value.filtersState,\n set: (filtersState) => {\n const oldState = tableState.value;\n if (oldState.sourceId) {\n tableState.value = {\n ...oldState,\n filtersState,\n };\n }\n },\n });\n\n return { gridState, sheetsState, filtersState };\n}\n"],"names":["makeDefaultState","getHiddenColIds","state","_a","parseJson","acc","c","makePartitionFilters","sheetsState","s","makeFilters","columnsState","makePredicate","makeSorting","item","_","column","makePTableParams","useTableState","tableStateDenormalized","settings","tableStateNormalized","computedCached","upgradePlDataTableStateV2","newState","tableState","computed","defaultState","sourceId","cachedState","entry","makeDefaultPTableParams","stateIdx","watch","newParams","oldParams","isJsonEqual","gridState","oldState","filtersState"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgDataTable/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgDataTable/types.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,26 @@
1
- import { computed as n, toValue as l } from "vue";
2
- import u from "../../_virtual/canonicalize.js";
3
- function d(r) {
4
- const o = r.filtersConfig, t = typeof o == "function" ? (e) => {
1
+ import { computed as f, toValue as l } from "vue";
2
+ import o from "../../_virtual/canonicalize.js";
3
+ import { deepClone as c } from "../../lib/util/helpers/dist/index.js";
4
+ function m(s) {
5
+ const u = s.filtersConfig, t = typeof u == "function" ? (e) => {
5
6
  try {
6
- return o({
7
+ return u({
7
8
  sourceId: JSON.parse(e.sourceId),
8
9
  column: e.column
9
10
  });
10
- } catch (s) {
11
- return console.error(`filtersConfig failed for sourceId: ${e.sourceId}, column: ${JSON.stringify(e.column)} - using default config`, s), {};
11
+ } catch (r) {
12
+ return console.error(`filtersConfig failed for sourceId: ${e.sourceId}, column: ${JSON.stringify(e.column)} - using default config`, r), {};
12
13
  }
13
14
  } : () => ({});
14
- return n(() => {
15
- const e = l(r.model);
16
- if ("sourceId" in r) {
17
- const s = l(r.sourceId);
18
- if (r.sheets) {
19
- const c = l(r.sheets);
20
- return s && c ? {
21
- sourceId: u(s),
22
- sheets: c,
15
+ return f(() => {
16
+ const e = l(s.model);
17
+ if ("sourceId" in s) {
18
+ const r = c(l(s.sourceId));
19
+ if (s.sheets) {
20
+ const n = c(l(s.sheets));
21
+ return r && n ? {
22
+ sourceId: o(r),
23
+ sheets: n,
23
24
  model: e,
24
25
  filtersConfig: t
25
26
  } : {
@@ -27,8 +28,8 @@ function d(r) {
27
28
  filtersConfig: t
28
29
  };
29
30
  } else
30
- return s ? {
31
- sourceId: u(s),
31
+ return r ? {
32
+ sourceId: o(r),
32
33
  sheets: [],
33
34
  model: e,
34
35
  filtersConfig: t
@@ -36,11 +37,11 @@ function d(r) {
36
37
  sourceId: null,
37
38
  filtersConfig: t
38
39
  };
39
- } else if (r.sheets) {
40
- const s = l(r.sheets);
41
- return s ? {
42
- sourceId: u("static"),
43
- sheets: s,
40
+ } else if (s.sheets) {
41
+ const r = l(s.sheets);
42
+ return r ? {
43
+ sourceId: o("static"),
44
+ sheets: r,
44
45
  model: e,
45
46
  filtersConfig: t
46
47
  } : {
@@ -49,7 +50,7 @@ function d(r) {
49
50
  };
50
51
  } else
51
52
  return e ? {
52
- sourceId: u("static"),
53
+ sourceId: o("static"),
53
54
  sheets: [],
54
55
  model: e,
55
56
  filtersConfig: t
@@ -60,6 +61,6 @@ function d(r) {
60
61
  });
61
62
  }
62
63
  export {
63
- d as usePlDataTableSettingsV2
64
+ m as usePlDataTableSettingsV2
64
65
  };
65
66
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../src/components/PlAgDataTable/types.ts"],"sourcesContent":["import {\n type JsonCompatible,\n type AxisId,\n type CanonicalizedJson,\n type ListOptionBase,\n type PlDataTableModel,\n type PlDataTableSheet,\n type PlDataTableSheetState,\n type PlTableFilter,\n type PlTableFilterType,\n type PTableColumnId,\n type PTableColumnSpec,\n type PTableKey,\n type PTableValue,\n} from '@platforma-sdk/model';\nimport type { PTableHidden } from './sources/common';\nimport type { ComputedRef, MaybeRefOrGetter } from 'vue';\nimport { computed, toValue } from 'vue';\nimport canonicalize from 'canonicalize';\n\nexport type PlDataTableFilterConfig = {\n options?: PlTableFilterType[];\n default?: PlTableFilter;\n};\n\n/** Data table V2 settings */\nexport type PlDataTableSettingsV2 =\n(\n | { sourceId: null }\n | {\n /** Unique source id for state caching */\n sourceId: string;\n /** Sheets that we want to show in our table */\n sheets: PlDataTableSheet[];\n /** Result of `createPlDataTableV2` */\n model: PlDataTableModel | undefined;\n }\n) & {\n /** Callback configuring filters for the table */\n filtersConfig: (info: {\n sourceId: string;\n column: PTableColumnSpec;\n }) => PlDataTableFilterConfig;\n};\n\ntype OptionsAdvanced<T> = {\n /**\n * Block property (such as inputAnchor) used to produce the data source.\n * Mandatory for cases when the table can change without block run.\n * Skip when the table is changed only after block run.\n * Ask developers for help if you don't know what to set here.\n */\n sourceId: MaybeRefOrGetter<T | undefined>;\n /** Block output created by `createPlDataTableV2` */\n model: MaybeRefOrGetter<PlDataTableModel | undefined>;\n /**\n * Sheets for partitioned data sources.\n * Do not set if data source is never partitioned.\n */\n sheets?: MaybeRefOrGetter<PlDataTableSheet[] | undefined>;\n /**\n * Callback configuring filters for the table.\n * If not provided, filtering will be disabled.\n * Parameter `sourceId` should be compared using `isJsonEqual` from `@milaboratories/helpers`.\n */\n filtersConfig?: (info: {\n sourceId: JsonCompatible<T>;\n column: PTableColumnSpec;\n }) => PlDataTableFilterConfig;\n};\n\ntype OptionsSimple = {\n /** Block output created by `createPlDataTableV2` */\n model: MaybeRefOrGetter<PlDataTableModel | undefined>;\n /**\n * Sheets for partitioned data sources.\n * Do not set if data source is never partitioned.\n */\n sheets?: MaybeRefOrGetter<PlDataTableSheet[] | undefined>;\n /**\n * Callback configuring filters for the table.\n * If not provided, filtering will be disabled.\n */\n filtersConfig?: (info: {\n column: PTableColumnSpec;\n }) => PlDataTableFilterConfig;\n};\n\nexport function usePlDataTableSettingsV2<T>(options: OptionsAdvanced<T>): ComputedRef<PlDataTableSettingsV2>;\nexport function usePlDataTableSettingsV2(options: OptionsSimple): ComputedRef<PlDataTableSettingsV2>;\nexport function usePlDataTableSettingsV2<T>(options: OptionsAdvanced<T> | OptionsSimple): ComputedRef<PlDataTableSettingsV2> {\n const fc = options.filtersConfig;\n const filtersConfigValue = typeof fc === 'function'\n ? (ops: {\n sourceId: string;\n column: PTableColumnSpec;\n }) => {\n try {\n return fc({\n sourceId: JSON.parse(ops.sourceId) as JsonCompatible<T>,\n column: ops.column,\n });\n } catch (e) {\n console.error(`filtersConfig failed for sourceId: ${ops.sourceId}, column: ${JSON.stringify(ops.column)} - using default config`, e);\n return {};\n }\n }\n : () => ({});\n return computed(() => {\n const modelValue = toValue(options.model);\n if ('sourceId' in options) {\n const sourceIdValue = toValue(options.sourceId);\n if (options.sheets) {\n const sheetsValue = toValue(options.sheets);\n return sourceIdValue && sheetsValue\n ? {\n sourceId: canonicalize(sourceIdValue)!,\n sheets: sheetsValue,\n model: modelValue,\n filtersConfig: filtersConfigValue,\n }\n : {\n sourceId: null,\n filtersConfig: filtersConfigValue,\n };\n } else {\n return sourceIdValue\n ? {\n sourceId: canonicalize(sourceIdValue)!,\n sheets: [],\n model: modelValue,\n filtersConfig: filtersConfigValue,\n }\n : {\n sourceId: null,\n filtersConfig: filtersConfigValue,\n };\n }\n } else {\n if (options.sheets) {\n const sheetsValue = toValue(options.sheets);\n return sheetsValue\n ? {\n sourceId: canonicalize('static')!,\n sheets: sheetsValue,\n model: modelValue,\n filtersConfig: filtersConfigValue,\n }\n : {\n sourceId: null,\n filtersConfig: filtersConfigValue,\n };\n } else {\n return modelValue\n ? {\n sourceId: canonicalize('static')!,\n sheets: [],\n model: modelValue,\n filtersConfig: filtersConfigValue,\n }\n : {\n sourceId: null,\n filtersConfig: filtersConfigValue,\n };\n }\n }\n });\n};\n\n/** PlTableFilters restriction entry */\nexport type PlTableFiltersRestriction = {\n /** Spec of the column for which filter types should be restricted */\n column: PTableColumnId;\n /** List of filter types applicable to the column */\n allowedFilterTypes: PlTableFilterType[];\n};\n\n/** PlTableFilters default settings entry */\nexport type PlTableFiltersDefault = {\n /** Spec of the column the default should be applied */\n column: PTableColumnId;\n /** Filter entry */\n default: PlTableFilter;\n};\n\n/** PlAgDataTable controller contains all exported methods */\nexport type PlAgDataTableV2Controller = {\n /**\n * Scroll table to make row with provided key visible\n * Warning: works reliably only in client side mode.\n */\n focusRow: (rowKey: PTableKey) => Promise<void>;\n};\n\nexport type PlTableRowId = {\n /** Axes values */\n axesKey: PTableKey;\n /** Axes key where values of labeled axes are resolved to corresponding labels */\n labeled: PTableKey;\n};\n\nexport type PlTableRowIdJson = CanonicalizedJson<PlTableRowId>;\n\n/** PlAgDataTableV2 row */\nexport type PlAgDataTableV2Row = {\n /** Axes key */\n axesKey: PTableKey;\n /** Unique row identifier */\n id: PlTableRowIdJson;\n /** Row values by column; sheet axes and labeled axes are excluded */\n [field: `${number}`]: PTableValue | PTableHidden;\n};\n\n/** PlSelectionModel with labeled axes replaced by label columns */\nexport type PlTableLabeledSelectionModel = {\n /** Specs for valuess in {@link PTableKey} */\n spec: PTableColumnSpec[];\n /** Row keys (arrays of axes values) of selected rows */\n selectedLabeledKeys: PTableKey[];\n};\n\nexport type PlAgOverlayLoadingParams = {\n /**\n * Required flag, that shows catInBag icon with message if `true`, shows PlSplash component if `false`.\n */\n notReady?: boolean;\n /**\n * Prop to override default \"Loading\" text\n */\n loadingText?: string;\n /**\n * Prop to override default \"No datasource\" text (So why props name is notReady? Good question)\n */\n notReadyText?: string;\n /**\n * Use \"transparent\" to make table headers visible below the loading layer\n */\n overlayType?: 'transparent';\n};\n\nexport type PlAgOverlayNoRowsParams = {\n /**\n * Prop to override default \"Empty\" text\n */\n text?: string;\n};\n\nexport type PlDataTableSheetsSettings = {\n /** User-provided sheets for the sourceId */\n sheets: PlDataTableSheet[];\n /** Persisted selection for the sourceId */\n cachedState: PlDataTableSheetState[];\n};\n\nexport type PlDataTableSheetNormalized = {\n /** id of the axis */\n axisId: AxisId;\n /** sheet prefix */\n prefix: string;\n /** options to show in the filter dropdown */\n options: ListOptionBase<string | number>[];\n /** default (selected) value */\n defaultValue: string | number;\n};\n"],"names":["usePlDataTableSettingsV2","options","fc","filtersConfigValue","ops","e","computed","modelValue","toValue","sourceIdValue","sheetsValue","canonicalize"],"mappings":";;AA0FO,SAASA,EAA4BC,GAAiF;AAC3H,QAAMC,IAAKD,EAAQ,eACbE,IAAqB,OAAOD,KAAO,aACrC,CAACE,MAGK;AACA,QAAA;AACF,aAAOF,EAAG;AAAA,QACR,UAAU,KAAK,MAAME,EAAI,QAAQ;AAAA,QACjC,QAAQA,EAAI;AAAA,MAAA,CACb;AAAA,aACMC,GAAG;AACF,qBAAA,MAAM,sCAAsCD,EAAI,QAAQ,aAAa,KAAK,UAAUA,EAAI,MAAM,CAAC,2BAA2BC,CAAC,GAC5H,CAAC;AAAA,IAAA;AAAA,EAEZ,IACA,OAAO,CAAA;AACX,SAAOC,EAAS,MAAM;AACd,UAAAC,IAAaC,EAAQP,EAAQ,KAAK;AACxC,QAAI,cAAcA,GAAS;AACnB,YAAAQ,IAAgBD,EAAQP,EAAQ,QAAQ;AAC9C,UAAIA,EAAQ,QAAQ;AACZ,cAAAS,IAAcF,EAAQP,EAAQ,MAAM;AAC1C,eAAOQ,KAAiBC,IACpB;AAAA,UACE,UAAUC,EAAaF,CAAa;AAAA,UACpC,QAAQC;AAAA,UACR,OAAOH;AAAA,UACP,eAAeJ;AAAA,QAAA,IAEjB;AAAA,UACE,UAAU;AAAA,UACV,eAAeA;AAAA,QACjB;AAAA,MAAA;AAEJ,eAAOM,IACH;AAAA,UACE,UAAUE,EAAaF,CAAa;AAAA,UACpC,QAAQ,CAAC;AAAA,UACT,OAAOF;AAAA,UACP,eAAeJ;AAAA,QAAA,IAEjB;AAAA,UACE,UAAU;AAAA,UACV,eAAeA;AAAA,QACjB;AAAA,IACN,WAEIF,EAAQ,QAAQ;AACZ,YAAAS,IAAcF,EAAQP,EAAQ,MAAM;AAC1C,aAAOS,IACH;AAAA,QACE,UAAUC,EAAa,QAAQ;AAAA,QAC/B,QAAQD;AAAA,QACR,OAAOH;AAAA,QACP,eAAeJ;AAAA,MAAA,IAEjB;AAAA,QACE,UAAU;AAAA,QACV,eAAeA;AAAA,MACjB;AAAA,IAAA;AAEJ,aAAOI,IACH;AAAA,QACE,UAAUI,EAAa,QAAQ;AAAA,QAC/B,QAAQ,CAAC;AAAA,QACT,OAAOJ;AAAA,QACP,eAAeJ;AAAA,MAAA,IAEjB;AAAA,QACE,UAAU;AAAA,QACV,eAAeA;AAAA,MACjB;AAAA,EAER,CACD;AACH;"}
1
+ {"version":3,"file":"types.js","sources":["../../../src/components/PlAgDataTable/types.ts"],"sourcesContent":["import {\n type JsonCompatible,\n type AxisId,\n type CanonicalizedJson,\n type ListOptionBase,\n type PlDataTableModel,\n type PlDataTableSheet,\n type PlDataTableSheetState,\n type PlTableFilter,\n type PlTableFilterType,\n type PTableColumnId,\n type PTableColumnSpec,\n type PTableKey,\n type PTableValue,\n} from '@platforma-sdk/model';\nimport type { PTableHidden } from './sources/common';\nimport type { ComputedRef, MaybeRefOrGetter } from 'vue';\nimport { computed, toValue } from 'vue';\nimport canonicalize from 'canonicalize';\nimport { deepClone } from '@milaboratories/helpers';\n\nexport type PlDataTableFilterConfig = {\n options?: PlTableFilterType[];\n default?: PlTableFilter;\n};\n\n/** Data table V2 settings */\nexport type PlDataTableSettingsV2 =\n(\n | { sourceId: null }\n | {\n /** Unique source id for state caching */\n sourceId: string;\n /** Sheets that we want to show in our table */\n sheets: PlDataTableSheet[];\n /** Result of `createPlDataTableV2` */\n model: PlDataTableModel | undefined;\n }\n) & {\n /** Callback configuring filters for the table */\n filtersConfig: (info: {\n sourceId: string;\n column: PTableColumnSpec;\n }) => PlDataTableFilterConfig;\n};\n\ntype OptionsAdvanced<T> = {\n /**\n * Block property (such as inputAnchor) used to produce the data source.\n * Mandatory for cases when the table can change without block run.\n * Skip when the table is changed only after block run.\n * Ask developers for help if you don't know what to set here.\n */\n sourceId: MaybeRefOrGetter<T | undefined>;\n /** Block output created by `createPlDataTableV2` */\n model: MaybeRefOrGetter<PlDataTableModel | undefined>;\n /**\n * Sheets for partitioned data sources.\n * Do not set if data source is never partitioned.\n */\n sheets?: MaybeRefOrGetter<PlDataTableSheet[] | undefined>;\n /**\n * Callback configuring filters for the table.\n * If not provided, filtering will be disabled.\n * Parameter `sourceId` should be compared using `isJsonEqual` from `@milaboratories/helpers`.\n */\n filtersConfig?: (info: {\n sourceId: JsonCompatible<T>;\n column: PTableColumnSpec;\n }) => PlDataTableFilterConfig;\n};\n\ntype OptionsSimple = {\n /** Block output created by `createPlDataTableV2` */\n model: MaybeRefOrGetter<PlDataTableModel | undefined>;\n /**\n * Sheets for partitioned data sources.\n * Do not set if data source is never partitioned.\n */\n sheets?: MaybeRefOrGetter<PlDataTableSheet[] | undefined>;\n /**\n * Callback configuring filters for the table.\n * If not provided, filtering will be disabled.\n */\n filtersConfig?: (info: {\n column: PTableColumnSpec;\n }) => PlDataTableFilterConfig;\n};\n\nexport function usePlDataTableSettingsV2<T>(options: OptionsAdvanced<T>): ComputedRef<PlDataTableSettingsV2>;\nexport function usePlDataTableSettingsV2(options: OptionsSimple): ComputedRef<PlDataTableSettingsV2>;\nexport function usePlDataTableSettingsV2<T>(options: OptionsAdvanced<T> | OptionsSimple): ComputedRef<PlDataTableSettingsV2> {\n const fc = options.filtersConfig;\n const filtersConfigValue = typeof fc === 'function'\n ? (ops: {\n sourceId: string;\n column: PTableColumnSpec;\n }) => {\n try {\n return fc({\n sourceId: JSON.parse(ops.sourceId) as JsonCompatible<T>,\n column: ops.column,\n });\n } catch (e) {\n console.error(`filtersConfig failed for sourceId: ${ops.sourceId}, column: ${JSON.stringify(ops.column)} - using default config`, e);\n return {};\n }\n }\n : () => ({});\n return computed(() => {\n const modelValue = toValue(options.model);\n if ('sourceId' in options) {\n const sourceIdValue = deepClone(toValue(options.sourceId));\n if (options.sheets) {\n const sheetsValue = deepClone(toValue(options.sheets));\n return sourceIdValue && sheetsValue\n ? {\n sourceId: canonicalize(sourceIdValue)!,\n sheets: sheetsValue,\n model: modelValue,\n filtersConfig: filtersConfigValue,\n }\n : {\n sourceId: null,\n filtersConfig: filtersConfigValue,\n };\n } else {\n return sourceIdValue\n ? {\n sourceId: canonicalize(sourceIdValue)!,\n sheets: [],\n model: modelValue,\n filtersConfig: filtersConfigValue,\n }\n : {\n sourceId: null,\n filtersConfig: filtersConfigValue,\n };\n }\n } else {\n if (options.sheets) {\n const sheetsValue = toValue(options.sheets);\n return sheetsValue\n ? {\n sourceId: canonicalize('static')!,\n sheets: sheetsValue,\n model: modelValue,\n filtersConfig: filtersConfigValue,\n }\n : {\n sourceId: null,\n filtersConfig: filtersConfigValue,\n };\n } else {\n return modelValue\n ? {\n sourceId: canonicalize('static')!,\n sheets: [],\n model: modelValue,\n filtersConfig: filtersConfigValue,\n }\n : {\n sourceId: null,\n filtersConfig: filtersConfigValue,\n };\n }\n }\n });\n};\n\n/** PlTableFilters restriction entry */\nexport type PlTableFiltersRestriction = {\n /** Spec of the column for which filter types should be restricted */\n column: PTableColumnId;\n /** List of filter types applicable to the column */\n allowedFilterTypes: PlTableFilterType[];\n};\n\n/** PlTableFilters default settings entry */\nexport type PlTableFiltersDefault = {\n /** Spec of the column the default should be applied */\n column: PTableColumnId;\n /** Filter entry */\n default: PlTableFilter;\n};\n\n/** PlAgDataTable controller contains all exported methods */\nexport type PlAgDataTableV2Controller = {\n /**\n * Scroll table to make row with provided key visible\n * Warning: works reliably only in client side mode.\n */\n focusRow: (rowKey: PTableKey) => Promise<void>;\n};\n\nexport type PlTableRowId = {\n /** Axes values */\n axesKey: PTableKey;\n /** Axes key where values of labeled axes are resolved to corresponding labels */\n labeled: PTableKey;\n};\n\nexport type PlTableRowIdJson = CanonicalizedJson<PlTableRowId>;\n\n/** PlAgDataTableV2 row */\nexport type PlAgDataTableV2Row = {\n /** Axes key */\n axesKey: PTableKey;\n /** Unique row identifier */\n id: PlTableRowIdJson;\n /** Row values by column; sheet axes and labeled axes are excluded */\n [field: `${number}`]: PTableValue | PTableHidden;\n};\n\n/** PlSelectionModel with labeled axes replaced by label columns */\nexport type PlTableLabeledSelectionModel = {\n /** Specs for valuess in {@link PTableKey} */\n spec: PTableColumnSpec[];\n /** Row keys (arrays of axes values) of selected rows */\n selectedLabeledKeys: PTableKey[];\n};\n\nexport type PlAgOverlayLoadingParams = {\n /**\n * Required flag, that shows catInBag icon with message if `true`, shows PlSplash component if `false`.\n */\n notReady?: boolean;\n /**\n * Prop to override default \"Loading\" text\n */\n loadingText?: string;\n /**\n * Prop to override default \"No datasource\" text (So why props name is notReady? Good question)\n */\n notReadyText?: string;\n /**\n * Use \"transparent\" to make table headers visible below the loading layer\n */\n overlayType?: 'transparent';\n};\n\nexport type PlAgOverlayNoRowsParams = {\n /**\n * Prop to override default \"Empty\" text\n */\n text?: string;\n};\n\nexport type PlDataTableSheetsSettings = {\n /** User-provided sheets for the sourceId */\n sheets: PlDataTableSheet[];\n /** Persisted selection for the sourceId */\n cachedState: PlDataTableSheetState[];\n};\n\nexport type PlDataTableSheetNormalized = {\n /** id of the axis */\n axisId: AxisId;\n /** sheet prefix */\n prefix: string;\n /** options to show in the filter dropdown */\n options: ListOptionBase<string | number>[];\n /** default (selected) value */\n defaultValue: string | number;\n};\n"],"names":["usePlDataTableSettingsV2","options","fc","filtersConfigValue","ops","e","computed","modelValue","toValue","sourceIdValue","deepClone","sheetsValue","canonicalize"],"mappings":";;;AA2FO,SAASA,EAA4BC,GAAiF;AAC3H,QAAMC,IAAKD,EAAQ,eACbE,IAAqB,OAAOD,KAAO,aACrC,CAACE,MAGK;AACA,QAAA;AACF,aAAOF,EAAG;AAAA,QACR,UAAU,KAAK,MAAME,EAAI,QAAQ;AAAA,QACjC,QAAQA,EAAI;AAAA,MAAA,CACb;AAAA,aACMC,GAAG;AACF,qBAAA,MAAM,sCAAsCD,EAAI,QAAQ,aAAa,KAAK,UAAUA,EAAI,MAAM,CAAC,2BAA2BC,CAAC,GAC5H,CAAC;AAAA,IAAA;AAAA,EAEZ,IACA,OAAO,CAAA;AACX,SAAOC,EAAS,MAAM;AACd,UAAAC,IAAaC,EAAQP,EAAQ,KAAK;AACxC,QAAI,cAAcA,GAAS;AACzB,YAAMQ,IAAgBC,EAAUF,EAAQP,EAAQ,QAAQ,CAAC;AACzD,UAAIA,EAAQ,QAAQ;AAClB,cAAMU,IAAcD,EAAUF,EAAQP,EAAQ,MAAM,CAAC;AACrD,eAAOQ,KAAiBE,IACpB;AAAA,UACE,UAAUC,EAAaH,CAAa;AAAA,UACpC,QAAQE;AAAA,UACR,OAAOJ;AAAA,UACP,eAAeJ;AAAA,QAAA,IAEjB;AAAA,UACE,UAAU;AAAA,UACV,eAAeA;AAAA,QACjB;AAAA,MAAA;AAEJ,eAAOM,IACH;AAAA,UACE,UAAUG,EAAaH,CAAa;AAAA,UACpC,QAAQ,CAAC;AAAA,UACT,OAAOF;AAAA,UACP,eAAeJ;AAAA,QAAA,IAEjB;AAAA,UACE,UAAU;AAAA,UACV,eAAeA;AAAA,QACjB;AAAA,IACN,WAEIF,EAAQ,QAAQ;AACZ,YAAAU,IAAcH,EAAQP,EAAQ,MAAM;AAC1C,aAAOU,IACH;AAAA,QACE,UAAUC,EAAa,QAAQ;AAAA,QAC/B,QAAQD;AAAA,QACR,OAAOJ;AAAA,QACP,eAAeJ;AAAA,MAAA,IAEjB;AAAA,QACE,UAAU;AAAA,QACV,eAAeA;AAAA,MACjB;AAAA,IAAA;AAEJ,aAAOI,IACH;AAAA,QACE,UAAUK,EAAa,QAAQ;AAAA,QAC/B,QAAQ,CAAC;AAAA,QACT,OAAOL;AAAA,QACP,eAAeJ;AAAA,MAAA,IAEjB;AAAA,QACE,UAAU;AAAA,QACV,eAAeA;AAAA,MACjB;AAAA,EAER,CACD;AACH;"}
@@ -1,24 +1,23 @@
1
- import { isJsonEqual as c } from "../lib/util/helpers/dist/index.js";
2
- import { ref as n, computed as l, watch as s } from "vue";
3
- function m(t) {
4
- typeof t == "function" && (t = {
5
- get: t
6
- });
7
- const { get: o, set: a, deep: p } = t, e = n(o());
1
+ import { isJsonEqual as o, deepClone as n } from "../lib/util/helpers/dist/index.js";
2
+ import { ref as p, computed as r, watch as s } from "vue";
3
+ function d(t) {
4
+ let a, l;
5
+ typeof t == "function" ? a = t : (a = t.get, l = t.set);
6
+ const e = p(a());
8
7
  return s(
9
- o,
8
+ a,
10
9
  (u) => {
11
- c(u, e.value) || (e.value = u);
10
+ o(u, e.value) || (e.value = n(u));
12
11
  },
13
- { deep: p }
14
- ), a ? l({
12
+ { deep: !0 }
13
+ ), l ? r({
15
14
  get: () => e.value,
16
15
  set: (u) => {
17
- c(u, e.value) || (e.value = u, a(u));
16
+ o(u, e.value) || (e.value = u, l(u));
18
17
  }
19
- }) : l(() => e.value);
18
+ }) : r(() => e.value);
20
19
  }
21
20
  export {
22
- m as computedCached
21
+ d as computedCached
23
22
  };
24
23
  //# sourceMappingURL=computedCached.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"computedCached.js","sources":["../../../../../../../../lib/ui/uikit/src/composition/computedCached.ts"],"sourcesContent":["import { isJsonEqual } from '@milaboratories/helpers';\nimport {\n computed,\n ref,\n watch,\n type ComputedGetter,\n type ComputedSetter,\n type ComputedRef,\n type WritableComputedRef,\n} from 'vue';\n\nexport function computedCached<T>(options: {\n get: ComputedGetter<T>;\n set: ComputedSetter<T>;\n deep?: boolean;\n}): WritableComputedRef<T>;\nexport function computedCached<T>(options: {\n get: ComputedGetter<T>;\n deep?: boolean;\n}): ComputedRef<T>;\nexport function computedCached<T>(getter: ComputedGetter<T>): ComputedRef<T>;\nexport function computedCached<T>(options: ComputedGetter<T> | {\n get: ComputedGetter<T>;\n set?: ComputedSetter<T>;\n deep?: boolean;\n}) {\n if (typeof options === 'function') {\n options = {\n get: options,\n };\n }\n const { get: getter, set: setter, deep } = options;\n\n const cachedValue = ref<T>(getter());\n watch(\n getter,\n (newValue) => {\n if (!isJsonEqual(newValue, cachedValue.value)) {\n cachedValue.value = newValue;\n }\n },\n { deep },\n );\n\n if (setter) {\n return computed({\n get: () => cachedValue.value,\n set: (newValue) => {\n if (!isJsonEqual(newValue, cachedValue.value)) {\n cachedValue.value = newValue;\n setter(newValue);\n }\n },\n });\n } else {\n return computed(() => cachedValue.value);\n }\n}\n"],"names":["computedCached","options","getter","setter","deep","cachedValue","ref","watch","newValue","isJsonEqual","computed"],"mappings":";;AAqBO,SAASA,EAAkBC,GAI/B;AACG,SAAOA,KAAY,eACXA,IAAA;AAAA,IACR,KAAKA;AAAAA,EAAA;AAGH,QAAA,EAAE,KAAKC,GAAQ,KAAKC,GAAQ,MAAAC,EAASH,IAAAA,GAErCI,IAAcC,EAAOJ,EAAQ,CAAA;AACnCK,SAAAA;AAAAA,IACEL;AAAAA,IACA,CAACM,MAAa;AACPC,MAAAA,EAAYD,GAAUH,EAAY,KAAK,MAC1CA,EAAY,QAAQG;AAAAA,IAExB;AAAA,IACA,EAAE,MAAAJ,EAAK;AAAA,EAAA,GAGLD,IACKO,EAAS;AAAA,IACd,KAAK,MAAML,EAAY;AAAA,IACvB,KAAK,CAACG,MAAa;AACZC,MAAAA,EAAYD,GAAUH,EAAY,KAAK,MAC1CA,EAAY,QAAQG,GACpBL,EAAOK,CAAQ;AAAA,IAAA;AAAA,EAGpB,CAAA,IAEME,EAAS,MAAML,EAAY,KAAK;AAE3C;"}
1
+ {"version":3,"file":"computedCached.js","sources":["../../../../../../../../lib/ui/uikit/src/composition/computedCached.ts"],"sourcesContent":["import { deepClone, isJsonEqual } from '@milaboratories/helpers';\nimport {\n computed,\n ref,\n watch,\n type ComputedGetter,\n type ComputedSetter,\n type ComputedRef,\n type WritableComputedRef,\n} from 'vue';\n\n/**\n * Alternative to `computed`, but triggering only on actual data changes.\n * Always `deep` as the plain `computed` is.\n */\nexport function computedCached<T>(options: {\n get: ComputedGetter<T>;\n set: ComputedSetter<T>;\n}): WritableComputedRef<T>;\nexport function computedCached<T>(getter: ComputedGetter<T>): ComputedRef<T>;\nexport function computedCached<T>(arg: ComputedGetter<T> | {\n get: ComputedGetter<T>;\n set: ComputedSetter<T>;\n}) {\n let getter: ComputedGetter<T>;\n let setter: ComputedSetter<T> | undefined = undefined;\n if (typeof arg === 'function') {\n getter = arg;\n } else {\n getter = arg.get;\n setter = arg.set;\n }\n\n const cachedValue = ref<T>(getter());\n watch(\n getter,\n (newValue) => {\n if (!isJsonEqual(newValue, cachedValue.value)) {\n // `deepClone` is needed because in case some fields are patched the deep would be triggered,\n // but objects would be equal as the saved value was also patched\n cachedValue.value = deepClone(newValue);\n }\n },\n { deep: true },\n );\n\n if (setter) {\n return computed({\n get: () => cachedValue.value,\n set: (newValue) => {\n if (!isJsonEqual(newValue, cachedValue.value)) {\n cachedValue.value = newValue;\n setter(newValue);\n }\n },\n });\n } else {\n return computed(() => cachedValue.value);\n }\n}\n"],"names":["computedCached","arg","getter","setter","cachedValue","ref","watch","newValue","isJsonEqual","deepClone","computed"],"mappings":";;AAoBO,SAASA,EAAkBC,GAG/B;AACG,MAAAC,GACAC;AACA,SAAOF,KAAQ,aACRC,IAAAD,KAETC,IAASD,EAAI,KACbE,IAASF,EAAI;AAGTG,QAAAA,IAAcC,EAAOH,GAAQ;AACnCI,SAAAA;AAAAA,IACEJ;AAAAA,IACA,CAACK,MAAa;AACPC,MAAAA,EAAYD,GAAUH,EAAY,KAAK,MAG9BA,EAAA,QAAQK,EAAUF,CAAQ;AAAA,IAE1C;AAAA,IACA,EAAE,MAAM,GAAK;AAAA,EAAA,GAGXJ,IACKO,EAAS;AAAA,IACd,KAAK,MAAMN,EAAY;AAAA,IACvB,KAAK,CAACG,MAAa;AACZC,MAAAA,EAAYD,GAAUH,EAAY,KAAK,MAC1CA,EAAY,QAAQG,GACpBJ,EAAOI,CAAQ;AAAA,IAAA;AAAA,EAGpB,CAAA,IAEMG,EAAS,MAAMN,EAAY,KAAK;AAE3C;"}
@@ -1,31 +1,31 @@
1
- import { isJsonEqual as l } from "../lib/util/helpers/dist/index.js";
2
- import { ref as m, watch as t } from "vue";
3
- function p(u, o, e) {
4
- const a = m(), d = t(
5
- u,
6
- (i) => {
7
- l(i, a.value) || (a.value = i);
1
+ import { isJsonEqual as r, deepClone as d } from "../lib/util/helpers/dist/index.js";
2
+ import { ref as n, watch as u } from "vue";
3
+ function s(i, m, a) {
4
+ const e = n(), o = u(
5
+ i,
6
+ (t) => {
7
+ r(t, e.value) || (e.value = d(t));
8
8
  },
9
9
  {
10
- deep: e == null ? void 0 : e.deep,
10
+ deep: !0,
11
11
  immediate: !0
12
12
  // always initialize cachedValue
13
13
  }
14
14
  );
15
- return t(
16
- () => a.value,
15
+ return u(
16
+ () => e.value,
17
17
  // `as T` is safe as we always initialize cachedValue
18
- o,
18
+ m,
19
19
  // separate watch so that `onWatcherCleanup` would only be triggerred here
20
20
  {
21
21
  // standard vue `WatchOptions` conform to `WatchCachedOptions` interface,
22
22
  // so construct new options to remove unsupported entries
23
- deep: e == null ? void 0 : e.deep,
24
- immediate: e == null ? void 0 : e.immediate
23
+ deep: !0,
24
+ immediate: a == null ? void 0 : a.immediate
25
25
  }
26
- ), d;
26
+ ), o;
27
27
  }
28
28
  export {
29
- p as watchCached
29
+ s as watchCached
30
30
  };
31
31
  //# sourceMappingURL=watchCached.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watchCached.js","sources":["../../../../../../../../lib/ui/uikit/src/composition/watchCached.ts"],"sourcesContent":["import { isJsonEqual } from '@milaboratories/helpers';\nimport {\n ref,\n watch,\n type WatchCallback,\n type WatchHandle,\n type WatchSource,\n} from 'vue';\n\ntype MaybeUndefined<T, I> = I extends true ? T | undefined : T;\nexport interface WatchCachedOptions<Immediate = boolean> {\n immediate?: Immediate;\n deep?: boolean;\n // when `once` is needed, caching is useless, use plain watch instead\n}\nexport function watchCached<T, Immediate extends Readonly<boolean> = false>(\n source: WatchSource<T>,\n cb: WatchCallback<T, MaybeUndefined<T, Immediate>>,\n options?: WatchCachedOptions<Immediate>,\n): WatchHandle {\n const cachedValue = ref<T>();\n const handle = watch(\n source,\n (newValue) => {\n if (!isJsonEqual(newValue, cachedValue.value)) {\n cachedValue.value = newValue;\n }\n },\n {\n deep: options?.deep,\n immediate: true, // always initialize cachedValue\n },\n );\n watch<T, Immediate>(\n () => cachedValue.value as T, // `as T` is safe as we always initialize cachedValue\n cb, // separate watch so that `onWatcherCleanup` would only be triggerred here\n {\n // standard vue `WatchOptions` conform to `WatchCachedOptions` interface,\n // so construct new options to remove unsupported entries\n deep: options?.deep,\n immediate: options?.immediate,\n },\n );\n return handle; // stopping first handle would effectively stop the second one\n}\n"],"names":["watchCached","source","cb","options","cachedValue","ref","handle","watch","newValue","isJsonEqual"],"mappings":";;AAegB,SAAAA,EACdC,GACAC,GACAC,GACa;AACPC,QAAAA,IAAcC,KACdC,IAASC;AAAAA,IACbN;AAAAA,IACA,CAACO,MAAa;AACPC,MAAAA,EAAYD,GAAUJ,EAAY,KAAK,MAC1CA,EAAY,QAAQI;AAAAA,IAExB;AAAA,IACA;AAAA,MACE,MAAML,KAAA,OAAA,SAAAA,EAAS;AAAA,MACf,WAAW;AAAA;AAAA,IAAA;AAAA,EAEf;AACAI,SAAAA;AAAAA,IACE,MAAMH,EAAY;AAAA;AAAA,IAClBF;AAAAA;AAAAA,IACA;AAAA;AAAA;AAAA,MAGE,MAAMC,KAAA,OAAA,SAAAA,EAAS;AAAA,MACf,WAAWA,KAAA,OAAA,SAAAA,EAAS;AAAA,IAAA;AAAA,EAAA,GAGjBG;AACT;"}
1
+ {"version":3,"file":"watchCached.js","sources":["../../../../../../../../lib/ui/uikit/src/composition/watchCached.ts"],"sourcesContent":["import { deepClone, isJsonEqual } from '@milaboratories/helpers';\nimport {\n ref,\n watch,\n type WatchCallback,\n type WatchHandle,\n type WatchSource,\n} from 'vue';\n\ntype MaybeUndefined<T, I> = I extends true ? T | undefined : T;\nexport interface WatchCachedOptions<Immediate = boolean> {\n immediate?: Immediate;\n // deep: true; - caching is useless when you are using the source as a `shallowRef`\n // once: false; - caching is useless when you need a single shot, use plain watch instead\n}\n/** Alternative to `watch`, but triggering only on actual data changes */\nexport function watchCached<T, Immediate extends Readonly<boolean> = false>(\n source: WatchSource<T>,\n cb: WatchCallback<T, MaybeUndefined<T, Immediate>>,\n options?: WatchCachedOptions<Immediate>,\n): WatchHandle {\n const cachedValue = ref<T>();\n const handle = watch(\n source,\n (newValue) => {\n if (!isJsonEqual(newValue, cachedValue.value)) {\n // `deepClone` is needed because in case some fields are patched the deep would be triggered,\n // but objects would be equal as the saved value was also patched\n cachedValue.value = deepClone(newValue);\n }\n },\n {\n deep: true,\n immediate: true, // always initialize cachedValue\n },\n );\n watch<T, Immediate>(\n () => cachedValue.value as T, // `as T` is safe as we always initialize cachedValue\n cb, // separate watch so that `onWatcherCleanup` would only be triggerred here\n {\n // standard vue `WatchOptions` conform to `WatchCachedOptions` interface,\n // so construct new options to remove unsupported entries\n deep: true,\n immediate: options?.immediate,\n },\n );\n return handle; // stopping first handle would effectively stop the second one\n}\n"],"names":["watchCached","source","cb","options","cachedValue","ref","handle","watch","newValue","isJsonEqual","deepClone"],"mappings":";;AAgBgB,SAAAA,EACdC,GACAC,GACAC,GACa;AACPC,QAAAA,IAAcC,KACdC,IAASC;AAAAA,IACbN;AAAAA,IACA,CAACO,MAAa;AACPC,MAAAA,EAAYD,GAAUJ,EAAY,KAAK,MAG9BA,EAAA,QAAQM,EAAUF,CAAQ;AAAA,IAE1C;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,WAAW;AAAA;AAAA,IAAA;AAAA,EAEf;AACAD,SAAAA;AAAAA,IACE,MAAMH,EAAY;AAAA;AAAA,IAClBF;AAAAA;AAAAA,IACA;AAAA;AAAA;AAAA,MAGE,MAAM;AAAA,MACN,WAAWC,KAAA,OAAA,SAAAA,EAAS;AAAA,IAAA;AAAA,EAAA,GAGjBG;AACT;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/ui-vue",
3
- "version": "1.40.1",
3
+ "version": "1.40.2",
4
4
  "type": "module",
5
5
  "main": "dist/lib.js",
6
6
  "styles": "dist/lib.js",
@@ -27,9 +27,9 @@
27
27
  "sortablejs": "^1.15.6",
28
28
  "d3-format": "^3.1.0",
29
29
  "zod": "~3.23.8",
30
- "@milaboratories/uikit": "2.3.11",
30
+ "@platforma-sdk/model": "~1.40.1",
31
31
  "@milaboratories/biowasm-tools": "^1.1.0",
32
- "@platforma-sdk/model": "~1.40.1"
32
+ "@milaboratories/uikit": "2.3.11"
33
33
  },
34
34
  "devDependencies": {
35
35
  "happy-dom": "^15.11.7",
@@ -42,10 +42,10 @@
42
42
  "vitest": "^2.1.9",
43
43
  "vue-tsc": "^2.2.10",
44
44
  "yarpm": "^1.2.0",
45
- "@milaboratories/ts-configs": "1.0.4",
45
+ "@milaboratories/eslint-config": "^1.0.4",
46
46
  "@milaboratories/build-configs": "1.0.4",
47
- "@milaboratories/helpers": "^1.6.17",
48
- "@milaboratories/eslint-config": "^1.0.4"
47
+ "@milaboratories/ts-configs": "1.0.4",
48
+ "@milaboratories/helpers": "^1.6.17"
49
49
  },
50
50
  "scripts": {
51
51
  "test": "vitest run --passWithNoTests",
@@ -119,7 +119,6 @@ export function useTableState(
119
119
  const tableStateNormalized = computedCached<PlDataTableStateV2Normalized>({
120
120
  get: () => upgradePlDataTableStateV2(tableStateDenormalized.value),
121
121
  set: (newState) => tableStateDenormalized.value = newState,
122
- deep: true,
123
122
  });
124
123
 
125
124
  const tableState = computed<PlDataTableStateV2CacheEntryNullable>({
@@ -17,6 +17,7 @@ import type { PTableHidden } from './sources/common';
17
17
  import type { ComputedRef, MaybeRefOrGetter } from 'vue';
18
18
  import { computed, toValue } from 'vue';
19
19
  import canonicalize from 'canonicalize';
20
+ import { deepClone } from '@milaboratories/helpers';
20
21
 
21
22
  export type PlDataTableFilterConfig = {
22
23
  options?: PlTableFilterType[];
@@ -109,9 +110,9 @@ export function usePlDataTableSettingsV2<T>(options: OptionsAdvanced<T> | Option
109
110
  return computed(() => {
110
111
  const modelValue = toValue(options.model);
111
112
  if ('sourceId' in options) {
112
- const sourceIdValue = toValue(options.sourceId);
113
+ const sourceIdValue = deepClone(toValue(options.sourceId));
113
114
  if (options.sheets) {
114
- const sheetsValue = toValue(options.sheets);
115
+ const sheetsValue = deepClone(toValue(options.sheets));
115
116
  return sourceIdValue && sheetsValue
116
117
  ? {
117
118
  sourceId: canonicalize(sourceIdValue)!,