@platforma-sdk/ui-vue 1.82.6 → 1.83.0

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 (50) hide show
  1. package/.turbo/turbo-build.log +11 -14
  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 +38 -0
  6. package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js.map +1 -1
  7. package/dist/defineApp.d.ts +2 -32
  8. package/dist/defineApp.d.ts.map +1 -1
  9. package/dist/defineApp.js +20 -62
  10. package/dist/defineApp.js.map +1 -1
  11. package/dist/index.js +39 -39
  12. package/dist/internal/createAppV3.js +16 -16
  13. package/dist/lib/util/helpers/dist/utils.js +2 -5
  14. package/dist/lib/util/helpers/dist/utils.js.map +1 -1
  15. package/dist/lib.js +1 -1
  16. package/package.json +6 -6
  17. package/src/defineApp.ts +1 -183
  18. package/dist/internal/createAppModel.d.ts +0 -7
  19. package/dist/internal/createAppModel.d.ts.map +0 -1
  20. package/dist/internal/createAppModel.js +0 -57
  21. package/dist/internal/createAppModel.js.map +0 -1
  22. package/dist/internal/createAppV1.d.ts +0 -53
  23. package/dist/internal/createAppV1.d.ts.map +0 -1
  24. package/dist/internal/createAppV1.js +0 -129
  25. package/dist/internal/createAppV1.js.map +0 -1
  26. package/dist/internal/createAppV2.d.ts +0 -50
  27. package/dist/internal/createAppV2.d.ts.map +0 -1
  28. package/dist/internal/createAppV2.js +0 -137
  29. package/dist/internal/createAppV2.js.map +0 -1
  30. package/dist/internal/createAppV2.test.d.ts +0 -15
  31. package/dist/internal/createAppV2.test.d.ts.map +0 -1
  32. package/dist/internal/test-helpers/BlockMock.d.ts +0 -29
  33. package/dist/internal/test-helpers/BlockMock.d.ts.map +0 -1
  34. package/dist/internal/test-helpers/createMockApi.d.ts +0 -4
  35. package/dist/internal/test-helpers/createMockApi.d.ts.map +0 -1
  36. package/dist/internal/test-helpers/utils.d.ts +0 -4
  37. package/dist/internal/test-helpers/utils.d.ts.map +0 -1
  38. package/dist/internal/v1.static-test.d.ts +0 -7
  39. package/dist/internal/v1.static-test.d.ts.map +0 -1
  40. package/dist/internal/v2.static-test.d.ts +0 -7
  41. package/dist/internal/v2.static-test.d.ts.map +0 -1
  42. package/src/internal/createAppModel.ts +0 -112
  43. package/src/internal/createAppV1.ts +0 -324
  44. package/src/internal/createAppV2.test.ts +0 -207
  45. package/src/internal/createAppV2.ts +0 -392
  46. package/src/internal/test-helpers/BlockMock.ts +0 -161
  47. package/src/internal/test-helpers/createMockApi.ts +0 -104
  48. package/src/internal/test-helpers/utils.ts +0 -65
  49. package/src/internal/v1.static-test.ts +0 -107
  50. package/src/internal/v2.static-test.ts +0 -107
