@milaboratories/milaboratories.ui-examples.model 1.1.31 → 1.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4,6 +4,9 @@ var model = require('@platforma-sdk/model');
4
4
  var zod = require('zod');
5
5
 
6
6
  // src/index.ts
7
+ var ImportFileHandleSchema = zod.z.string().optional().refine(
8
+ (_a) => true
9
+ );
7
10
  function* range(from, to, step = 1) {
8
11
  for (let i = from; i < to; i += step) {
9
12
  yield i;
@@ -21,14 +24,19 @@ function times(n, cb) {
21
24
  }
22
25
  var $BlockArgs = zod.z.object({
23
26
  tableNumRows: zod.z.number().default(100),
24
- numbers: zod.z.array(zod.z.coerce.number())
27
+ numbers: zod.z.array(zod.z.coerce.number()),
28
+ handles: zod.z.array(ImportFileHandleSchema)
25
29
  });
26
- var platforma = model.BlockModel.create("Heavy").withArgs({ numbers: [1, 2, 3, 4], tableNumRows: 100 }).withUiState({ dataTableState: void 0, dynamicSections: [] }).argsValid((ctx) => {
30
+ var platforma = model.BlockModel.create("Heavy").withArgs({ numbers: [1, 2, 3, 4], tableNumRows: 100, handles: [] }).withUiState({ dataTableState: void 0, dynamicSections: [] }).argsValid((ctx) => {
27
31
  if (ctx.args.numbers.length === 5) {
28
32
  throw new Error("argsValid: test error");
29
33
  }
30
34
  return ctx.args.numbers.length > 0;
31
- }).output("numbers", (ctx) => ctx.outputs?.resolve("numbers")?.getDataAsJson()).output("pt", (ctx) => {
35
+ }).output("numbers", (ctx) => ctx.outputs?.resolve("numbers")?.getDataAsJson()).output("progresses", (ctx) => {
36
+ const m = ctx.outputs?.resolve("progresses");
37
+ const progresses = m?.mapFields((name, val) => [name, val?.getImportProgress()]);
38
+ return Object.fromEntries(progresses ?? []);
39
+ }).output("pt", (ctx) => {
32
40
  if (!ctx.uiState?.dataTableState?.tableState.pTableParams?.filters) return void 0;
33
41
  const data = times(ctx.args.tableNumRows ?? 0, (i) => {
34
42
  const v = i + 1;
@@ -106,6 +114,7 @@ var platforma = model.BlockModel.create("Heavy").withArgs({ numbers: [1, 2, 3, 4
106
114
  { type: "link", href: "/use-watch-fetch", label: "useWatchFetch" },
107
115
  { type: "link", href: "/typography", label: "Typography" },
108
116
  { type: "link", href: "/ag-grid-vue", label: "AgGridVue" },
117
+ { type: "link", href: "/ag-grid-vue-with-builder", label: "AgGridVue with builder" },
109
118
  { type: "link", href: "/pl-ag-data-table", label: "PlAgDataTable" },
110
119
  { type: "link", href: "/pl-splash-page", label: "PlSplashPage" },
111
120
  { type: "link", href: "/errors", label: "Errors" },
@@ -131,6 +140,7 @@ var platforma = model.BlockModel.create("Heavy").withArgs({ numbers: [1, 2, 3, 4
131
140
  }).done();
132
141
 
133
142
  exports.$BlockArgs = $BlockArgs;
143
+ exports.ImportFileHandleSchema = ImportFileHandleSchema;
134
144
  exports.platforma = platforma;
135
145
  exports.range = range;
136
146
  exports.times = times;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["z","BlockModel","createPlDataTable"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n InferHrefType,\n InferOutputsType,\n PlDataTableState,\n PlTableFiltersModel,\n PColumn,\n PColumnValues,\n PObjectId } from '@platforma-sdk/model';\nimport {\n BlockModel,\n createPlDataTable,\n} from '@platforma-sdk/model';\nimport { z } from 'zod';\n\nexport function* range(from: number, to: number, step = 1) {\n for (let i = from; i < to; i += step) {\n yield i;\n }\n}\n\nexport function toList<T>(iterable: Iterable<T>): T[] {\n const lst: T[] = [];\n for (const it of iterable) {\n lst.push(it);\n }\n\n return lst;\n}\n\nexport function times<R>(n: number, cb: (i: number) => R): R[] {\n return toList(range(0, n)).map(cb);\n}\n\nexport const $BlockArgs = z.object({\n tableNumRows: z.number().default(100),\n numbers: z.array(z.coerce.number()),\n});\n\nexport type BlockArgs = z.infer<typeof $BlockArgs>;\n\nexport type TableState = {\n tableState: PlDataTableState;\n filterModel: PlTableFiltersModel;\n};\n\nexport type UiState = {\n dataTableState: TableState | undefined;\n dynamicSections: {\n id: string;\n label: string;\n }[];\n};\n\nexport const platforma = BlockModel.create('Heavy')\n\n .withArgs<BlockArgs>({ numbers: [1, 2, 3, 4], tableNumRows: 100 })\n\n .withUiState<UiState>({ dataTableState: undefined, dynamicSections: [] })\n\n .argsValid((ctx) => {\n if (ctx.args.numbers.length === 5) {\n throw new Error('argsValid: test error');\n }\n\n return ctx.args.numbers.length > 0;\n })\n\n .output('numbers', (ctx) => ctx.outputs?.resolve('numbers')?.getDataAsJson<number[]>())\n\n .output('pt', (ctx) => {\n if (!ctx.uiState?.dataTableState?.tableState.pTableParams?.filters) return undefined;\n\n const data = times(ctx.args.tableNumRows ?? 0, (i) => {\n const v = i + 1;\n return {\n key: [v, v + 0.1],\n val: v.toString(),\n };\n });\n\n return createPlDataTable(\n ctx,\n [\n {\n id: 'example' as PObjectId,\n spec: {\n kind: 'PColumn',\n valueType: 'String',\n name: 'example',\n annotations: {\n 'pl7.app/label': 'String column',\n 'pl7.app/discreteValues': '[\"up\",\"down\"]',\n },\n axesSpec: [\n {\n type: 'Int',\n name: 'index',\n annotations: {\n 'pl7.app/label': 'Int axis',\n 'pl7.app/discreteValues': '[1,2]',\n },\n },\n {\n type: 'Float',\n name: 'value',\n annotations: {\n 'pl7.app/label': 'Float axis',\n 'pl7.app/table/visibility': 'optional',\n },\n },\n ],\n },\n data,\n } satisfies PColumn<PColumnValues>,\n ],\n ctx.uiState.dataTableState.tableState,\n {\n filters: [\n ...(ctx.uiState.dataTableState.tableState.pTableParams?.filters ?? []),\n ...(ctx.uiState.dataTableState.filterModel?.filters ?? []),\n ],\n },\n );\n })\n\n .title((ctx) => {\n if (ctx.args.numbers.length === 5) {\n throw new Error('block title: test error');\n }\n\n return 'Ui Examples';\n })\n\n .sections((ctx) => {\n const dynamicSections = (ctx.uiState.dynamicSections ?? []).map((it) => ({\n type: 'link' as const,\n href: `/section?id=${it.id}` as const,\n label: it.label,\n }));\n\n if (dynamicSections.some((it) => it.label === 'Error')) {\n throw new Error('sections: test error');\n }\n\n return [\n { type: 'link', href: '/loaders', label: 'Loaders' },\n { type: 'link', href: '/', label: 'Icons/Masks' },\n { type: 'link', href: '/layout', label: 'Layout' },\n { type: 'link', href: '/form-components', label: 'Form Components' },\n { type: 'link', href: '/log-view', label: 'PlLogView' },\n { type: 'link', href: '/modals', label: 'Modals' },\n { type: 'link', href: '/select-files', label: 'Select Files' },\n { type: 'link', href: '/inject-env', label: 'Inject env' },\n { type: 'link', href: '/use-watch-fetch', label: 'useWatchFetch' },\n { type: 'link', href: '/typography', label: 'Typography' },\n { type: 'link', href: '/ag-grid-vue', label: 'AgGridVue' },\n { type: 'link', href: '/pl-ag-data-table', label: 'PlAgDataTable' },\n { type: 'link', href: '/pl-splash-page', label: 'PlSplashPage' },\n { type: 'link', href: '/errors', label: 'Errors' },\n { type: 'link', href: '/text-fields', label: 'PlTextField' },\n { type: 'link', href: '/tabs', label: 'PlTabs' },\n { type: 'link', href: '/stacked-bar', label: 'PlChartStackedBar' },\n { type: 'link', href: '/histogram', label: 'PlChartHistogram' },\n { type: 'link', href: '/buttons', label: 'ButtonsPage' },\n { type: 'link', href: '/notifications', label: 'Notifications' },\n { type: 'link', href: '/drafts', label: 'Drafts' },\n ...(dynamicSections.length\n ? [\n { type: 'delimiter' },\n ...dynamicSections,\n { type: 'delimiter' }] as const\n : []),\n {\n type: 'link',\n href: '/add-section',\n appearance: 'add-section',\n label: 'New Dynamic section',\n },\n ];\n })\n\n .done();\n\nexport type BlockOutputs = InferOutputsType<typeof platforma>;\nexport type Href = InferHrefType<typeof platforma>;\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["z","BlockModel","createPlDataTable"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n InferHrefType,\n InferOutputsType,\n PlDataTableState,\n PlTableFiltersModel,\n PColumn,\n PColumnValues,\n PObjectId,\n ImportFileHandle \n} from '@platforma-sdk/model';\nimport {\n BlockModel,\n createPlDataTable,\n} from '@platforma-sdk/model';\nimport { z } from 'zod';\n\nexport const ImportFileHandleSchema = z\n .string()\n .optional()\n .refine<ImportFileHandle | undefined>(\n ((_a) => true) as (arg: string | undefined) => arg is ImportFileHandle | undefined,\n );\n\nexport function* range(from: number, to: number, step = 1) {\n for (let i = from; i < to; i += step) {\n yield i;\n }\n}\n\nexport function toList<T>(iterable: Iterable<T>): T[] {\n const lst: T[] = [];\n for (const it of iterable) {\n lst.push(it);\n }\n\n return lst;\n}\n\nexport function times<R>(n: number, cb: (i: number) => R): R[] {\n return toList(range(0, n)).map(cb);\n}\n\nexport const $BlockArgs = z.object({\n tableNumRows: z.number().default(100),\n numbers: z.array(z.coerce.number()),\n handles: z.array(ImportFileHandleSchema),\n});\n\nexport type BlockArgs = z.infer<typeof $BlockArgs>;\n\nexport type TableState = {\n tableState: PlDataTableState;\n filterModel: PlTableFiltersModel;\n};\n\nexport type UiState = {\n dataTableState: TableState | undefined;\n dynamicSections: {\n id: string;\n label: string;\n }[];\n};\n\nexport const platforma = BlockModel.create('Heavy')\n\n .withArgs<BlockArgs>({ numbers: [1, 2, 3, 4], tableNumRows: 100, handles: [] })\n\n .withUiState<UiState>({ dataTableState: undefined, dynamicSections: [] })\n\n .argsValid((ctx) => {\n if (ctx.args.numbers.length === 5) {\n throw new Error('argsValid: test error');\n }\n\n return ctx.args.numbers.length > 0;\n })\n\n .output('numbers', (ctx) => ctx.outputs?.resolve('numbers')?.getDataAsJson<number[]>())\n\n .output('progresses', (ctx) => {\n const m = ctx.outputs?.resolve('progresses');\n const progresses = m?.mapFields((name, val) => [name, val?.getImportProgress()] as const);\n return Object.fromEntries(progresses ?? []);\n })\n\n .output('pt', (ctx) => {\n if (!ctx.uiState?.dataTableState?.tableState.pTableParams?.filters) return undefined;\n\n const data = times(ctx.args.tableNumRows ?? 0, (i) => {\n const v = i + 1;\n return {\n key: [v, v + 0.1],\n val: v.toString(),\n };\n });\n\n return createPlDataTable(\n ctx,\n [\n {\n id: 'example' as PObjectId,\n spec: {\n kind: 'PColumn',\n valueType: 'String',\n name: 'example',\n annotations: {\n 'pl7.app/label': 'String column',\n 'pl7.app/discreteValues': '[\"up\",\"down\"]',\n },\n axesSpec: [\n {\n type: 'Int',\n name: 'index',\n annotations: {\n 'pl7.app/label': 'Int axis',\n 'pl7.app/discreteValues': '[1,2]',\n },\n },\n {\n type: 'Float',\n name: 'value',\n annotations: {\n 'pl7.app/label': 'Float axis',\n 'pl7.app/table/visibility': 'optional',\n },\n },\n ],\n },\n data,\n } satisfies PColumn<PColumnValues>,\n ],\n ctx.uiState.dataTableState.tableState,\n {\n filters: [\n ...(ctx.uiState.dataTableState.tableState.pTableParams?.filters ?? []),\n ...(ctx.uiState.dataTableState.filterModel?.filters ?? []),\n ],\n },\n );\n })\n\n .title((ctx) => {\n if (ctx.args.numbers.length === 5) {\n throw new Error('block title: test error');\n }\n\n return 'Ui Examples';\n })\n\n .sections((ctx) => {\n const dynamicSections = (ctx.uiState.dynamicSections ?? []).map((it) => ({\n type: 'link' as const,\n href: `/section?id=${it.id}` as const,\n label: it.label,\n }));\n\n if (dynamicSections.some((it) => it.label === 'Error')) {\n throw new Error('sections: test error');\n }\n\n return [\n { type: 'link', href: '/loaders', label: 'Loaders' },\n { type: 'link', href: '/', label: 'Icons/Masks' },\n { type: 'link', href: '/layout', label: 'Layout' },\n { type: 'link', href: '/form-components', label: 'Form Components' },\n { type: 'link', href: '/log-view', label: 'PlLogView' },\n { type: 'link', href: '/modals', label: 'Modals' },\n { type: 'link', href: '/select-files', label: 'Select Files' },\n { type: 'link', href: '/inject-env', label: 'Inject env' },\n { type: 'link', href: '/use-watch-fetch', label: 'useWatchFetch' },\n { type: 'link', href: '/typography', label: 'Typography' },\n { type: 'link', href: '/ag-grid-vue', label: 'AgGridVue' },\n { type: 'link', href: '/ag-grid-vue-with-builder', label: 'AgGridVue with builder' },\n { type: 'link', href: '/pl-ag-data-table', label: 'PlAgDataTable' },\n { type: 'link', href: '/pl-splash-page', label: 'PlSplashPage' },\n { type: 'link', href: '/errors', label: 'Errors' },\n { type: 'link', href: '/text-fields', label: 'PlTextField' },\n { type: 'link', href: '/tabs', label: 'PlTabs' },\n { type: 'link', href: '/stacked-bar', label: 'PlChartStackedBar' },\n { type: 'link', href: '/histogram', label: 'PlChartHistogram' },\n { type: 'link', href: '/buttons', label: 'ButtonsPage' },\n { type: 'link', href: '/notifications', label: 'Notifications' },\n { type: 'link', href: '/drafts', label: 'Drafts' },\n ...(dynamicSections.length\n ? [\n { type: 'delimiter' },\n ...dynamicSections,\n { type: 'delimiter' }] as const\n : []),\n {\n type: 'link',\n href: '/add-section',\n appearance: 'add-section',\n label: 'New Dynamic section',\n },\n ];\n })\n\n .done();\n\nexport type BlockOutputs = InferOutputsType<typeof platforma>;\nexport type Href = InferHrefType<typeof platforma>;\n"]}
package/dist/index.d.cts CHANGED
@@ -1,18 +1,22 @@
1
1
  import * as _platforma_sdk_model from '@platforma-sdk/model';
2
- import { PlDataTableState, PlTableFiltersModel, InferOutputsType, InferHrefType } from '@platforma-sdk/model';
2
+ import { ImportFileHandle, PlDataTableState, PlTableFiltersModel, InferOutputsType, InferHrefType } from '@platforma-sdk/model';
3
3
  import { z } from 'zod';
4
4
 
5
+ declare const ImportFileHandleSchema: z.ZodEffects<z.ZodOptional<z.ZodString>, ImportFileHandle | undefined, string | undefined>;
5
6
  declare function range(from: number, to: number, step?: number): Generator<number, void, unknown>;
6
7
  declare function toList<T>(iterable: Iterable<T>): T[];
7
8
  declare function times<R>(n: number, cb: (i: number) => R): R[];
8
9
  declare const $BlockArgs: z.ZodObject<{
9
10
  tableNumRows: z.ZodDefault<z.ZodNumber>;
10
11
  numbers: z.ZodArray<z.ZodNumber, "many">;
12
+ handles: z.ZodArray<z.ZodEffects<z.ZodOptional<z.ZodString>, ImportFileHandle | undefined, string | undefined>, "many">;
11
13
  }, "strip", z.ZodTypeAny, {
12
14
  tableNumRows: number;
13
15
  numbers: number[];
16
+ handles: (ImportFileHandle | undefined)[];
14
17
  }, {
15
18
  numbers: number[];
19
+ handles: (string | undefined)[];
16
20
  tableNumRows?: number | undefined;
17
21
  }>;
18
22
  type BlockArgs = z.infer<typeof $BlockArgs>;
@@ -30,11 +34,15 @@ type UiState = {
30
34
  declare const platforma: _platforma_sdk_model.Platforma<{
31
35
  tableNumRows: number;
32
36
  numbers: number[];
37
+ handles: (ImportFileHandle | undefined)[];
33
38
  }, {
34
39
  numbers: _platforma_sdk_model.ValueOrErrors<number[] | undefined>;
40
+ progresses: _platforma_sdk_model.ValueOrErrors<{
41
+ [x: string]: _platforma_sdk_model.ImportProgress | undefined;
42
+ }>;
35
43
  pt: _platforma_sdk_model.ValueOrErrors<_platforma_sdk_model.PTableHandle | undefined>;
36
- }, UiState, "/" | "/loaders" | "/layout" | "/form-components" | "/log-view" | "/modals" | "/select-files" | "/inject-env" | "/use-watch-fetch" | "/typography" | "/ag-grid-vue" | "/pl-ag-data-table" | "/pl-splash-page" | "/errors" | "/text-fields" | "/tabs" | "/stacked-bar" | "/histogram" | "/buttons" | "/notifications" | "/drafts" | `/section?id=${string}` | "/add-section">;
44
+ }, UiState, "/" | "/loaders" | "/layout" | "/form-components" | "/log-view" | "/modals" | "/select-files" | "/inject-env" | "/use-watch-fetch" | "/typography" | "/ag-grid-vue" | "/ag-grid-vue-with-builder" | "/pl-ag-data-table" | "/pl-splash-page" | "/errors" | "/text-fields" | "/tabs" | "/stacked-bar" | "/histogram" | "/buttons" | "/notifications" | "/drafts" | `/section?id=${string}` | "/add-section">;
37
45
  type BlockOutputs = InferOutputsType<typeof platforma>;
38
46
  type Href = InferHrefType<typeof platforma>;
39
47
 
40
- export { $BlockArgs, type BlockArgs, type BlockOutputs, type Href, type TableState, type UiState, platforma, range, times, toList };
48
+ export { $BlockArgs, type BlockArgs, type BlockOutputs, type Href, ImportFileHandleSchema, type TableState, type UiState, platforma, range, times, toList };
package/dist/index.d.ts CHANGED
@@ -1,18 +1,22 @@
1
1
  import * as _platforma_sdk_model from '@platforma-sdk/model';
2
- import { PlDataTableState, PlTableFiltersModel, InferOutputsType, InferHrefType } from '@platforma-sdk/model';
2
+ import { ImportFileHandle, PlDataTableState, PlTableFiltersModel, InferOutputsType, InferHrefType } from '@platforma-sdk/model';
3
3
  import { z } from 'zod';
4
4
 
5
+ declare const ImportFileHandleSchema: z.ZodEffects<z.ZodOptional<z.ZodString>, ImportFileHandle | undefined, string | undefined>;
5
6
  declare function range(from: number, to: number, step?: number): Generator<number, void, unknown>;
6
7
  declare function toList<T>(iterable: Iterable<T>): T[];
7
8
  declare function times<R>(n: number, cb: (i: number) => R): R[];
8
9
  declare const $BlockArgs: z.ZodObject<{
9
10
  tableNumRows: z.ZodDefault<z.ZodNumber>;
10
11
  numbers: z.ZodArray<z.ZodNumber, "many">;
12
+ handles: z.ZodArray<z.ZodEffects<z.ZodOptional<z.ZodString>, ImportFileHandle | undefined, string | undefined>, "many">;
11
13
  }, "strip", z.ZodTypeAny, {
12
14
  tableNumRows: number;
13
15
  numbers: number[];
16
+ handles: (ImportFileHandle | undefined)[];
14
17
  }, {
15
18
  numbers: number[];
19
+ handles: (string | undefined)[];
16
20
  tableNumRows?: number | undefined;
17
21
  }>;
18
22
  type BlockArgs = z.infer<typeof $BlockArgs>;
@@ -30,11 +34,15 @@ type UiState = {
30
34
  declare const platforma: _platforma_sdk_model.Platforma<{
31
35
  tableNumRows: number;
32
36
  numbers: number[];
37
+ handles: (ImportFileHandle | undefined)[];
33
38
  }, {
34
39
  numbers: _platforma_sdk_model.ValueOrErrors<number[] | undefined>;
40
+ progresses: _platforma_sdk_model.ValueOrErrors<{
41
+ [x: string]: _platforma_sdk_model.ImportProgress | undefined;
42
+ }>;
35
43
  pt: _platforma_sdk_model.ValueOrErrors<_platforma_sdk_model.PTableHandle | undefined>;
36
- }, UiState, "/" | "/loaders" | "/layout" | "/form-components" | "/log-view" | "/modals" | "/select-files" | "/inject-env" | "/use-watch-fetch" | "/typography" | "/ag-grid-vue" | "/pl-ag-data-table" | "/pl-splash-page" | "/errors" | "/text-fields" | "/tabs" | "/stacked-bar" | "/histogram" | "/buttons" | "/notifications" | "/drafts" | `/section?id=${string}` | "/add-section">;
44
+ }, UiState, "/" | "/loaders" | "/layout" | "/form-components" | "/log-view" | "/modals" | "/select-files" | "/inject-env" | "/use-watch-fetch" | "/typography" | "/ag-grid-vue" | "/ag-grid-vue-with-builder" | "/pl-ag-data-table" | "/pl-splash-page" | "/errors" | "/text-fields" | "/tabs" | "/stacked-bar" | "/histogram" | "/buttons" | "/notifications" | "/drafts" | `/section?id=${string}` | "/add-section">;
37
45
  type BlockOutputs = InferOutputsType<typeof platforma>;
38
46
  type Href = InferHrefType<typeof platforma>;
39
47
 
40
- export { $BlockArgs, type BlockArgs, type BlockOutputs, type Href, type TableState, type UiState, platforma, range, times, toList };
48
+ export { $BlockArgs, type BlockArgs, type BlockOutputs, type Href, ImportFileHandleSchema, type TableState, type UiState, platforma, range, times, toList };
package/dist/index.js CHANGED
@@ -2,6 +2,9 @@ import { BlockModel, createPlDataTable } from '@platforma-sdk/model';
2
2
  import { z } from 'zod';
3
3
 
4
4
  // src/index.ts
5
+ var ImportFileHandleSchema = z.string().optional().refine(
6
+ (_a) => true
7
+ );
5
8
  function* range(from, to, step = 1) {
6
9
  for (let i = from; i < to; i += step) {
7
10
  yield i;
@@ -19,14 +22,19 @@ function times(n, cb) {
19
22
  }
20
23
  var $BlockArgs = z.object({
21
24
  tableNumRows: z.number().default(100),
22
- numbers: z.array(z.coerce.number())
25
+ numbers: z.array(z.coerce.number()),
26
+ handles: z.array(ImportFileHandleSchema)
23
27
  });
24
- var platforma = BlockModel.create("Heavy").withArgs({ numbers: [1, 2, 3, 4], tableNumRows: 100 }).withUiState({ dataTableState: void 0, dynamicSections: [] }).argsValid((ctx) => {
28
+ var platforma = BlockModel.create("Heavy").withArgs({ numbers: [1, 2, 3, 4], tableNumRows: 100, handles: [] }).withUiState({ dataTableState: void 0, dynamicSections: [] }).argsValid((ctx) => {
25
29
  if (ctx.args.numbers.length === 5) {
26
30
  throw new Error("argsValid: test error");
27
31
  }
28
32
  return ctx.args.numbers.length > 0;
29
- }).output("numbers", (ctx) => ctx.outputs?.resolve("numbers")?.getDataAsJson()).output("pt", (ctx) => {
33
+ }).output("numbers", (ctx) => ctx.outputs?.resolve("numbers")?.getDataAsJson()).output("progresses", (ctx) => {
34
+ const m = ctx.outputs?.resolve("progresses");
35
+ const progresses = m?.mapFields((name, val) => [name, val?.getImportProgress()]);
36
+ return Object.fromEntries(progresses ?? []);
37
+ }).output("pt", (ctx) => {
30
38
  if (!ctx.uiState?.dataTableState?.tableState.pTableParams?.filters) return void 0;
31
39
  const data = times(ctx.args.tableNumRows ?? 0, (i) => {
32
40
  const v = i + 1;
@@ -104,6 +112,7 @@ var platforma = BlockModel.create("Heavy").withArgs({ numbers: [1, 2, 3, 4], tab
104
112
  { type: "link", href: "/use-watch-fetch", label: "useWatchFetch" },
105
113
  { type: "link", href: "/typography", label: "Typography" },
106
114
  { type: "link", href: "/ag-grid-vue", label: "AgGridVue" },
115
+ { type: "link", href: "/ag-grid-vue-with-builder", label: "AgGridVue with builder" },
107
116
  { type: "link", href: "/pl-ag-data-table", label: "PlAgDataTable" },
108
117
  { type: "link", href: "/pl-splash-page", label: "PlSplashPage" },
109
118
  { type: "link", href: "/errors", label: "Errors" },
@@ -128,6 +137,6 @@ var platforma = BlockModel.create("Heavy").withArgs({ numbers: [1, 2, 3, 4], tab
128
137
  ];
129
138
  }).done();
130
139
 
131
- export { $BlockArgs, platforma, range, times, toList };
140
+ export { $BlockArgs, ImportFileHandleSchema, platforma, range, times, toList };
132
141
  //# sourceMappingURL=index.js.map
133
142
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type {\n InferHrefType,\n InferOutputsType,\n PlDataTableState,\n PlTableFiltersModel,\n PColumn,\n PColumnValues,\n PObjectId } from '@platforma-sdk/model';\nimport {\n BlockModel,\n createPlDataTable,\n} from '@platforma-sdk/model';\nimport { z } from 'zod';\n\nexport function* range(from: number, to: number, step = 1) {\n for (let i = from; i < to; i += step) {\n yield i;\n }\n}\n\nexport function toList<T>(iterable: Iterable<T>): T[] {\n const lst: T[] = [];\n for (const it of iterable) {\n lst.push(it);\n }\n\n return lst;\n}\n\nexport function times<R>(n: number, cb: (i: number) => R): R[] {\n return toList(range(0, n)).map(cb);\n}\n\nexport const $BlockArgs = z.object({\n tableNumRows: z.number().default(100),\n numbers: z.array(z.coerce.number()),\n});\n\nexport type BlockArgs = z.infer<typeof $BlockArgs>;\n\nexport type TableState = {\n tableState: PlDataTableState;\n filterModel: PlTableFiltersModel;\n};\n\nexport type UiState = {\n dataTableState: TableState | undefined;\n dynamicSections: {\n id: string;\n label: string;\n }[];\n};\n\nexport const platforma = BlockModel.create('Heavy')\n\n .withArgs<BlockArgs>({ numbers: [1, 2, 3, 4], tableNumRows: 100 })\n\n .withUiState<UiState>({ dataTableState: undefined, dynamicSections: [] })\n\n .argsValid((ctx) => {\n if (ctx.args.numbers.length === 5) {\n throw new Error('argsValid: test error');\n }\n\n return ctx.args.numbers.length > 0;\n })\n\n .output('numbers', (ctx) => ctx.outputs?.resolve('numbers')?.getDataAsJson<number[]>())\n\n .output('pt', (ctx) => {\n if (!ctx.uiState?.dataTableState?.tableState.pTableParams?.filters) return undefined;\n\n const data = times(ctx.args.tableNumRows ?? 0, (i) => {\n const v = i + 1;\n return {\n key: [v, v + 0.1],\n val: v.toString(),\n };\n });\n\n return createPlDataTable(\n ctx,\n [\n {\n id: 'example' as PObjectId,\n spec: {\n kind: 'PColumn',\n valueType: 'String',\n name: 'example',\n annotations: {\n 'pl7.app/label': 'String column',\n 'pl7.app/discreteValues': '[\"up\",\"down\"]',\n },\n axesSpec: [\n {\n type: 'Int',\n name: 'index',\n annotations: {\n 'pl7.app/label': 'Int axis',\n 'pl7.app/discreteValues': '[1,2]',\n },\n },\n {\n type: 'Float',\n name: 'value',\n annotations: {\n 'pl7.app/label': 'Float axis',\n 'pl7.app/table/visibility': 'optional',\n },\n },\n ],\n },\n data,\n } satisfies PColumn<PColumnValues>,\n ],\n ctx.uiState.dataTableState.tableState,\n {\n filters: [\n ...(ctx.uiState.dataTableState.tableState.pTableParams?.filters ?? []),\n ...(ctx.uiState.dataTableState.filterModel?.filters ?? []),\n ],\n },\n );\n })\n\n .title((ctx) => {\n if (ctx.args.numbers.length === 5) {\n throw new Error('block title: test error');\n }\n\n return 'Ui Examples';\n })\n\n .sections((ctx) => {\n const dynamicSections = (ctx.uiState.dynamicSections ?? []).map((it) => ({\n type: 'link' as const,\n href: `/section?id=${it.id}` as const,\n label: it.label,\n }));\n\n if (dynamicSections.some((it) => it.label === 'Error')) {\n throw new Error('sections: test error');\n }\n\n return [\n { type: 'link', href: '/loaders', label: 'Loaders' },\n { type: 'link', href: '/', label: 'Icons/Masks' },\n { type: 'link', href: '/layout', label: 'Layout' },\n { type: 'link', href: '/form-components', label: 'Form Components' },\n { type: 'link', href: '/log-view', label: 'PlLogView' },\n { type: 'link', href: '/modals', label: 'Modals' },\n { type: 'link', href: '/select-files', label: 'Select Files' },\n { type: 'link', href: '/inject-env', label: 'Inject env' },\n { type: 'link', href: '/use-watch-fetch', label: 'useWatchFetch' },\n { type: 'link', href: '/typography', label: 'Typography' },\n { type: 'link', href: '/ag-grid-vue', label: 'AgGridVue' },\n { type: 'link', href: '/pl-ag-data-table', label: 'PlAgDataTable' },\n { type: 'link', href: '/pl-splash-page', label: 'PlSplashPage' },\n { type: 'link', href: '/errors', label: 'Errors' },\n { type: 'link', href: '/text-fields', label: 'PlTextField' },\n { type: 'link', href: '/tabs', label: 'PlTabs' },\n { type: 'link', href: '/stacked-bar', label: 'PlChartStackedBar' },\n { type: 'link', href: '/histogram', label: 'PlChartHistogram' },\n { type: 'link', href: '/buttons', label: 'ButtonsPage' },\n { type: 'link', href: '/notifications', label: 'Notifications' },\n { type: 'link', href: '/drafts', label: 'Drafts' },\n ...(dynamicSections.length\n ? [\n { type: 'delimiter' },\n ...dynamicSections,\n { type: 'delimiter' }] as const\n : []),\n {\n type: 'link',\n href: '/add-section',\n appearance: 'add-section',\n label: 'New Dynamic section',\n },\n ];\n })\n\n .done();\n\nexport type BlockOutputs = InferOutputsType<typeof platforma>;\nexport type Href = InferHrefType<typeof platforma>;\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;AAgBO,IAAM,sBAAyB,GAAA,CAAA,CACnC,MAAO,EAAA,CACP,UACA,CAAA,MAAA;AAAA,EACE,CAAC,EAAO,KAAA;AACX;AAEK,UAAU,KAAM,CAAA,IAAA,EAAc,EAAY,EAAA,IAAA,GAAO,CAAG,EAAA;AACzD,EAAA,KAAA,IAAS,CAAI,GAAA,IAAA,EAAM,CAAI,GAAA,EAAA,EAAI,KAAK,IAAM,EAAA;AACpC,IAAM,MAAA,CAAA;AAAA;AAEV;AAEO,SAAS,OAAU,QAA4B,EAAA;AACpD,EAAA,MAAM,MAAW,EAAC;AAClB,EAAA,KAAA,MAAW,MAAM,QAAU,EAAA;AACzB,IAAA,GAAA,CAAI,KAAK,EAAE,CAAA;AAAA;AAGb,EAAO,OAAA,GAAA;AACT;AAEO,SAAS,KAAA,CAAS,GAAW,EAA2B,EAAA;AAC7D,EAAA,OAAO,OAAO,KAAM,CAAA,CAAA,EAAG,CAAC,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA;AACnC;AAEa,IAAA,UAAA,GAAa,EAAE,MAAO,CAAA;AAAA,EACjC,YAAc,EAAA,CAAA,CAAE,MAAO,EAAA,CAAE,QAAQ,GAAG,CAAA;AAAA,EACpC,SAAS,CAAE,CAAA,KAAA,CAAM,CAAE,CAAA,MAAA,CAAO,QAAQ,CAAA;AAAA,EAClC,OAAA,EAAS,CAAE,CAAA,KAAA,CAAM,sBAAsB;AACzC,CAAC;AAiBM,IAAM,SAAY,GAAA,UAAA,CAAW,MAAO,CAAA,OAAO,EAE/C,QAAoB,CAAA,EAAE,OAAS,EAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAG,EAAA,CAAC,GAAG,YAAc,EAAA,GAAA,EAAK,OAAS,EAAA,EAAG,EAAC,CAE7E,CAAA,WAAA,CAAqB,EAAE,cAAgB,EAAA,KAAA,CAAA,EAAW,eAAiB,EAAA,EAAG,EAAC,CAEvE,CAAA,SAAA,CAAU,CAAC,GAAQ,KAAA;AAClB,EAAA,IAAI,GAAI,CAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,KAAW,CAAG,EAAA;AACjC,IAAM,MAAA,IAAI,MAAM,uBAAuB,CAAA;AAAA;AAGzC,EAAO,OAAA,GAAA,CAAI,IAAK,CAAA,OAAA,CAAQ,MAAS,GAAA,CAAA;AACnC,CAAC,EAEA,MAAO,CAAA,SAAA,EAAW,CAAC,GAAA,KAAQ,IAAI,OAAS,EAAA,OAAA,CAAQ,SAAS,CAAA,EAAG,eAAyB,CAAA,CAErF,MAAO,CAAA,YAAA,EAAc,CAAC,GAAQ,KAAA;AAC7B,EAAA,MAAM,CAAI,GAAA,GAAA,CAAI,OAAS,EAAA,OAAA,CAAQ,YAAY,CAAA;AAC3C,EAAM,MAAA,UAAA,GAAa,CAAG,EAAA,SAAA,CAAU,CAAC,IAAA,EAAM,GAAQ,KAAA,CAAC,IAAM,EAAA,GAAA,EAAK,iBAAkB,EAAC,CAAU,CAAA;AACxF,EAAA,OAAO,MAAO,CAAA,WAAA,CAAY,UAAc,IAAA,EAAE,CAAA;AAC5C,CAAC,CAEA,CAAA,MAAA,CAAO,IAAM,EAAA,CAAC,GAAQ,KAAA;AACrB,EAAA,IAAI,CAAC,GAAI,CAAA,OAAA,EAAS,gBAAgB,UAAW,CAAA,YAAA,EAAc,SAAgB,OAAA,KAAA,CAAA;AAE3E,EAAA,MAAM,OAAO,KAAM,CAAA,GAAA,CAAI,KAAK,YAAgB,IAAA,CAAA,EAAG,CAAC,CAAM,KAAA;AACpD,IAAA,MAAM,IAAI,CAAI,GAAA,CAAA;AACd,IAAO,OAAA;AAAA,MACL,GAAK,EAAA,CAAC,CAAG,EAAA,CAAA,GAAI,GAAG,CAAA;AAAA,MAChB,GAAA,EAAK,EAAE,QAAS;AAAA,KAClB;AAAA,GACD,CAAA;AAED,EAAO,OAAA,iBAAA;AAAA,IACL,GAAA;AAAA,IACA;AAAA,MACE;AAAA,QACE,EAAI,EAAA,SAAA;AAAA,QACJ,IAAM,EAAA;AAAA,UACJ,IAAM,EAAA,SAAA;AAAA,UACN,SAAW,EAAA,QAAA;AAAA,UACX,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA;AAAA,YACX,eAAiB,EAAA,eAAA;AAAA,YACjB,wBAA0B,EAAA;AAAA,WAC5B;AAAA,UACA,QAAU,EAAA;AAAA,YACR;AAAA,cACE,IAAM,EAAA,KAAA;AAAA,cACN,IAAM,EAAA,OAAA;AAAA,cACN,WAAa,EAAA;AAAA,gBACX,eAAiB,EAAA,UAAA;AAAA,gBACjB,wBAA0B,EAAA;AAAA;AAC5B,aACF;AAAA,YACA;AAAA,cACE,IAAM,EAAA,OAAA;AAAA,cACN,IAAM,EAAA,OAAA;AAAA,cACN,WAAa,EAAA;AAAA,gBACX,eAAiB,EAAA,YAAA;AAAA,gBACjB,0BAA4B,EAAA;AAAA;AAC9B;AACF;AACF,SACF;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA,GAAA,CAAI,QAAQ,cAAe,CAAA,UAAA;AAAA,IAC3B;AAAA,MACE,OAAS,EAAA;AAAA,QACP,GAAI,GAAI,CAAA,OAAA,CAAQ,eAAe,UAAW,CAAA,YAAA,EAAc,WAAW,EAAC;AAAA,QACpE,GAAI,GAAI,CAAA,OAAA,CAAQ,cAAe,CAAA,WAAA,EAAa,WAAW;AAAC;AAC1D;AACF,GACF;AACF,CAAC,CAAA,CAEA,KAAM,CAAA,CAAC,GAAQ,KAAA;AACd,EAAA,IAAI,GAAI,CAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,KAAW,CAAG,EAAA;AACjC,IAAM,MAAA,IAAI,MAAM,yBAAyB,CAAA;AAAA;AAG3C,EAAO,OAAA,aAAA;AACT,CAAC,CAAA,CAEA,QAAS,CAAA,CAAC,GAAQ,KAAA;AACjB,EAAM,MAAA,eAAA,GAAA,CAAmB,IAAI,OAAQ,CAAA,eAAA,IAAmB,EAAI,EAAA,GAAA,CAAI,CAAC,EAAQ,MAAA;AAAA,IACvE,IAAM,EAAA,MAAA;AAAA,IACN,IAAA,EAAM,CAAe,YAAA,EAAA,EAAA,CAAG,EAAE,CAAA,CAAA;AAAA,IAC1B,OAAO,EAAG,CAAA;AAAA,GACV,CAAA,CAAA;AAEF,EAAA,IAAI,gBAAgB,IAAK,CAAA,CAAC,OAAO,EAAG,CAAA,KAAA,KAAU,OAAO,CAAG,EAAA;AACtD,IAAM,MAAA,IAAI,MAAM,sBAAsB,CAAA;AAAA;AAGxC,EAAO,OAAA;AAAA,IACL,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,UAAA,EAAY,OAAO,SAAU,EAAA;AAAA,IACnD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,GAAA,EAAK,OAAO,aAAc,EAAA;AAAA,IAChD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,SAAA,EAAW,OAAO,QAAS,EAAA;AAAA,IACjD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,kBAAA,EAAoB,OAAO,iBAAkB,EAAA;AAAA,IACnE,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,WAAA,EAAa,OAAO,WAAY,EAAA;AAAA,IACtD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,SAAA,EAAW,OAAO,QAAS,EAAA;AAAA,IACjD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,eAAA,EAAiB,OAAO,cAAe,EAAA;AAAA,IAC7D,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,aAAA,EAAe,OAAO,YAAa,EAAA;AAAA,IACzD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,kBAAA,EAAoB,OAAO,eAAgB,EAAA;AAAA,IACjE,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,aAAA,EAAe,OAAO,YAAa,EAAA;AAAA,IACzD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,cAAA,EAAgB,OAAO,WAAY,EAAA;AAAA,IACzD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,2BAAA,EAA6B,OAAO,wBAAyB,EAAA;AAAA,IACnF,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,mBAAA,EAAqB,OAAO,eAAgB,EAAA;AAAA,IAClE,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,iBAAA,EAAmB,OAAO,cAAe,EAAA;AAAA,IAC/D,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,SAAA,EAAW,OAAO,QAAS,EAAA;AAAA,IACjD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,cAAA,EAAgB,OAAO,aAAc,EAAA;AAAA,IAC3D,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,OAAA,EAAS,OAAO,QAAS,EAAA;AAAA,IAC/C,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,cAAA,EAAgB,OAAO,mBAAoB,EAAA;AAAA,IACjE,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,YAAA,EAAc,OAAO,kBAAmB,EAAA;AAAA,IAC9D,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,UAAA,EAAY,OAAO,aAAc,EAAA;AAAA,IACvD,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,gBAAA,EAAkB,OAAO,eAAgB,EAAA;AAAA,IAC/D,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAM,EAAA,SAAA,EAAW,OAAO,QAAS,EAAA;AAAA,IACjD,GAAI,gBAAgB,MAChB,GAAA;AAAA,MACE,EAAE,MAAM,WAAY,EAAA;AAAA,MACpB,GAAG,eAAA;AAAA,MACH,EAAE,MAAM,WAAY;AAAA,QACtB,EAAC;AAAA,IACL;AAAA,MACE,IAAM,EAAA,MAAA;AAAA,MACN,IAAM,EAAA,cAAA;AAAA,MACN,UAAY,EAAA,aAAA;AAAA,MACZ,KAAO,EAAA;AAAA;AACT,GACF;AACF,CAAC,EAEA,IAAK","file":"index.js","sourcesContent":["import type {\n InferHrefType,\n InferOutputsType,\n PlDataTableState,\n PlTableFiltersModel,\n PColumn,\n PColumnValues,\n PObjectId,\n ImportFileHandle \n} from '@platforma-sdk/model';\nimport {\n BlockModel,\n createPlDataTable,\n} from '@platforma-sdk/model';\nimport { z } from 'zod';\n\nexport const ImportFileHandleSchema = z\n .string()\n .optional()\n .refine<ImportFileHandle | undefined>(\n ((_a) => true) as (arg: string | undefined) => arg is ImportFileHandle | undefined,\n );\n\nexport function* range(from: number, to: number, step = 1) {\n for (let i = from; i < to; i += step) {\n yield i;\n }\n}\n\nexport function toList<T>(iterable: Iterable<T>): T[] {\n const lst: T[] = [];\n for (const it of iterable) {\n lst.push(it);\n }\n\n return lst;\n}\n\nexport function times<R>(n: number, cb: (i: number) => R): R[] {\n return toList(range(0, n)).map(cb);\n}\n\nexport const $BlockArgs = z.object({\n tableNumRows: z.number().default(100),\n numbers: z.array(z.coerce.number()),\n handles: z.array(ImportFileHandleSchema),\n});\n\nexport type BlockArgs = z.infer<typeof $BlockArgs>;\n\nexport type TableState = {\n tableState: PlDataTableState;\n filterModel: PlTableFiltersModel;\n};\n\nexport type UiState = {\n dataTableState: TableState | undefined;\n dynamicSections: {\n id: string;\n label: string;\n }[];\n};\n\nexport const platforma = BlockModel.create('Heavy')\n\n .withArgs<BlockArgs>({ numbers: [1, 2, 3, 4], tableNumRows: 100, handles: [] })\n\n .withUiState<UiState>({ dataTableState: undefined, dynamicSections: [] })\n\n .argsValid((ctx) => {\n if (ctx.args.numbers.length === 5) {\n throw new Error('argsValid: test error');\n }\n\n return ctx.args.numbers.length > 0;\n })\n\n .output('numbers', (ctx) => ctx.outputs?.resolve('numbers')?.getDataAsJson<number[]>())\n\n .output('progresses', (ctx) => {\n const m = ctx.outputs?.resolve('progresses');\n const progresses = m?.mapFields((name, val) => [name, val?.getImportProgress()] as const);\n return Object.fromEntries(progresses ?? []);\n })\n\n .output('pt', (ctx) => {\n if (!ctx.uiState?.dataTableState?.tableState.pTableParams?.filters) return undefined;\n\n const data = times(ctx.args.tableNumRows ?? 0, (i) => {\n const v = i + 1;\n return {\n key: [v, v + 0.1],\n val: v.toString(),\n };\n });\n\n return createPlDataTable(\n ctx,\n [\n {\n id: 'example' as PObjectId,\n spec: {\n kind: 'PColumn',\n valueType: 'String',\n name: 'example',\n annotations: {\n 'pl7.app/label': 'String column',\n 'pl7.app/discreteValues': '[\"up\",\"down\"]',\n },\n axesSpec: [\n {\n type: 'Int',\n name: 'index',\n annotations: {\n 'pl7.app/label': 'Int axis',\n 'pl7.app/discreteValues': '[1,2]',\n },\n },\n {\n type: 'Float',\n name: 'value',\n annotations: {\n 'pl7.app/label': 'Float axis',\n 'pl7.app/table/visibility': 'optional',\n },\n },\n ],\n },\n data,\n } satisfies PColumn<PColumnValues>,\n ],\n ctx.uiState.dataTableState.tableState,\n {\n filters: [\n ...(ctx.uiState.dataTableState.tableState.pTableParams?.filters ?? []),\n ...(ctx.uiState.dataTableState.filterModel?.filters ?? []),\n ],\n },\n );\n })\n\n .title((ctx) => {\n if (ctx.args.numbers.length === 5) {\n throw new Error('block title: test error');\n }\n\n return 'Ui Examples';\n })\n\n .sections((ctx) => {\n const dynamicSections = (ctx.uiState.dynamicSections ?? []).map((it) => ({\n type: 'link' as const,\n href: `/section?id=${it.id}` as const,\n label: it.label,\n }));\n\n if (dynamicSections.some((it) => it.label === 'Error')) {\n throw new Error('sections: test error');\n }\n\n return [\n { type: 'link', href: '/loaders', label: 'Loaders' },\n { type: 'link', href: '/', label: 'Icons/Masks' },\n { type: 'link', href: '/layout', label: 'Layout' },\n { type: 'link', href: '/form-components', label: 'Form Components' },\n { type: 'link', href: '/log-view', label: 'PlLogView' },\n { type: 'link', href: '/modals', label: 'Modals' },\n { type: 'link', href: '/select-files', label: 'Select Files' },\n { type: 'link', href: '/inject-env', label: 'Inject env' },\n { type: 'link', href: '/use-watch-fetch', label: 'useWatchFetch' },\n { type: 'link', href: '/typography', label: 'Typography' },\n { type: 'link', href: '/ag-grid-vue', label: 'AgGridVue' },\n { type: 'link', href: '/ag-grid-vue-with-builder', label: 'AgGridVue with builder' },\n { type: 'link', href: '/pl-ag-data-table', label: 'PlAgDataTable' },\n { type: 'link', href: '/pl-splash-page', label: 'PlSplashPage' },\n { type: 'link', href: '/errors', label: 'Errors' },\n { type: 'link', href: '/text-fields', label: 'PlTextField' },\n { type: 'link', href: '/tabs', label: 'PlTabs' },\n { type: 'link', href: '/stacked-bar', label: 'PlChartStackedBar' },\n { type: 'link', href: '/histogram', label: 'PlChartHistogram' },\n { type: 'link', href: '/buttons', label: 'ButtonsPage' },\n { type: 'link', href: '/notifications', label: 'Notifications' },\n { type: 'link', href: '/drafts', label: 'Drafts' },\n ...(dynamicSections.length\n ? [\n { type: 'delimiter' },\n ...dynamicSections,\n { type: 'delimiter' }] as const\n : []),\n {\n type: 'link',\n href: '/add-section',\n appearance: 'add-section',\n label: 'New Dynamic section',\n },\n ];\n })\n\n .done();\n\nexport type BlockOutputs = InferOutputsType<typeof platforma>;\nexport type Href = InferHrefType<typeof platforma>;\n"]}