@@ -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.82.6 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.83.0 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...
@@ -12,11 +12,11 @@ Building browser-lib project...
12
12
  4 export function useGridColumns(props: { api: GridApi }) {
13
13
     ~~~~~~~~~~~~~~
14
14
 
15
- 
15
+ 
16
16
  rendering chunks...
17
17
 
18
18
  [vite:dts] Start generate declaration files...
19
- [vite:dts] Declaration files built in 6737ms.
19
+ [vite:dts] Declaration files built in 5030ms.
20
20
 
21
21
  computing gzip size...
22
22
  dist/components/PlAnnotations/components/PlAnnotations.vue?vue&type=style&index=0&lang.css 0.04 kB │ gzip: 0.06 kB
@@ -159,10 +159,10 @@ dist/plugins/Monetization/LimitCard.vue_vue_type_style_index_0_lang.module.js
159
159
  dist/_virtual/_rolldown/runtime.js 0.73 kB │ gzip: 0.43 kB
160
160
  dist/components/PlAgDataTable/PlAgOverlayNoRows.vue_vue_type_script_setup_true_lang.js 0.76 kB │ gzip: 0.49 kB │ map: 1.56 kB
161
161
  dist/plugins/Monetization/EndOfPeriod.vue_vue_type_script_setup_true_lang.js 0.81 kB │ gzip: 0.51 kB │ map: 1.65 kB
162
+ dist/lib/util/helpers/dist/utils.js 0.84 kB │ gzip: 0.45 kB │ map: 7.22 kB
162
163
  dist/components/PlAgDataTable/compositions/useFilterableColumns.js 0.87 kB │ gzip: 0.48 kB │ map: 2.94 kB
163
164
  dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue_vue_type_script_setup_true_lang.js 0.87 kB │ gzip: 0.50 kB │ map: 1.35 kB
164
165
  dist/components/BlockLoader.vue_vue_type_script_setup_true_lang.js 0.88 kB │ gzip: 0.54 kB │ map: 1.21 kB
165
- dist/lib/util/helpers/dist/utils.js 0.89 kB │ gzip: 0.46 kB │ map: 7.27 kB
166
166
  dist/components/PlAdvancedFilter/OperandButton.vue_vue_type_script_setup_true_lang.js 0.91 kB │ gzip: 0.57 kB │ map: 1.72 kB
167
167
  dist/components/NotFound.vue_vue_type_script_setup_true_lang.js 0.92 kB │ gzip: 0.58 kB │ map: 0.96 kB
168
168
  dist/components/PlAgDataTable/sources/focus-row.js 0.95 kB │ gzip: 0.51 kB │ map: 2.22 kB
@@ -186,8 +186,8 @@ dist/components/PlAgDataTable/types.js
186
186
  dist/components/PlAgCsvExporter/PlAgCsvExporter.vue_vue_type_script_setup_true_lang.js 1.34 kB │ gzip: 0.74 kB │ map: 2.16 kB
187
187
  dist/components/PlBtnExportArchive/Item.vue_vue_type_script_setup_true_lang.js 1.36 kB │ gzip: 0.63 kB │ map: 2.58 kB
188
188
  dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue_vue_type_script_setup_true_lang.js 1.46 kB │ gzip: 0.77 kB │ map: 3.56 kB
189
- dist/internal/createAppModel.js 1.48 kB │ gzip: 0.75 kB │ map: 3.89 kB
190
189
  dist/plugins/Monetization/useInfo.js 1.51 kB │ gzip: 0.77 kB │ map: 3.85 kB
190
+ dist/defineApp.js 1.63 kB │ gzip: 0.87 kB │ map: 6.60 kB
191
191
  dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue_vue_type_script_setup_true_lang.js 1.67 kB │ gzip: 0.84 kB │ map: 2.62 kB
192
192
  dist/components/PlAnnotations/components/PlAnnotationsModal.vue_vue_type_script_setup_true_lang.js 1.75 kB │ gzip: 0.75 kB │ map: 1.78 kB
193
193
  dist/AgGridVue/createAgGridColDef.js 1.76 kB │ gzip: 0.75 kB │ map: 9.21 kB
@@ -205,7 +205,6 @@ dist/lib.js
205
205
  dist/components/PlAgDataTable/compositions/useGrid.js 2.91 kB │ gzip: 1.29 kB │ map: 6.51 kB
206
206
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue_vue_type_script_setup_true_lang.js 2.93 kB │ gzip: 1.26 kB │ map: 7.97 kB
207
207
  dist/components/PlAgDataTable/sources/row-number.js 3.01 kB │ gzip: 1.31 kB │ map: 7.47 kB
208
- dist/defineApp.js 3.01 kB │ gzip: 1.05 kB │ map: 14.38 kB
209
208
  dist/components/PlAgCsvExporter/export-csv.js 3.13 kB │ gzip: 1.39 kB │ map: 10.80 kB
210
209
  dist/plugins/Monetization/LimitCard.vue_vue_type_script_setup_true_lang.js 3.31 kB │ gzip: 1.15 kB │ map: 9.08 kB
211
210
  dist/composition/fileContent.js 3.78 kB │ gzip: 1.45 kB │ map: 12.95 kB
@@ -213,26 +212,24 @@ dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue_vue_type_script_
213
212
  dist/components/PlAnnotations/components/AnnotationsSidebar.vue_vue_type_script_setup_true_lang.js 3.89 kB │ gzip: 1.61 kB │ map: 6.51 kB
214
213
  dist/plugins/Monetization/MonetizationSidebar.vue_vue_type_script_setup_true_lang.js 3.96 kB │ gzip: 1.71 kB │ map: 5.71 kB
215
214
  dist/components/PlAnnotations/components/FilterSidebar.vue_vue_type_script_setup_true_lang.js 3.97 kB │ gzip: 1.56 kB │ map: 7.42 kB
216
- dist/internal/createAppV1.js 4.01 kB │ gzip: 1.42 kB │ map: 14.21 kB
217
215
  dist/AgGridVue/useAgGridOptions.js 4.23 kB │ gzip: 1.32 kB │ map: 14.12 kB
218
- dist/index.js 4.53 kB │ gzip: 1.37 kB │ map: 0.25 kB
216
+ dist/index.js 4.50 kB │ gzip: 1.36 kB │ map: 0.25 kB
219
217
  dist/components/PlTableFilters/PlTableFiltersV2.vue_vue_type_script_setup_true_lang.js 4.90 kB │ gzip: 2.02 kB │ map: 9.61 kB
220
218
  dist/components/PlBtnExportArchive/PlBtnExportArchive.vue_vue_type_script_setup_true_lang.js 5.19 kB │ gzip: 2.16 kB │ map: 10.36 kB
221
- dist/internal/createAppV2.js 5.26 kB │ gzip: 1.98 kB │ map: 17.78 kB
222
219
  dist/components/PlAgDataTable/sources/table-state-v2.js 5.67 kB │ gzip: 1.82 kB │ map: 19.65 kB
223
- dist/internal/createAppV3.js 6.19 kB │ gzip: 2.34 kB │ map: 21.40 kB
220
+ dist/internal/createAppV3.js 6.19 kB │ gzip: 2.33 kB │ map: 21.40 kB
224
221
  dist/components/PlAgDataTable/sources/table-source-v2.js 7.59 kB │ gzip: 2.88 kB │ map: 27.20 kB
225
222
  dist/components/PlAdvancedFilter/PlAdvancedFilter.vue_vue_type_script_setup_true_lang.js 8.57 kB │ gzip: 2.60 kB │ map: 18.58 kB
226
223
  dist/components/PlAdvancedFilter/FilterEditor.vue_vue_type_script_setup_true_lang.js 10.58 kB │ gzip: 3.14 kB │ map: 24.73 kB
227
224
  dist/components/PlAgDataTable/PlAgDataTableV2.vue_vue_type_script_setup_true_lang.js 12.81 kB │ gzip: 4.02 kB │ map: 32.00 kB
228
225
 
229
226
  [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
230
- - sourcemaps (31%)
231
- - vite:dts (25%)
227
+ - sourcemaps (25%)
228
+ - vite:dts (23%)
229
+ - vite:css-post (19%)
232
230
  - vite:vue (12%)
233
- - vite:css-post (10%)
234
231
  - vite:css (7%)
235
232
  See https://rolldown.rs/options/checks#plugintimings for more details.
236
233
  
237
- ✓ built in 8.04s
234
+ ✓ built in 6.05s
238
235
  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.82.6 formatter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.83.0 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 1766ms on 138 files using 16 threads.
11
+ Finished in 2365ms on 129 files using 16 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.82.6 linter:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.83.0 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 25ms on 121 files with 108 rules using 16 threads.
9
+ Finished in 32ms on 112 files with 108 rules using 16 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.82.6 types:check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.83.0 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,43 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.83.0
4
+
5
+ ### Minor Changes
6
+
7
+ - be89730: Remove everything that _created_ the v1/v2 block format.
8
+
9
+ SDK-version backward compatibility is already broken, so nothing is left to serve.
10
+ `BlockModelV3` + `defineAppV3` are the only way to author a block now.
11
+
12
+ Removed from `@platforma-sdk/model`:
13
+
14
+ - `BlockModel` (the v1/v2 builder) and `RenderCtxLegacy` / `RenderFunctionLegacy`
15
+ - the `TypedConfig` builder DSL — `config/actions.ts` (`makeObject`, `getJsonField`,
16
+ `mapArrayValues`, `getBlobContent*`, `Args`/`It`/`MainOutputs`, …) and the
17
+ type-level machinery that existed only to type it (`actions_kinds.ts`,
18
+ `type_util.ts`, `ConfigResult`, `ExtractAction`, the `TypedConfig` brand)
19
+ - `ref_util.ts` (`fromPlRef`, `fromPlOption`)
20
+ - `ResolveCfgType`, `InferOutputType`, `InferOutputsFromConfigs`
21
+
22
+ Removed from `@platforma-sdk/ui-vue`:
23
+
24
+ - `defineApp` (the v1/v2 entry point), `createAppV1`, `createAppV2`, `createAppModel`
25
+ - `AppV1`/`AppV2`/`SdkPluginV1`/`SdkPluginV2`; `SdkPlugin` is now `SdkPluginV3`
26
+ - the v1/v2 test helpers (`BlockMock`, `createMockApi`) and static tests
27
+
28
+ Reading the old format is untouched: `Cfg`, `PlResourceEntry`, `StdCtx`,
29
+ `downgradeCfgOrLambda`, the middle layer's `cfg_render` executor, `PlatformaV1` /
30
+ `PlatformaV2` / `BlockApiV1` / `BlockApiV2`, the `configVersion: 3` branch in
31
+ block-config normalization, `block_storage` schema version 1 and
32
+ `DataModel.upgradeLegacy()` all stay — the desktop app still runs blocks published
33
+ before this change, and existing projects still carry their state.
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies [be89730]
38
+ - @platforma-sdk/model@1.83.0
39
+ - @milaboratories/uikit@2.15.26
40
+
3
41
  ## 1.82.6
4
42
 
5
43
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"PlAnnotations.vue_vue_type_script_setup_true_lang.js","names":["$style"],"sources":["../../../../src/components/PlAnnotations/components/PlAnnotations.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Props as BaseProps } from \"./FilterSidebar.vue\";\nexport type Props = Omit<BaseProps, \"step\" | \"onUpdateStep\"> & {\n annotation: Annotation;\n onUpdateAnnotation: (annotation: Annotation) => void;\n onDeleteSchema?: () => void;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, effect, shallowRef } from \"vue\";\n\nimport { isNil } from \"@milaboratories/helpers\";\nimport { produce } from \"immer\";\nimport { PlSidebarGroup, useConfirm } from \"@milaboratories/uikit\";\n\nimport type { Annotation, Filter } from \"../types\";\nimport AnnotationsSidebar from \"./AnnotationsSidebar.vue\";\nimport FilterSidebar from \"./FilterSidebar.vue\";\n\nconst props = defineProps<Props>();\n\nconst selectedStepId = shallowRef<undefined | number>(undefined);\n\nconst selectedStep = computed(() => {\n return isNil(selectedStepId.value) || isNil(props.annotation)\n ? undefined\n : props.annotation.steps.find((step) => step.id === selectedStepId.value);\n});\n\neffect(function setDefaultStepId() {\n if (selectedStepId.value === undefined && props.annotation.steps.length > 0) {\n selectedStepId.value = props.annotation.steps[0].id;\n }\n});\n\nconst confirmResetSchema = useConfirm({\n title: \"Reset Schema\",\n message: \"Are you sure you want to reset the schema? This action cannot be undone.\",\n confirmLabel: \"Yes, reset\",\n cancelLabel: \"No, cancel\",\n});\n\nasync function handleDeleteSchema() {\n if (await confirmResetSchema()) {\n selectedStepId.value = undefined;\n props.onDeleteSchema?.();\n }\n}\n\nfunction updateSelectedStepId(id: undefined | number) {\n selectedStepId.value = id;\n}\n\nfunction updateSelectedStep(step: Filter) {\n props.onUpdateAnnotation(\n produce(props.annotation, (draft) => {\n const idx = draft.steps.findIndex((s) => s.id === step.id);\n if (idx !== -1) {\n draft.steps[idx] = step;\n }\n }),\n );\n}\n</script>\n\n<template>\n <PlSidebarGroup>\n <template #item-0>\n <AnnotationsSidebar\n :annotation=\"props.annotation\"\n :selected-step-id=\"selectedStepId\"\n :on-update-annotation=\"props.onUpdateAnnotation\"\n :on-update-selected-step-id=\"updateSelectedStepId\"\n :class=\"$style.sidebarItem\"\n @delete-schema=\"handleDeleteSchema\"\n />\n </template>\n <template #item-1>\n <FilterSidebar\n v-if=\"selectedStep\"\n :step=\"selectedStep\"\n :on-update-step=\"updateSelectedStep\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :hasSelectedColumns=\"props.hasSelectedColumns\"\n :getValuesForSelectedColumns=\"props.getValuesForSelectedColumns\"\n />\n </template>\n </PlSidebarGroup>\n</template>\n\n<style module>\n.sidebarItem {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAoBA,IAAM,IAAQ,GAER,IAAiB,EAA+B,KAAA,EAAU,EAE1D,IAAe,QACZ,EAAM,EAAe,MAAM,IAAI,EAAM,EAAM,WAAU,GACxD,KAAA,IACA,EAAM,WAAW,MAAM,MAAM,MAAS,EAAK,OAAO,EAAe,MAAM,CAC3E;AAEF,IAAO,WAA4B;AACjC,GAAI,EAAe,UAAU,KAAA,KAAa,EAAM,WAAW,MAAM,SAAS,MACxE,EAAe,QAAQ,EAAM,WAAW,MAAM,GAAG;IAEnD;EAEF,IAAM,IAAqB,EAAW;GACpC,OAAO;GACP,SAAS;GACT,cAAc;GACd,aAAa;GACd,CAAC;EAEF,eAAe,IAAqB;AAClC,GAAI,MAAM,GAAoB,KAC5B,EAAe,QAAQ,KAAA,GACvB,EAAM,kBAAkB;;EAI5B,SAAS,EAAqB,GAAwB;AACpD,KAAe,QAAQ;;EAGzB,SAAS,EAAmB,GAAc;AACxC,KAAM,mBACJ,EAAQ,EAAM,aAAa,MAAU;IACnC,IAAM,IAAM,EAAM,MAAM,WAAW,MAAM,EAAE,OAAO,EAAK,GAAG;AAC1D,IAAI,MAAQ,OACV,EAAM,MAAM,KAAO;KAErB,CACH;;yBAKD,EAuBiB,EAAA,EAAA,EAAA,MAAA;GAtBJ,UAAM,QAQb,CAPF,EAOE,GAAA;IANC,YAAY,EAAM;IAClB,oBAAkB,EAAA;IAClB,wBAAsB,EAAM;IAC5B,8BAA4B;IAC5B,OAAK,EAAEA,EAAAA,OAAO,YAAW;IACzB,gBAAe;;;;;;;GAGT,UAAM,QAUb,CARM,EAAA,SAAA,GAAA,EADR,EASE,GAAA;;IAPC,MAAM,EAAA;IACN,kBAAgB;IAChB,OAAK,EAAEA,EAAAA,OAAO,YAAW;IACzB,SAAS,EAAM;IACf,uBAAqB,EAAM;IAC3B,oBAAoB,EAAM;IAC1B,6BAA6B,EAAM"}
1
+ {"version":3,"file":"PlAnnotations.vue_vue_type_script_setup_true_lang.js","names":["$style"],"sources":["../../../../src/components/PlAnnotations/components/PlAnnotations.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Props as BaseProps } from \"./FilterSidebar.vue\";\nexport type Props = Omit<BaseProps, \"step\" | \"onUpdateStep\"> & {\n annotation: Annotation;\n onUpdateAnnotation: (annotation: Annotation) => void;\n onDeleteSchema?: () => void;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, effect, shallowRef } from \"vue\";\n\nimport { isNil } from \"@milaboratories/helpers\";\nimport { produce } from \"immer\";\nimport { PlSidebarGroup, useConfirm } from \"@milaboratories/uikit\";\n\nimport type { Annotation, Filter } from \"../types\";\nimport AnnotationsSidebar from \"./AnnotationsSidebar.vue\";\nimport FilterSidebar from \"./FilterSidebar.vue\";\n\nconst props = defineProps<Props>();\n\nconst selectedStepId = shallowRef<undefined | number>(undefined);\n\nconst selectedStep = computed(() => {\n return isNil(selectedStepId.value) || isNil(props.annotation)\n ? undefined\n : props.annotation.steps.find((step) => step.id === selectedStepId.value);\n});\n\neffect(function setDefaultStepId() {\n if (selectedStepId.value === undefined && props.annotation.steps.length > 0) {\n selectedStepId.value = props.annotation.steps[0].id;\n }\n});\n\nconst confirmResetSchema = useConfirm({\n title: \"Reset Schema\",\n message: \"Are you sure you want to reset the schema? This action cannot be undone.\",\n confirmLabel: \"Yes, reset\",\n cancelLabel: \"No, cancel\",\n});\n\nasync function handleDeleteSchema() {\n if (await confirmResetSchema()) {\n selectedStepId.value = undefined;\n props.onDeleteSchema?.();\n }\n}\n\nfunction updateSelectedStepId(id: undefined | number) {\n selectedStepId.value = id;\n}\n\nfunction updateSelectedStep(step: Filter) {\n props.onUpdateAnnotation(\n produce(props.annotation, (draft) => {\n const idx = draft.steps.findIndex((s) => s.id === step.id);\n if (idx !== -1) {\n draft.steps[idx] = step;\n }\n }),\n );\n}\n</script>\n\n<template>\n <PlSidebarGroup>\n <template #item-0>\n <AnnotationsSidebar\n :annotation=\"props.annotation\"\n :selected-step-id=\"selectedStepId\"\n :on-update-annotation=\"props.onUpdateAnnotation\"\n :on-update-selected-step-id=\"updateSelectedStepId\"\n :class=\"$style.sidebarItem\"\n @delete-schema=\"handleDeleteSchema\"\n />\n </template>\n <template #item-1>\n <FilterSidebar\n v-if=\"selectedStep\"\n :step=\"selectedStep\"\n :on-update-step=\"updateSelectedStep\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :hasSelectedColumns=\"props.hasSelectedColumns\"\n :getValuesForSelectedColumns=\"props.getValuesForSelectedColumns\"\n />\n </template>\n </PlSidebarGroup>\n</template>\n\n<style module>\n.sidebarItem {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAoBA,IAAM,IAAQ,GAER,IAAiB,EAA+B,KAAA,EAAU,EAE1D,IAAe,QACZ,EAAM,EAAe,MAAM,IAAI,EAAM,EAAM,WAAU,GACxD,KAAA,IACA,EAAM,WAAW,MAAM,MAAM,MAAS,EAAK,OAAO,EAAe,MAAM,CAC3E;AAEF,IAAO,WAA4B;AACjC,GAAI,EAAe,UAAU,KAAA,KAAa,EAAM,WAAW,MAAM,SAAS,MACxE,EAAe,QAAQ,EAAM,WAAW,MAAM,GAAG;IAEnD;EAEF,IAAM,IAAqB,EAAW;GACpC,OAAO;GACP,SAAS;GACT,cAAc;GACd,aAAa;GACd,CAAC;EAEF,eAAe,IAAqB;AAClC,GAAI,MAAM,GAAoB,KAC5B,EAAe,QAAQ,KAAA,GACvB,EAAM,kBAAkB;;EAI5B,SAAS,EAAqB,GAAwB;AACpD,KAAe,QAAQ;;EAGzB,SAAS,EAAmB,GAAc;AACxC,KAAM,mBACJ,EAAQ,EAAM,aAAa,MAAU;IACnC,IAAM,IAAM,EAAM,MAAM,WAAW,MAAM,EAAE,OAAO,EAAK,GAAG;AAC1D,IAAI,MAAQ,OACV,EAAM,MAAM,KAAO;KAErB,CACH;;yBAKD,EAuBiB,EAAA,EAAA,EAAA,MAAA;GAtBJ,UAAM,QAQb,CAPF,EAOE,GAAA;IANC,YAAY,EAAM;IAClB,oBAAkB,EAAA;IAClB,wBAAsB,EAAM;IAC5B,8BAA4B;IAC5B,OAAK,EAAEA,EAAAA,OAAO,YAAW;IACzB,gBAAe;;;;;;;GAGT,UAAM,QAiBZ,CAfK,EAAA,SAAA,GAAA,EADR,EASE,GAAA;;IAPC,MAAM,EAAA;IACN,kBAAgB;IAChB,OAAK,EAAEA,EAAAA,OAAO,YAAW;IACzB,SAAS,EAAM;IACf,uBAAqB,EAAM;IAC3B,oBAAoB,EAAM;IAC1B,6BAA6B,EAAM"}
@@ -1,46 +1,16 @@
1
- import { PlatformaV3, PlatformaV1, PlatformaV2, BlockCodeKnownFeatureFlags, UiServices as AllUiServices, BlockOutputsBase, BlockModelInfo } from '@platforma-sdk/model';
1
+ import { PlatformaV3, BlockCodeKnownFeatureFlags, UiServices as AllUiServices, BlockOutputsBase, BlockModelInfo } from '@platforma-sdk/model';
2
2
  import { App as VueApp, Component, Reactive } from 'vue';
3
- import { BaseAppV1 } from './internal/createAppV1';
4
- import { BaseAppV2 } from './internal/createAppV2';
5
3
  import { BaseAppV3 } from './internal/createAppV3';
6
4
  import { AppSettings, ExtendSettings } from './types';
7
5
  export declare const pluginDataKey: unique symbol;
8
6
  export declare function useSdkPlugin(): SdkPlugin;
9
7
  export declare function useFeatureFlags(): BlockCodeKnownFeatureFlags;
10
- export declare function defineApp<Args = unknown, Outputs extends BlockOutputsBase = BlockOutputsBase, UiState = unknown, Href extends `/${string}` = `/${string}`, Extend extends ExtendSettings<Href> = ExtendSettings<Href>>(platforma: PlatformaV1<Args, Outputs, UiState, Href> & {
11
- blockModelInfo: BlockModelInfo;
12
- }, extendApp: (app: BaseAppV1<Args, Outputs, UiState, Href>) => Extend, settings?: AppSettings): SdkPluginV1<Args, Outputs, UiState, Href, Extend>;
13
- export declare function defineApp<Args = unknown, Outputs extends BlockOutputsBase = BlockOutputsBase, UiState = unknown, Href extends `/${string}` = `/${string}`, Extend extends ExtendSettings<Href> = ExtendSettings<Href>>(platforma: PlatformaV2<Args, Outputs, UiState, Href> & {
14
- blockModelInfo: BlockModelInfo;
15
- }, extendApp: (app: BaseAppV2<Args, Outputs, UiState, Href>) => Extend, settings?: AppSettings): SdkPluginV2<Args, Outputs, UiState, Href, Extend>;
16
8
  export declare function defineAppV3<Data = unknown, Args = unknown, Outputs extends BlockOutputsBase = BlockOutputsBase, Href extends `/${string}` = `/${string}`, Plugins extends Record<string, unknown> = Record<string, unknown>, UiServices extends Partial<AllUiServices> = Partial<AllUiServices>, Extend extends ExtendSettings<Href> = ExtendSettings<Href>>(platforma: PlatformaV3<Data, Args, Outputs, Href, Plugins, UiServices> & {
17
9
  blockModelInfo: BlockModelInfo;
18
10
  }, extendApp: (app: BaseAppV3<Data, Args, Outputs, Href, Plugins, UiServices>) => Extend, settings?: AppSettings): SdkPluginV3<Data, Args, Outputs, Href, Plugins, Extend, UiServices>;
19
- export type AppV1<Args = unknown, Outputs extends BlockOutputsBase = BlockOutputsBase, UiState = unknown, Href extends `/${string}` = `/${string}`, Local extends ExtendSettings<Href> = ExtendSettings<Href>> = BaseAppV1<Args, Outputs, UiState, Href> & Reactive<Omit<Local, "routes">> & {
20
- getRoute(href: Href): Component | undefined;
21
- };
22
- export type AppV2<Args = unknown, Outputs extends BlockOutputsBase = BlockOutputsBase, UiState = unknown, Href extends `/${string}` = `/${string}`, Local extends ExtendSettings<Href> = ExtendSettings<Href>> = BaseAppV2<Args, Outputs, UiState, Href> & Reactive<Omit<Local, "routes">> & {
23
- getRoute(href: Href): Component | undefined;
24
- };
25
11
  export type AppV3<Data = unknown, Args = unknown, Outputs extends BlockOutputsBase = NonNullable<unknown>, Href extends `/${string}` = `/${string}`, Plugins extends Record<string, unknown> = Record<string, unknown>, Local extends ExtendSettings<Href> = ExtendSettings<Href>, UiServices extends Partial<AllUiServices> = Partial<AllUiServices>> = BaseAppV3<Data, Args, Outputs, Href, Plugins, UiServices> & Reactive<Omit<Local, "routes">> & {
26
12
  getRoute(href: Href): Component | undefined;
27
13
  };
28
- export type SdkPluginV1<Args = unknown, Outputs extends BlockOutputsBase = BlockOutputsBase, UiState = unknown, Href extends `/${string}` = `/${string}`, Local extends ExtendSettings<Href> = ExtendSettings<Href>> = {
29
- apiVersion: 1;
30
- featureFlags: BlockCodeKnownFeatureFlags;
31
- loaded: boolean;
32
- error: unknown;
33
- useApp<PageHref extends Href = Href>(): AppV1<Args, Outputs, UiState, PageHref, Local>;
34
- install(app: VueApp): void;
35
- };
36
- export type SdkPluginV2<Args = unknown, Outputs extends BlockOutputsBase = BlockOutputsBase, UiState = unknown, Href extends `/${string}` = `/${string}`, Local extends ExtendSettings<Href> = ExtendSettings<Href>> = {
37
- apiVersion: 2;
38
- featureFlags: BlockCodeKnownFeatureFlags;
39
- loaded: boolean;
40
- error: unknown;
41
- useApp<PageHref extends Href = Href>(): AppV2<Args, Outputs, UiState, PageHref, Local>;
42
- install(app: VueApp): void;
43
- };
44
14
  export type SdkPluginV3<Data = unknown, Args = unknown, Outputs extends BlockOutputsBase = BlockOutputsBase, Href extends `/${string}` = `/${string}`, Plugins extends Record<string, unknown> = Record<string, unknown>, Local extends ExtendSettings<Href> = ExtendSettings<Href>, UiServices extends Partial<AllUiServices> = Partial<AllUiServices>> = {
45
15
  apiVersion: 3;
46
16
  featureFlags: BlockCodeKnownFeatureFlags;
@@ -49,5 +19,5 @@ export type SdkPluginV3<Data = unknown, Args = unknown, Outputs extends BlockOut
49
19
  useApp<PageHref extends Href = Href>(): AppV3<Data, Args, Outputs, PageHref, Plugins, Local, UiServices>;
50
20
  install(app: VueApp): void;
51
21
  };
52
- export type SdkPlugin = SdkPluginV1 | SdkPluginV2 | SdkPluginV3;
22
+ export type SdkPlugin = SdkPluginV3;
53
23
  //# sourceMappingURL=defineApp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineApp.d.ts","sourceRoot":"","sources":["../src/defineApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defineApp.d.ts","sourceRoot":"","sources":["../src/defineApp.ts"],"names":[],"mappings":"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"}
package/dist/defineApp.js CHANGED
@@ -1,86 +1,44 @@
1
1
  import { notEmpty as e } from "./lib/util/helpers/dist/utils.js";
2
2
  import "./lib/util/helpers/dist/index.js";
3
- import { createAppV1 as t } from "./internal/createAppV1.js";
4
- import { createAppV2 as n } from "./internal/createAppV2.js";
5
- import { createAppV3 as r } from "./internal/createAppV3.js";
6
- import { inject as i, markRaw as a, reactive as o } from "vue";
7
- import { getPlatformaApiVersion as s, unwrapResult as c } from "@platforma-sdk/model";
3
+ import { createAppV3 as t } from "./internal/createAppV3.js";
4
+ import { inject as n, markRaw as r, reactive as i } from "vue";
5
+ import { getPlatformaApiVersion as a, unwrapResult as o } from "@platforma-sdk/model";
8
6
  //#region src/defineApp.ts
9
- var l = Symbol("sdk-vue"), u = Symbol("plugin-data-access");
10
- function d() {
11
- return i(l);
7
+ var s = Symbol("sdk-vue"), c = Symbol("plugin-data-access");
8
+ function l() {
9
+ return n(s);
12
10
  }
13
- function f() {
14
- return d().featureFlags;
11
+ function u() {
12
+ return l().featureFlags;
15
13
  }
16
- function p(r, i, u = {}) {
17
- let d, f = r.apiVersion ?? 1, p = s(), m = async () => {
18
- if (p !== f) throw Error(`Block requested API version ${p} but runtime API version is ${f}.
19
- Please update the desktop app to use the latest API version.`);
20
- r.apiVersion === void 0 || r.apiVersion === 1 ? await r.loadBlockState().then((e) => {
21
- h.loaded = !0;
22
- let n = t(e, r, u), o = i(n), s = Object.fromEntries(Object.entries(o.routes).map(([e, t]) => [e, a(typeof t == "function" ? t() : t)]));
23
- d = Object.assign(n, {
24
- ...o,
25
- getRoute(e) {
26
- return s[e];
27
- }
28
- });
29
- }) : r.apiVersion === 2 && await r.loadBlockState().then((e) => {
30
- let t = c(e);
31
- h.loaded = !0;
32
- let o = n(t, r, u), s = i(o), l = Object.fromEntries(Object.entries(s.routes).map(([e, t]) => [e, a(typeof t == "function" ? t() : t)]));
33
- d = Object.assign(o, {
34
- ...s,
35
- getRoute(e) {
36
- return l[e];
37
- }
38
- });
39
- });
40
- }, h = o({
41
- apiVersion: r.apiVersion ?? 1,
42
- featureFlags: r.blockModelInfo.featureFlags,
43
- loaded: !1,
44
- error: void 0,
45
- useApp() {
46
- return e(d, "App is not loaded");
47
- },
48
- install(e) {
49
- e.provide(l, this), m().catch((e) => {
50
- console.error("load initial state error", e), h.error = e;
51
- });
52
- }
53
- });
54
- return h;
55
- }
56
- function m(t, n, i = {}) {
57
- let d, f, p = s(), m = async () => {
14
+ function d(n, l, u = {}) {
15
+ let d, f, p = a(), m = async () => {
58
16
  if (p !== 3) throw Error(`Block requested API version ${p} but runtime API version is 3.
59
17
  Please update the desktop app to use the latest API version.`);
60
- await t.loadBlockState().then((e) => {
61
- let o = c(e);
18
+ await n.loadBlockState().then((e) => {
19
+ let i = o(e);
62
20
  h.loaded = !0;
63
- let { app: s, pluginAccess: l } = r(o, t, i);
21
+ let { app: a, pluginAccess: s } = t(i, n, u);
64
22
  if (!f) throw Error("Plugin data injection failed: Vue app instance not captured during install()");
65
- f.provide(u, l);
66
- let p = n(s), m = Object.fromEntries(Object.entries(p.routes).map(([e, t]) => [e, a(typeof t == "function" ? t() : t)]));
67
- d = Object.assign(s, {
23
+ f.provide(c, s);
24
+ let p = l(a), m = Object.fromEntries(Object.entries(p.routes).map(([e, t]) => [e, r(typeof t == "function" ? t() : t)]));
25
+ d = Object.assign(a, {
68
26
  ...p,
69
27
  getRoute(e) {
70
28
  return m[e];
71
29
  }
72
30
  });
73
31
  });
74
- }, h = o({
32
+ }, h = i({
75
33
  apiVersion: 3,
76
- featureFlags: t.blockModelInfo.featureFlags,
34
+ featureFlags: n.blockModelInfo.featureFlags,
77
35
  loaded: !1,
78
36
  error: void 0,
79
37
  useApp() {
80
38
  return e(d, "App is not loaded");
81
39
  },
82
40
  install(e) {
83
- f = e, e.provide(l, this), m().catch((e) => {
41
+ f = e, e.provide(s, this), m().catch((e) => {
84
42
  console.error("load initial state error", e), h.error = e;
85
43
  });
86
44
  }
@@ -88,6 +46,6 @@ function m(t, n, i = {}) {
88
46
  return h;
89
47
  }
90
48
  //#endregion
91
- export { p as defineApp, m as defineAppV3, u as pluginDataKey, f as useFeatureFlags, d as useSdkPlugin };
49
+ export { d as defineAppV3, c as pluginDataKey, u as useFeatureFlags, l as useSdkPlugin };
92
50
 
93
51
  //# sourceMappingURL=defineApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineApp.js","names":[],"sources":["../src/defineApp.ts"],"sourcesContent":["import { notEmpty } from \"@milaboratories/helpers\";\nimport type {\n PlatformaExtended,\n PlatformaV3,\n PlatformaV1,\n PlatformaV2,\n BlockCodeKnownFeatureFlags,\n UiServices as AllUiServices,\n} from \"@platforma-sdk/model\";\nimport {\n getPlatformaApiVersion,\n unwrapResult,\n type BlockOutputsBase,\n type BlockModelInfo,\n} from \"@platforma-sdk/model\";\nimport type { App as VueApp, Component, Reactive } from \"vue\";\nimport { inject, markRaw, reactive } from \"vue\";\nimport { createAppV1, type BaseAppV1 } from \"./internal/createAppV1\";\nimport { createAppV2, type BaseAppV2 } from \"./internal/createAppV2\";\nimport { createAppV3, type BaseAppV3 } from \"./internal/createAppV3\";\nimport type { AppSettings, ExtendSettings, Routes } from \"./types\";\n\nconst pluginKey = Symbol(\"sdk-vue\");\nexport const pluginDataKey = Symbol(\"plugin-data-access\");\n\nexport function useSdkPlugin(): SdkPlugin {\n return inject(pluginKey)!;\n}\n\nexport function useFeatureFlags() {\n const sdk = useSdkPlugin();\n return sdk.featureFlags;\n}\n\nexport function defineApp<\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n UiState = unknown,\n Href extends `/${string}` = `/${string}`,\n Extend extends ExtendSettings<Href> = ExtendSettings<Href>,\n>(\n platforma: PlatformaV1<Args, Outputs, UiState, Href> & {\n blockModelInfo: BlockModelInfo;\n },\n extendApp: (app: BaseAppV1<Args, Outputs, UiState, Href>) => Extend,\n settings?: AppSettings,\n): SdkPluginV1<Args, Outputs, UiState, Href, Extend>;\n\nexport function defineApp<\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n UiState = unknown,\n Href extends `/${string}` = `/${string}`,\n Extend extends ExtendSettings<Href> = ExtendSettings<Href>,\n>(\n platforma: PlatformaV2<Args, Outputs, UiState, Href> & {\n blockModelInfo: BlockModelInfo;\n },\n extendApp: (app: BaseAppV2<Args, Outputs, UiState, Href>) => Extend,\n settings?: AppSettings,\n): SdkPluginV2<Args, Outputs, UiState, Href, Extend>;\n\nexport function defineApp<\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n UiState = unknown,\n Href extends `/${string}` = `/${string}`,\n Extend extends ExtendSettings<Href> = ExtendSettings<Href>,\n>(\n platforma: PlatformaExtended<\n PlatformaV1<Args, Outputs, UiState, Href> | PlatformaV2<Args, Outputs, UiState, Href>\n >,\n\n //\n extendApp: (app: any) => Extend,\n settings: AppSettings = {},\n):\n | SdkPluginV1<Args, Outputs, UiState, Href, Extend>\n | SdkPluginV2<Args, Outputs, UiState, Href, Extend> {\n let app:\n | AppV1<Args, Outputs, UiState, Href, Extend>\n | AppV2<Args, Outputs, UiState, Href, Extend>\n | undefined = undefined;\n\n const runtimeApiVersion = platforma.apiVersion ?? 1; // undefined means 1 (backward compatibility)\n const blockRequestedApiVersion = getPlatformaApiVersion();\n\n const loadApp = async () => {\n if (blockRequestedApiVersion !== runtimeApiVersion) {\n throw new Error(`Block requested API version ${blockRequestedApiVersion} but runtime API version is ${runtimeApiVersion}.\n Please update the desktop app to use the latest API version.`);\n }\n\n if (platforma.apiVersion === undefined || platforma.apiVersion === 1) {\n await platforma.loadBlockState().then((state) => {\n plugin.loaded = true;\n const baseApp = createAppV1<Args, Outputs, UiState, Href>(state, platforma, settings);\n\n const localState = extendApp(baseApp);\n\n const routes = Object.fromEntries(\n Object.entries(localState.routes as Routes<Href>).map(([href, component]) => {\n const c = typeof component === \"function\" ? component() : component;\n return [href, markRaw(c as Component)];\n }),\n );\n\n app = Object.assign(baseApp, {\n ...localState,\n getRoute(href: Href): Component | undefined {\n return routes[href];\n },\n } as unknown as AppV1<Args, Outputs, UiState, Href, Extend>);\n });\n } else if (platforma.apiVersion === 2) {\n await platforma.loadBlockState().then((stateOrError) => {\n const state = unwrapResult(stateOrError);\n plugin.loaded = true;\n const baseApp = createAppV2<Args, Outputs, UiState, Href>(state, platforma, settings);\n\n const localState = extendApp(baseApp);\n\n const routes = Object.fromEntries(\n Object.entries(localState.routes as Routes<Href>).map(([href, component]) => {\n const c = typeof component === \"function\" ? component() : component;\n return [href, markRaw(c as Component)];\n }),\n );\n\n app = Object.assign(baseApp, {\n ...localState,\n getRoute(href: Href): Component | undefined {\n return routes[href];\n },\n } as unknown as AppV2<Args, Outputs, UiState, Href, Extend>);\n });\n }\n };\n\n const plugin = reactive({\n apiVersion: platforma.apiVersion ?? 1,\n featureFlags: platforma.blockModelInfo.featureFlags,\n loaded: false,\n error: undefined as unknown,\n useApp<PageHref extends Href = Href>() {\n return notEmpty(app, \"App is not loaded\") as\n | AppV1<Args, Outputs, UiState, PageHref, Extend>\n | AppV2<Args, Outputs, UiState, PageHref, Extend>;\n },\n install(app: VueApp) {\n app.provide(pluginKey, this);\n loadApp().catch((err) => {\n console.error(\"load initial state error\", err);\n plugin.error = err;\n });\n },\n });\n\n return plugin as\n | SdkPluginV1<Args, Outputs, UiState, Href, Extend>\n | SdkPluginV2<Args, Outputs, UiState, Href, Extend>;\n}\n\nexport function defineAppV3<\n Data = unknown,\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n Href extends `/${string}` = `/${string}`,\n Plugins extends Record<string, unknown> = Record<string, unknown>,\n UiServices extends Partial<AllUiServices> = Partial<AllUiServices>,\n Extend extends ExtendSettings<Href> = ExtendSettings<Href>,\n>(\n platforma: PlatformaV3<Data, Args, Outputs, Href, Plugins, UiServices> & {\n blockModelInfo: BlockModelInfo;\n },\n extendApp: (app: BaseAppV3<Data, Args, Outputs, Href, Plugins, UiServices>) => Extend,\n settings: AppSettings = {},\n): SdkPluginV3<Data, Args, Outputs, Href, Plugins, Extend, UiServices> {\n let app: AppV3<Data, Args, Outputs, Href, Plugins, Extend, UiServices> | undefined = undefined;\n\n // Captured during install() so V3 can provide plugin data access after async load\n let vueAppInstance: VueApp | undefined;\n\n const runtimeApiVersion = 3;\n const blockRequestedApiVersion = getPlatformaApiVersion();\n\n const loadApp = async () => {\n if (blockRequestedApiVersion !== runtimeApiVersion) {\n throw new Error(`Block requested API version ${blockRequestedApiVersion} but runtime API version is ${runtimeApiVersion}.\n Please update the desktop app to use the latest API version.`);\n }\n\n await platforma.loadBlockState().then((stateOrError) => {\n const state = unwrapResult(stateOrError);\n plugin.loaded = true;\n const { app: baseApp, pluginAccess } = createAppV3<\n Data,\n Args,\n Outputs,\n Href,\n Plugins,\n UiServices\n >(state, platforma, settings);\n\n if (!vueAppInstance) {\n throw new Error(\n \"Plugin data injection failed: Vue app instance not captured during install()\",\n );\n }\n vueAppInstance.provide(pluginDataKey, pluginAccess);\n\n const localState = extendApp(baseApp);\n\n const routes = Object.fromEntries(\n Object.entries(localState.routes as Routes<Href>).map(([href, component]) => {\n const c = typeof component === \"function\" ? component() : component;\n return [href, markRaw(c as Component)];\n }),\n );\n\n app = Object.assign(baseApp, {\n ...localState,\n getRoute(href: Href): Component | undefined {\n return routes[href];\n },\n } as AppV3<Data, Args, Outputs, Href, Plugins, Extend, UiServices>);\n });\n };\n\n const plugin = reactive({\n apiVersion: 3,\n featureFlags: platforma.blockModelInfo.featureFlags,\n loaded: false,\n error: undefined,\n useApp<PageHref extends Href = Href>() {\n return notEmpty(app, \"App is not loaded\") as AppV3<\n Data,\n Args,\n Outputs,\n PageHref,\n Plugins,\n Extend,\n UiServices\n >;\n },\n install(app: VueApp) {\n vueAppInstance = app;\n app.provide(pluginKey, this);\n loadApp().catch((err) => {\n console.error(\"load initial state error\", err);\n plugin.error = err;\n });\n },\n });\n\n return plugin as SdkPluginV3<Data, Args, Outputs, Href, Plugins, Extend, UiServices>;\n}\n\nexport type AppV1<\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n UiState = unknown,\n Href extends `/${string}` = `/${string}`,\n Local extends ExtendSettings<Href> = ExtendSettings<Href>,\n> = BaseAppV1<Args, Outputs, UiState, Href> &\n Reactive<Omit<Local, \"routes\">> & { getRoute(href: Href): Component | undefined };\n\nexport type AppV2<\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n UiState = unknown,\n Href extends `/${string}` = `/${string}`,\n Local extends ExtendSettings<Href> = ExtendSettings<Href>,\n> = BaseAppV2<Args, Outputs, UiState, Href> &\n Reactive<Omit<Local, \"routes\">> & { getRoute(href: Href): Component | undefined };\n\nexport type AppV3<\n Data = unknown,\n Args = unknown,\n Outputs extends BlockOutputsBase = NonNullable<unknown>,\n Href extends `/${string}` = `/${string}`,\n Plugins extends Record<string, unknown> = Record<string, unknown>,\n Local extends ExtendSettings<Href> = ExtendSettings<Href>,\n UiServices extends Partial<AllUiServices> = Partial<AllUiServices>,\n> = BaseAppV3<Data, Args, Outputs, Href, Plugins, UiServices> &\n Reactive<Omit<Local, \"routes\">> & { getRoute(href: Href): Component | undefined };\n\n// ---------------------------------------------------------------------------\n// SdkPlugin types\n// ---------------------------------------------------------------------------\n\nexport type SdkPluginV1<\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n UiState = unknown,\n Href extends `/${string}` = `/${string}`,\n Local extends ExtendSettings<Href> = ExtendSettings<Href>,\n> = {\n apiVersion: 1;\n featureFlags: BlockCodeKnownFeatureFlags;\n loaded: boolean;\n error: unknown;\n useApp<PageHref extends Href = Href>(): AppV1<Args, Outputs, UiState, PageHref, Local>;\n install(app: VueApp): void;\n};\n\nexport type SdkPluginV2<\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n UiState = unknown,\n Href extends `/${string}` = `/${string}`,\n Local extends ExtendSettings<Href> = ExtendSettings<Href>,\n> = {\n apiVersion: 2;\n featureFlags: BlockCodeKnownFeatureFlags;\n loaded: boolean;\n error: unknown;\n useApp<PageHref extends Href = Href>(): AppV2<Args, Outputs, UiState, PageHref, Local>;\n install(app: VueApp): void;\n};\n\nexport type SdkPluginV3<\n Data = unknown,\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n Href extends `/${string}` = `/${string}`,\n Plugins extends Record<string, unknown> = Record<string, unknown>,\n Local extends ExtendSettings<Href> = ExtendSettings<Href>,\n UiServices extends Partial<AllUiServices> = Partial<AllUiServices>,\n> = {\n apiVersion: 3;\n featureFlags: BlockCodeKnownFeatureFlags;\n loaded: boolean;\n error: unknown;\n useApp<PageHref extends Href = Href>(): AppV3<\n Data,\n Args,\n Outputs,\n PageHref,\n Plugins,\n Local,\n UiServices\n >;\n install(app: VueApp): void;\n};\n\nexport type SdkPlugin = SdkPluginV1 | SdkPluginV2 | SdkPluginV3;\n"],"mappings":"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"}
1
+ {"version":3,"file":"defineApp.js","names":[],"sources":["../src/defineApp.ts"],"sourcesContent":["import { notEmpty } from \"@milaboratories/helpers\";\nimport type {\n PlatformaV3,\n BlockCodeKnownFeatureFlags,\n UiServices as AllUiServices,\n} from \"@platforma-sdk/model\";\nimport {\n getPlatformaApiVersion,\n unwrapResult,\n type BlockOutputsBase,\n type BlockModelInfo,\n} from \"@platforma-sdk/model\";\nimport type { App as VueApp, Component, Reactive } from \"vue\";\nimport { inject, markRaw, reactive } from \"vue\";\nimport { createAppV3, type BaseAppV3 } from \"./internal/createAppV3\";\nimport type { AppSettings, ExtendSettings, Routes } from \"./types\";\n\nconst pluginKey = Symbol(\"sdk-vue\");\nexport const pluginDataKey = Symbol(\"plugin-data-access\");\n\nexport function useSdkPlugin(): SdkPlugin {\n return inject(pluginKey)!;\n}\n\nexport function useFeatureFlags() {\n const sdk = useSdkPlugin();\n return sdk.featureFlags;\n}\n\nexport function defineAppV3<\n Data = unknown,\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n Href extends `/${string}` = `/${string}`,\n Plugins extends Record<string, unknown> = Record<string, unknown>,\n UiServices extends Partial<AllUiServices> = Partial<AllUiServices>,\n Extend extends ExtendSettings<Href> = ExtendSettings<Href>,\n>(\n platforma: PlatformaV3<Data, Args, Outputs, Href, Plugins, UiServices> & {\n blockModelInfo: BlockModelInfo;\n },\n extendApp: (app: BaseAppV3<Data, Args, Outputs, Href, Plugins, UiServices>) => Extend,\n settings: AppSettings = {},\n): SdkPluginV3<Data, Args, Outputs, Href, Plugins, Extend, UiServices> {\n let app: AppV3<Data, Args, Outputs, Href, Plugins, Extend, UiServices> | undefined = undefined;\n\n // Captured during install() so V3 can provide plugin data access after async load\n let vueAppInstance: VueApp | undefined;\n\n const runtimeApiVersion = 3;\n const blockRequestedApiVersion = getPlatformaApiVersion();\n\n const loadApp = async () => {\n if (blockRequestedApiVersion !== runtimeApiVersion) {\n throw new Error(`Block requested API version ${blockRequestedApiVersion} but runtime API version is ${runtimeApiVersion}.\n Please update the desktop app to use the latest API version.`);\n }\n\n await platforma.loadBlockState().then((stateOrError) => {\n const state = unwrapResult(stateOrError);\n plugin.loaded = true;\n const { app: baseApp, pluginAccess } = createAppV3<\n Data,\n Args,\n Outputs,\n Href,\n Plugins,\n UiServices\n >(state, platforma, settings);\n\n if (!vueAppInstance) {\n throw new Error(\n \"Plugin data injection failed: Vue app instance not captured during install()\",\n );\n }\n vueAppInstance.provide(pluginDataKey, pluginAccess);\n\n const localState = extendApp(baseApp);\n\n const routes = Object.fromEntries(\n Object.entries(localState.routes as Routes<Href>).map(([href, component]) => {\n const c = typeof component === \"function\" ? component() : component;\n return [href, markRaw(c as Component)];\n }),\n );\n\n app = Object.assign(baseApp, {\n ...localState,\n getRoute(href: Href): Component | undefined {\n return routes[href];\n },\n } as AppV3<Data, Args, Outputs, Href, Plugins, Extend, UiServices>);\n });\n };\n\n const plugin = reactive({\n apiVersion: 3,\n featureFlags: platforma.blockModelInfo.featureFlags,\n loaded: false,\n error: undefined,\n useApp<PageHref extends Href = Href>() {\n return notEmpty(app, \"App is not loaded\") as AppV3<\n Data,\n Args,\n Outputs,\n PageHref,\n Plugins,\n Extend,\n UiServices\n >;\n },\n install(app: VueApp) {\n vueAppInstance = app;\n app.provide(pluginKey, this);\n loadApp().catch((err) => {\n console.error(\"load initial state error\", err);\n plugin.error = err;\n });\n },\n });\n\n return plugin as SdkPluginV3<Data, Args, Outputs, Href, Plugins, Extend, UiServices>;\n}\n\nexport type AppV3<\n Data = unknown,\n Args = unknown,\n Outputs extends BlockOutputsBase = NonNullable<unknown>,\n Href extends `/${string}` = `/${string}`,\n Plugins extends Record<string, unknown> = Record<string, unknown>,\n Local extends ExtendSettings<Href> = ExtendSettings<Href>,\n UiServices extends Partial<AllUiServices> = Partial<AllUiServices>,\n> = BaseAppV3<Data, Args, Outputs, Href, Plugins, UiServices> &\n Reactive<Omit<Local, \"routes\">> & { getRoute(href: Href): Component | undefined };\n\n// ---------------------------------------------------------------------------\n// SdkPlugin types\n// ---------------------------------------------------------------------------\n\nexport type SdkPluginV3<\n Data = unknown,\n Args = unknown,\n Outputs extends BlockOutputsBase = BlockOutputsBase,\n Href extends `/${string}` = `/${string}`,\n Plugins extends Record<string, unknown> = Record<string, unknown>,\n Local extends ExtendSettings<Href> = ExtendSettings<Href>,\n UiServices extends Partial<AllUiServices> = Partial<AllUiServices>,\n> = {\n apiVersion: 3;\n featureFlags: BlockCodeKnownFeatureFlags;\n loaded: boolean;\n error: unknown;\n useApp<PageHref extends Href = Href>(): AppV3<\n Data,\n Args,\n Outputs,\n PageHref,\n Plugins,\n Local,\n UiServices\n >;\n install(app: VueApp): void;\n};\n\nexport type SdkPlugin = SdkPluginV3;\n"],"mappings":";;;;;;AAiBA,IAAM,IAAY,OAAO,UAAU,EACtB,IAAgB,OAAO,qBAAqB;AAEzD,SAAgB,IAA0B;AACxC,QAAO,EAAO,EAAU;;AAG1B,SAAgB,IAAkB;AAEhC,QADY,GAAc,CACf;;AAGb,SAAgB,EASd,GAGA,GACA,IAAwB,EAAE,EAC2C;CACrE,IAAI,GAGA,GAGE,IAA2B,GAAwB,EAEnD,IAAU,YAAY;AAC1B,MAAI,MAA6B,EAC/B,OAAU,MAAM,+BAA+B,EAAyB;oEACV;AAGhE,QAAM,EAAU,gBAAgB,CAAC,MAAM,MAAiB;GACtD,IAAM,IAAQ,EAAa,EAAa;AACxC,KAAO,SAAS;GAChB,IAAM,EAAE,KAAK,GAAS,oBAAiB,EAOrC,GAAO,GAAW,EAAS;AAE7B,OAAI,CAAC,EACH,OAAU,MACR,+EACD;AAEH,KAAe,QAAQ,GAAe,EAAa;GAEnD,IAAM,IAAa,EAAU,EAAQ,EAE/B,IAAS,OAAO,YACpB,OAAO,QAAQ,EAAW,OAAuB,CAAC,KAAK,CAAC,GAAM,OAErD,CAAC,GAAM,EADJ,OAAO,KAAc,aAAa,GAAW,GAAG,EACrB,CAAC,CACtC,CACH;AAED,OAAM,OAAO,OAAO,GAAS;IAC3B,GAAG;IACH,SAAS,GAAmC;AAC1C,YAAO,EAAO;;IAEjB,CAAkE;IACnE;IAGE,IAAS,EAAS;EACtB,YAAY;EACZ,cAAc,EAAU,eAAe;EACvC,QAAQ;EACR,OAAO,KAAA;EACP,SAAuC;AACrC,UAAO,EAAS,GAAK,oBAAoB;;EAU3C,QAAQ,GAAa;AAGnB,GAFA,IAAiB,GACjB,EAAI,QAAQ,GAAW,KAAK,EAC5B,GAAS,CAAC,OAAO,MAAQ;AAEvB,IADA,QAAQ,MAAM,4BAA4B,EAAI,EAC9C,EAAO,QAAQ;KACf;;EAEL,CAAC;AAEF,QAAO"}
package/dist/index.js CHANGED
@@ -1,46 +1,46 @@
1
1
  import "./_virtual/_rolldown/runtime.js";
2
2
  import { MultiError as e, UnresolvedError as t, ensureError as n, ensureOutputHasStableFlag as r, formatZodError as i, identity as a, isDefined as o, isZodError as s, unwrapOutput as c, wrapOptionalResult as l } from "./utils.js";
3
- import { createModel as u } from "./createModel.js";
4
- import { defineApp as d, defineAppV3 as f, pluginDataKey as p, useFeatureFlags as m, useSdkPlugin as h } from "./defineApp.js";
5
- import g from "./components/BlockLayout.js";
6
- import _ from "./components/PlAgDataTable/PlAgOverlayLoading.js";
7
- import v from "./components/PlAgDataTable/PlAgOverlayNoRows.js";
8
- import { usePlDataTableSettingsV2 as y } from "./components/PlAgDataTable/types.js";
9
- import { PlAgDataTableRowNumberColId as b, autoSizeRowNumberColumn as x, makeRowNumberColDef as S } from "./components/PlAgDataTable/sources/row-number.js";
10
- import { DeferredCircular as C, ensureNodeVisible as w } from "./components/PlAgDataTable/sources/focus-row.js";
11
- import { defaultMainMenuItems as T } from "./components/PlAgDataTable/sources/menu-items.js";
12
- import E from "./components/PlAgColumnHeader/PlAgColumnHeader.js";
13
- import D from "./components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.js";
14
- import O from "./components/PlAgCsvExporter/PlAgCsvExporter.js";
15
- import k from "./components/PlAgGridColumnManager/PlAgGridColumnManager.js";
16
- import ee from "./components/PlAdvancedFilter/PlAdvancedFilter.js";
17
- import { PlAdvancedFilterSupportedFilters as A } from "./components/PlAdvancedFilter/index.js";
18
- import j from "./components/PlTableFilters/PlTableFiltersV2.js";
19
- import { AgGridTheme as M } from "./AgGridVue/AgGridTheme.js";
20
- import N from "./components/PlAgDataTable/PlAgDataTableV2.js";
21
- import P from "./components/PlAgCellProgress/PlAgCellProgress.js";
22
- import { createAgGridColDef as F } from "./AgGridVue/createAgGridColDef.js";
23
- import I from "./components/PlAgCellFile/PlAgCellFile.js";
24
- import L from "./components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.js";
25
- import R from "./components/PlAgChartHistogramCell/PlAgChartHistogramCell.js";
26
- import z from "./components/PlAgCellStatusTag/PlAgCellStatusTag.js";
27
- import { useAgGridOptions as B } from "./AgGridVue/useAgGridOptions.js";
28
- import { deselectAll as V, getSelectedRowsCount as H, getTotalRowsCount as U, isSelectionEnabled as W, selectAll as G } from "./AgGridVue/selection.js";
29
- import K from "./components/PlAnnotations/components/PlAnnotations.js";
30
- import q from "./components/PlAnnotations/components/PlAnnotationsModal.js";
31
- import J from "./components/PlBtnExportArchive/PlBtnExportArchive.js";
32
- import Y from "./components/PlDatasetSelector/PlDatasetSelector.js";
33
- import { usePlugin as X } from "./composition/usePlugin.js";
34
- import { defineStore as Z } from "./defineStore.js";
35
- import { activateAgGrid as Q } from "./composition/AgGrid/index.js";
36
- import { objectHash as $ } from "./objectHash.js";
37
- import { computedResult as te } from "./computedResult.js";
38
- import { ReactiveFileContent as ne } from "./composition/fileContent.js";
3
+ import { defineAppV3 as u, pluginDataKey as d, useFeatureFlags as f, useSdkPlugin as p } from "./defineApp.js";
4
+ import m from "./components/BlockLayout.js";
5
+ import h from "./components/PlAgDataTable/PlAgOverlayLoading.js";
6
+ import g from "./components/PlAgDataTable/PlAgOverlayNoRows.js";
7
+ import { usePlDataTableSettingsV2 as _ } from "./components/PlAgDataTable/types.js";
8
+ import { PlAgDataTableRowNumberColId as v, autoSizeRowNumberColumn as y, makeRowNumberColDef as b } from "./components/PlAgDataTable/sources/row-number.js";
9
+ import { DeferredCircular as x, ensureNodeVisible as S } from "./components/PlAgDataTable/sources/focus-row.js";
10
+ import { defaultMainMenuItems as C } from "./components/PlAgDataTable/sources/menu-items.js";
11
+ import w from "./components/PlAgColumnHeader/PlAgColumnHeader.js";
12
+ import T from "./components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.js";
13
+ import ee from "./components/PlAgCsvExporter/PlAgCsvExporter.js";
14
+ import E from "./components/PlAgGridColumnManager/PlAgGridColumnManager.js";
15
+ import D from "./components/PlAdvancedFilter/PlAdvancedFilter.js";
16
+ import { PlAdvancedFilterSupportedFilters as O } from "./components/PlAdvancedFilter/index.js";
17
+ import k from "./components/PlTableFilters/PlTableFiltersV2.js";
18
+ import { AgGridTheme as A } from "./AgGridVue/AgGridTheme.js";
19
+ import j from "./components/PlAgDataTable/PlAgDataTableV2.js";
20
+ import M from "./components/PlAgCellProgress/PlAgCellProgress.js";
21
+ import { createAgGridColDef as N } from "./AgGridVue/createAgGridColDef.js";
22
+ import P from "./components/PlAgCellFile/PlAgCellFile.js";
23
+ import F from "./components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.js";
24
+ import I from "./components/PlAgChartHistogramCell/PlAgChartHistogramCell.js";
25
+ import L from "./components/PlAgCellStatusTag/PlAgCellStatusTag.js";
26
+ import { useAgGridOptions as R } from "./AgGridVue/useAgGridOptions.js";
27
+ import { deselectAll as z, getSelectedRowsCount as B, getTotalRowsCount as V, isSelectionEnabled as H, selectAll as U } from "./AgGridVue/selection.js";
28
+ import W from "./components/PlAnnotations/components/PlAnnotations.js";
29
+ import G from "./components/PlAnnotations/components/PlAnnotationsModal.js";
30
+ import K from "./components/PlBtnExportArchive/PlBtnExportArchive.js";
31
+ import q from "./components/PlDatasetSelector/PlDatasetSelector.js";
32
+ import { usePlugin as J } from "./composition/usePlugin.js";
33
+ import { createModel as Y } from "./createModel.js";
34
+ import { defineStore as X } from "./defineStore.js";
35
+ import { activateAgGrid as Z } from "./composition/AgGrid/index.js";
36
+ import { objectHash as Q } from "./objectHash.js";
37
+ import { computedResult as $ } from "./computedResult.js";
38
+ import { ReactiveFileContent as te } from "./composition/fileContent.js";
39
39
  import "./lib.js";
40
- import { setAutoFreeze as re } from "immer";
40
+ import { setAutoFreeze as ne } from "immer";
41
41
  export * from "@milaboratories/uikit";
42
- re(!1);
42
+ ne(!1);
43
43
  //#endregion
44
- export { M as AgGridTheme, g as BlockLayout, C as DeferredCircular, e as MultiError, ee as PlAdvancedFilterComponent, A as PlAdvancedFilterSupportedFilters, I as PlAgCellFile, P as PlAgCellProgress, z as PlAgCellStatusTag, R as PlAgChartHistogramCell, L as PlAgChartStackedBarCell, E as PlAgColumnHeader, O as PlAgCsvExporter, b as PlAgDataTableRowNumberColId, N as PlAgDataTableV2, k as PlAgGridColumnManager, _ as PlAgOverlayLoading, v as PlAgOverlayNoRows, D as PlAgTextAndButtonCell, K as PlAnnotations, q as PlAnnotationsModal, J as PlBtnExportArchive, N as PlDataTableV2, Y as PlDatasetSelector, j as PlTableFiltersV2, ne as ReactiveFileContent, t as UnresolvedError, Q as activateAgGrid, x as autoSizeRowNumberColumn, te as computedResult, F as createAgGridColDef, u as createModel, T as defaultMainMenuItems, d as defineApp, f as defineAppV3, Z as defineStore, V as deselectAll, n as ensureError, w as ensureNodeVisible, r as ensureOutputHasStableFlag, i as formatZodError, H as getSelectedRowsCount, U as getTotalRowsCount, a as identity, o as isDefined, W as isSelectionEnabled, s as isZodError, S as makeRowNumberColDef, $ as objectHash, p as pluginDataKey, G as selectAll, c as unwrapOutput, B as useAgGridOptions, m as useFeatureFlags, y as usePlDataTableSettingsV2, X as usePlugin, h as useSdkPlugin, l as wrapOptionalResult };
44
+ export { A as AgGridTheme, m as BlockLayout, x as DeferredCircular, e as MultiError, D as PlAdvancedFilterComponent, O as PlAdvancedFilterSupportedFilters, P as PlAgCellFile, M as PlAgCellProgress, L as PlAgCellStatusTag, I as PlAgChartHistogramCell, F as PlAgChartStackedBarCell, w as PlAgColumnHeader, ee as PlAgCsvExporter, v as PlAgDataTableRowNumberColId, j as PlAgDataTableV2, E as PlAgGridColumnManager, h as PlAgOverlayLoading, g as PlAgOverlayNoRows, T as PlAgTextAndButtonCell, W as PlAnnotations, G as PlAnnotationsModal, K as PlBtnExportArchive, j as PlDataTableV2, q as PlDatasetSelector, k as PlTableFiltersV2, te as ReactiveFileContent, t as UnresolvedError, Z as activateAgGrid, y as autoSizeRowNumberColumn, $ as computedResult, N as createAgGridColDef, Y as createModel, C as defaultMainMenuItems, u as defineAppV3, X as defineStore, z as deselectAll, n as ensureError, S as ensureNodeVisible, r as ensureOutputHasStableFlag, i as formatZodError, B as getSelectedRowsCount, V as getTotalRowsCount, a as identity, o as isDefined, H as isSelectionEnabled, s as isZodError, b as makeRowNumberColDef, Q as objectHash, d as pluginDataKey, U as selectAll, c as unwrapOutput, R as useAgGridOptions, f as useFeatureFlags, _ as usePlDataTableSettingsV2, J as usePlugin, p as useSdkPlugin, l as wrapOptionalResult };
45
45
 
46
46
  //# sourceMappingURL=index.js.map