@elaraai/e3-ui 1.0.83 → 1.0.84
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/src/bind/record.d.ts +229 -4
- package/dist/src/bind/record.d.ts.map +1 -1
- package/dist/src/bind/record.js +245 -5
- package/dist/src/bind/record.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +2 -1
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +5 -1
- package/dist/src/internal.js.map +1 -1
- package/dist/src/studio/builder.d.ts +3123 -0
- package/dist/src/studio/builder.d.ts.map +1 -0
- package/dist/src/studio/builder.js +115 -0
- package/dist/src/studio/builder.js.map +1 -0
- package/dist/src/studio/canvas.d.ts +83 -0
- package/dist/src/studio/canvas.d.ts.map +1 -0
- package/dist/src/studio/canvas.js +71 -0
- package/dist/src/studio/canvas.js.map +1 -0
- package/dist/src/studio/component.d.ts +178 -0
- package/dist/src/studio/component.d.ts.map +1 -0
- package/dist/src/studio/component.js +189 -0
- package/dist/src/studio/component.js.map +1 -0
- package/dist/src/studio/index.d.ts +104 -0
- package/dist/src/studio/index.d.ts.map +1 -0
- package/dist/src/studio/index.js +75 -0
- package/dist/src/studio/index.js.map +1 -0
- package/dist/src/studio/inspector.d.ts +208 -0
- package/dist/src/studio/inspector.d.ts.map +1 -0
- package/dist/src/studio/inspector.js +155 -0
- package/dist/src/studio/inspector.js.map +1 -0
- package/dist/src/studio/library.d.ts +3506 -0
- package/dist/src/studio/library.d.ts.map +1 -0
- package/dist/src/studio/library.js +245 -0
- package/dist/src/studio/library.js.map +1 -0
- package/dist/src/studio/page.d.ts +305 -0
- package/dist/src/studio/page.d.ts.map +1 -0
- package/dist/src/studio/page.js +105 -0
- package/dist/src/studio/page.js.map +1 -0
- package/dist/src/studio/pages.d.ts +10929 -0
- package/dist/src/studio/pages.d.ts.map +1 -0
- package/dist/src/studio/pages.js +502 -0
- package/dist/src/studio/pages.js.map +1 -0
- package/dist/src/studio/palette.d.ts +179 -0
- package/dist/src/studio/palette.d.ts.map +1 -0
- package/dist/src/studio/palette.js +120 -0
- package/dist/src/studio/palette.js.map +1 -0
- package/dist/src/studio/publish.d.ts +397 -0
- package/dist/src/studio/publish.d.ts.map +1 -0
- package/dist/src/studio/publish.js +198 -0
- package/dist/src/studio/publish.js.map +1 -0
- package/dist/test/bind/record/record.examples.d.ts +65 -1
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +21 -3
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/studio/component.examples.d.ts +7 -0
- package/dist/test/studio/component.examples.d.ts.map +1 -0
- package/dist/test/studio/component.examples.js +46 -0
- package/dist/test/studio/component.examples.js.map +1 -0
- package/dist/test/studio/page.examples.d.ts +7 -0
- package/dist/test/studio/page.examples.d.ts.map +1 -0
- package/dist/test/studio/page.examples.js +64 -0
- package/dist/test/studio/page.examples.js.map +1 -0
- package/dist/test/studio/studio.examples.d.ts +1766 -0
- package/dist/test/studio/studio.examples.d.ts.map +1 -0
- package/dist/test/studio/studio.examples.js +354 -0
- package/dist/test/studio/studio.examples.js.map +1 -0
- package/package.json +9 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../src/studio/pages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACH,SAAS,EACT,iBAAiB,EACjB,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,UAAU,EAGV,UAAU,EACV,UAAU,EACV,WAAW,EAIX,KAAK,QAAQ,EAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAU,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAO9D;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;;;EAGxB,CAAC;AAEH,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC;AAEjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;EASzB,CAAC;AAEH,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;EAGzB,CAAC;AAEH,yCAAyC;AACzC,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;EAGzB,CAAC;AAEH,uDAAuD;AACvD,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG9B,CAAC;AAEH,gCAAgC;AAChC,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG1B,CAAC;AAEH,uDAAuD;AACvD,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA2C,CAAC;AAExE,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC;AAErD,sDAAsD;AACtD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CvB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsBtB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsBnB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmBxB,CAAC;AAcF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAOrB,CAAC;AAyCF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkHvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAUtB,CAAC;AAEF,gIAAgI;AAChI,MAAM,WAAW,oBAAoB;IACjC,kFAAkF;IAClF,IAAI,EAAE,OAAO,SAAS,CAAC;IACvB,mFAAmF;IACnF,OAAO,EAAE,OAAO,WAAW,CAAC;IAC5B,+DAA+D;IAC/D,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,iEAAiE;IACjE,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,iEAAiE;IACjE,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,8EAA8E;IAC9E,OAAO,EAAE,OAAO,WAAW,CAAC;IAC5B,4CAA4C;IAC5C,MAAM,EAAE,OAAO,UAAU,CAAC;CAC7B;AAED,wDAAwD;AACxD,eAAO,MAAM,WAAW,EAAE,oBAQzB,CAAC"}
|
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The Studio's pages (#992) — the type of the one record a solution declares,
|
|
7
|
+
* the patch every operator action writes it with, and the change list.
|
|
8
|
+
*
|
|
9
|
+
* The Studio exports types; the solution declares its storage like any record,
|
|
10
|
+
* with one write, a patch:
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* export const pages = e3.record("pages", Studio.Types.Pages, new Map());
|
|
14
|
+
* export const pagesPatch = e3.mutation.patch(pages);
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Save, publish, revert, a new page and save-as-template are each one patch
|
|
18
|
+
* through it, computed in East as the diff of the one entry it writes, before
|
|
19
|
+
* and after. A patch carries what it changes as it was, so a write that meets
|
|
20
|
+
* what another write changed since it was drafted fails the record's check and
|
|
21
|
+
* names the page, and nothing is overwritten. The type never depends on the
|
|
22
|
+
* components, so a deploy that adds, changes or removes one runs no migration.
|
|
23
|
+
*
|
|
24
|
+
* @packageDocumentation
|
|
25
|
+
*/
|
|
26
|
+
import { ArrayType, AsyncFunctionType, DictType, East, FunctionType, IntegerType, NullType, OptionType, PatchType, SetType, StringType, StructType, VariantType, none, some, variant, } from "@elaraai/east";
|
|
27
|
+
import { Editing, SnapGrid } from "@elaraai/east-ui/internal";
|
|
28
|
+
import { RecordCommitInfoType } from "@elaraai/e3-types";
|
|
29
|
+
import { Record, RecordOutcomeType } from "../bind/record.js";
|
|
30
|
+
import { StudioComponentType } from "./component.js";
|
|
31
|
+
// ============================================================================
|
|
32
|
+
// Types
|
|
33
|
+
// ============================================================================
|
|
34
|
+
/**
|
|
35
|
+
* A page's key: the project it belongs to, and its name in the project. A
|
|
36
|
+
* project's pages are one contiguous run in key order.
|
|
37
|
+
*
|
|
38
|
+
* @property project - The project
|
|
39
|
+
* @property page - The page's name in the project
|
|
40
|
+
*/
|
|
41
|
+
export const StudioKeyType = StructType({
|
|
42
|
+
project: StringType,
|
|
43
|
+
page: StringType,
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* One placement on a page: a component's key, where it sits on the 12-column
|
|
47
|
+
* grid, and its code's fingerprint when it was placed or the page last
|
|
48
|
+
* published.
|
|
49
|
+
*
|
|
50
|
+
* @remarks
|
|
51
|
+
* Rows order by their first appearance among the cells, and the cells of a row
|
|
52
|
+
* by their order in the page's `cells` — the SnapGrid's own layout, so a page's
|
|
53
|
+
* cells are the rows the canvas edits.
|
|
54
|
+
*
|
|
55
|
+
* @property key - The placement's identity on the page
|
|
56
|
+
* @property row - The key of the row it sits in
|
|
57
|
+
* @property span - Its width, in columns of 12
|
|
58
|
+
* @property height - Its height in px; `none` is its content's height
|
|
59
|
+
* @property align - Where it sits in a taller row
|
|
60
|
+
* @property title - Its title; `none` is its component's name
|
|
61
|
+
* @property component - The key of the component it places
|
|
62
|
+
* @property fingerprint - Its component's fingerprint when it was placed, stamped anew each time the page publishes — so a live version's cells hold the code each went live with
|
|
63
|
+
*/
|
|
64
|
+
export const StudioCellType = StructType({
|
|
65
|
+
key: StringType,
|
|
66
|
+
row: StringType,
|
|
67
|
+
span: IntegerType,
|
|
68
|
+
height: OptionType(IntegerType),
|
|
69
|
+
align: SnapGrid.Types.Align,
|
|
70
|
+
title: OptionType(StringType),
|
|
71
|
+
component: StringType,
|
|
72
|
+
fingerprint: StringType,
|
|
73
|
+
});
|
|
74
|
+
/**
|
|
75
|
+
* A page's layout: its title and its placements.
|
|
76
|
+
*
|
|
77
|
+
* @property title - The page's title
|
|
78
|
+
* @property cells - Its placements, in the order the canvas holds them
|
|
79
|
+
*/
|
|
80
|
+
export const StudioPageType = StructType({
|
|
81
|
+
title: StringType,
|
|
82
|
+
cells: ArrayType(StudioCellType),
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* A published version of a page.
|
|
86
|
+
*
|
|
87
|
+
* @property version - Its number, counting up from 1
|
|
88
|
+
* @property page - The layout it published
|
|
89
|
+
*/
|
|
90
|
+
export const StudioLiveType = StructType({
|
|
91
|
+
version: IntegerType,
|
|
92
|
+
page: StudioPageType,
|
|
93
|
+
});
|
|
94
|
+
/**
|
|
95
|
+
* A page: the layout the builder edits, and the version the site shows.
|
|
96
|
+
*
|
|
97
|
+
* @property draft - The layout as last saved
|
|
98
|
+
* @property live - The published version; `none` until the first publish
|
|
99
|
+
*/
|
|
100
|
+
export const StudioPageEntryType = StructType({
|
|
101
|
+
draft: StudioPageType,
|
|
102
|
+
live: OptionType(StudioLiveType),
|
|
103
|
+
});
|
|
104
|
+
/**
|
|
105
|
+
* One entry of the pages record.
|
|
106
|
+
*
|
|
107
|
+
* @property page - A page, drafted and published
|
|
108
|
+
* @property template - A layout saved from a page, which new pages start from
|
|
109
|
+
*/
|
|
110
|
+
export const StudioEntryType = VariantType({
|
|
111
|
+
page: StudioPageEntryType,
|
|
112
|
+
template: StudioPageType,
|
|
113
|
+
});
|
|
114
|
+
/**
|
|
115
|
+
* The pages record's type — every page and template, by key. A solution
|
|
116
|
+
* declares its record with it: `e3.record("pages", Studio.Types.Pages, new Map())`.
|
|
117
|
+
*/
|
|
118
|
+
export const StudioPagesType = DictType(StudioKeyType, StudioEntryType);
|
|
119
|
+
/** The pages record's patch — what every write is. */
|
|
120
|
+
export const StudioPagesPatchType = PatchType(StudioPagesType);
|
|
121
|
+
/**
|
|
122
|
+
* The pages record, bound with its patch — what the builder and the page
|
|
123
|
+
* library read and write through: the bound record's `read`, its `history`,
|
|
124
|
+
* and its patch write awaited. Their factories take these from
|
|
125
|
+
* `Record.bind(pages, [pagesPatch])`.
|
|
126
|
+
*
|
|
127
|
+
* @property read - The record's current state
|
|
128
|
+
* @property history - Its commit chain, newest first — who changed a page last, for a conflict's words
|
|
129
|
+
* @property commit - Its patch write, awaited: a request id and the patch, answered by the outcome
|
|
130
|
+
*/
|
|
131
|
+
export const StudioPagesHandleType = StructType({
|
|
132
|
+
read: FunctionType([], StudioPagesType),
|
|
133
|
+
history: FunctionType([], OptionType(ArrayType(RecordCommitInfoType))),
|
|
134
|
+
commit: StructType({
|
|
135
|
+
patch: AsyncFunctionType([StringType, StudioPagesPatchType], RecordOutcomeType),
|
|
136
|
+
}),
|
|
137
|
+
});
|
|
138
|
+
/**
|
|
139
|
+
* One change to a placement.
|
|
140
|
+
*
|
|
141
|
+
* @property cell - The placement's key
|
|
142
|
+
* @property component - The key of the component it places
|
|
143
|
+
* @property detail - What changed, such as "row 2 · span 4" or "span 12 → 8"
|
|
144
|
+
*/
|
|
145
|
+
export const StudioCellChangeType = StructType({
|
|
146
|
+
cell: StringType,
|
|
147
|
+
component: StringType,
|
|
148
|
+
detail: StringType,
|
|
149
|
+
});
|
|
150
|
+
/**
|
|
151
|
+
* One change between two layouts of a page, as {@link pageChanges} lists them.
|
|
152
|
+
*
|
|
153
|
+
* @property added - Placed on the page — its row and span
|
|
154
|
+
* @property removed - Taken off the page — the row and span it had
|
|
155
|
+
* @property moved - Moved into another row or a new one, with its row among the rows, or to another place in its row
|
|
156
|
+
* @property resized - Its span changed
|
|
157
|
+
* @property height - Its height changed; `auto` is its content's height
|
|
158
|
+
* @property aligned - Where it sits in a taller row changed
|
|
159
|
+
* @property retitled - Its title changed; `default` is its component's name
|
|
160
|
+
*/
|
|
161
|
+
export const StudioChangeType = VariantType({
|
|
162
|
+
added: StudioCellChangeType,
|
|
163
|
+
removed: StudioCellChangeType,
|
|
164
|
+
moved: StudioCellChangeType,
|
|
165
|
+
resized: StudioCellChangeType,
|
|
166
|
+
height: StudioCellChangeType,
|
|
167
|
+
aligned: StudioCellChangeType,
|
|
168
|
+
retitled: StudioCellChangeType,
|
|
169
|
+
});
|
|
170
|
+
/**
|
|
171
|
+
* A page's status.
|
|
172
|
+
*
|
|
173
|
+
* @property live - Published, and its draft is the published layout
|
|
174
|
+
* @property draft - Never published, or its draft has changes the site does not show
|
|
175
|
+
*/
|
|
176
|
+
export const StudioStatusType = VariantType({
|
|
177
|
+
live: NullType,
|
|
178
|
+
draft: NullType,
|
|
179
|
+
});
|
|
180
|
+
// ============================================================================
|
|
181
|
+
// The writes — each one patch through the record's patch mutation
|
|
182
|
+
// ============================================================================
|
|
183
|
+
/**
|
|
184
|
+
* Publishes a page: its live version becomes its draft, numbered one past the
|
|
185
|
+
* version it replaces, or 1 the first time — each placement stamped with the
|
|
186
|
+
* code it goes live with, its component's fingerprint as the surface lists it
|
|
187
|
+
* now.
|
|
188
|
+
*
|
|
189
|
+
* @remarks
|
|
190
|
+
* The stamp is written to the draft too, so the draft is the live version once
|
|
191
|
+
* the patch lands, and the next publish preview names only the components
|
|
192
|
+
* whose code changed since. A placement whose component the surface does not
|
|
193
|
+
* list keeps the fingerprint it has. The patch changes the page's live version
|
|
194
|
+
* and the fingerprints it restamps, and carries both as they were: a publish
|
|
195
|
+
* drafted before another one landed is a conflict naming the page, and so is
|
|
196
|
+
* one drafted before a save that removed or reordered placements it restamps.
|
|
197
|
+
*/
|
|
198
|
+
export const publishPage = East.function([StudioPagesType, StudioKeyType, ArrayType(StudioComponentType)], StudioPagesPatchType, ($, pages, key, components) => {
|
|
199
|
+
const entry = $.let(pages.tryGet(key).match({
|
|
200
|
+
some: (_$, found) => found,
|
|
201
|
+
none: ($2) => $2.error(East.str `No page ${East.print(key)}`),
|
|
202
|
+
}), StudioEntryType);
|
|
203
|
+
const page = $.let(entry.match({
|
|
204
|
+
page: (_$, found) => found,
|
|
205
|
+
template: ($2) => $2.error(East.str `${East.print(key)} is a template, not a page`),
|
|
206
|
+
}), StudioPageEntryType);
|
|
207
|
+
const version = $.let(page.live.match({
|
|
208
|
+
some: (_$, live) => live.version.add(1n),
|
|
209
|
+
none: (_$) => East.value(1n),
|
|
210
|
+
}));
|
|
211
|
+
// Each placement's code as it goes live; a key two components share
|
|
212
|
+
// keeps the first one's, as the surface renders it.
|
|
213
|
+
const fingerprints = $.let(components.toDict((_$2, component) => component.key, (_$2, component) => component.fingerprint, (_$2, first) => first), DictType(StringType, StringType));
|
|
214
|
+
const stamped = $.let({
|
|
215
|
+
title: page.draft.title,
|
|
216
|
+
cells: page.draft.cells.map((_$2, cell) => ({
|
|
217
|
+
key: cell.key,
|
|
218
|
+
row: cell.row,
|
|
219
|
+
span: cell.span,
|
|
220
|
+
height: cell.height,
|
|
221
|
+
align: cell.align,
|
|
222
|
+
title: cell.title,
|
|
223
|
+
component: cell.component,
|
|
224
|
+
fingerprint: fingerprints.tryGet(cell.component).match({
|
|
225
|
+
some: (_$3, fingerprint) => fingerprint,
|
|
226
|
+
none: (_$3) => cell.fingerprint,
|
|
227
|
+
}),
|
|
228
|
+
})),
|
|
229
|
+
}, StudioPageType);
|
|
230
|
+
const before = $.let(new Map(), StudioPagesType);
|
|
231
|
+
$(before.insert(key, entry));
|
|
232
|
+
const after = $.let(new Map(), StudioPagesType);
|
|
233
|
+
$(after.insert(key, variant("page", { draft: stamped, live: some({ version, page: stamped }) })));
|
|
234
|
+
return East.diff(before, after);
|
|
235
|
+
});
|
|
236
|
+
/**
|
|
237
|
+
* Reverts a page: its draft becomes its live version's layout.
|
|
238
|
+
*
|
|
239
|
+
* @remarks
|
|
240
|
+
* The patch carries the draft's cells it changes as they were, so a revert that
|
|
241
|
+
* meets cells another save changed is a conflict naming the page.
|
|
242
|
+
*/
|
|
243
|
+
export const revertPage = East.function([StudioPagesType, StudioKeyType], StudioPagesPatchType, ($, pages, key) => {
|
|
244
|
+
const entry = $.let(pages.tryGet(key).match({
|
|
245
|
+
some: (_$, found) => found,
|
|
246
|
+
none: ($2) => $2.error(East.str `No page ${East.print(key)}`),
|
|
247
|
+
}), StudioEntryType);
|
|
248
|
+
const page = $.let(entry.match({
|
|
249
|
+
page: (_$, found) => found,
|
|
250
|
+
template: ($2) => $2.error(East.str `${East.print(key)} is a template, not a page`),
|
|
251
|
+
}), StudioPageEntryType);
|
|
252
|
+
const live = $.let(page.live.match({
|
|
253
|
+
some: (_$, found) => found,
|
|
254
|
+
none: ($2) => $2.error(East.str `${East.print(key)} has no published version to revert to`),
|
|
255
|
+
}), StudioLiveType);
|
|
256
|
+
const before = $.let(new Map(), StudioPagesType);
|
|
257
|
+
$(before.insert(key, entry));
|
|
258
|
+
const after = $.let(new Map(), StudioPagesType);
|
|
259
|
+
$(after.insert(key, variant("page", { draft: live.page, live: page.live })));
|
|
260
|
+
return East.diff(before, after);
|
|
261
|
+
});
|
|
262
|
+
/**
|
|
263
|
+
* Starts a page: its draft is a template's cells under the title given, or no
|
|
264
|
+
* cells at all (the blank grid), and it has no live version.
|
|
265
|
+
*
|
|
266
|
+
* @remarks
|
|
267
|
+
* The patch inserts the page, so a key another write took first is a conflict
|
|
268
|
+
* naming it.
|
|
269
|
+
*/
|
|
270
|
+
export const newPage = East.function([StudioPagesType, StudioKeyType, StringType, OptionType(StudioKeyType)], StudioPagesPatchType, ($, pages, key, title, template) => {
|
|
271
|
+
$.if(pages.has(key), ($2) => {
|
|
272
|
+
$2.error(East.str `${East.print(key)} already exists`);
|
|
273
|
+
});
|
|
274
|
+
const cells = $.let(template.match({
|
|
275
|
+
some: (_$, from) => pages.tryGet(from).match({
|
|
276
|
+
some: (_$2, found) => found.match({
|
|
277
|
+
template: (_$3, layout) => layout.cells,
|
|
278
|
+
page: ($3) => $3.error(East.str `${East.print(from)} is a page, not a template`),
|
|
279
|
+
}),
|
|
280
|
+
none: ($2) => $2.error(East.str `No template ${East.print(from)}`),
|
|
281
|
+
}),
|
|
282
|
+
none: (_$) => East.value([], ArrayType(StudioCellType)),
|
|
283
|
+
}), ArrayType(StudioCellType));
|
|
284
|
+
const before = $.let(new Map(), StudioPagesType);
|
|
285
|
+
const after = $.let(new Map(), StudioPagesType);
|
|
286
|
+
$(after.insert(key, variant("page", { draft: { title, cells }, live: none })));
|
|
287
|
+
return East.diff(before, after);
|
|
288
|
+
});
|
|
289
|
+
/**
|
|
290
|
+
* Saves a page's draft as a template, under a key of its own and the title
|
|
291
|
+
* given; the page library lists it in its Templates row.
|
|
292
|
+
*
|
|
293
|
+
* @remarks
|
|
294
|
+
* The patch inserts the template, so a key another write took first is a
|
|
295
|
+
* conflict naming it.
|
|
296
|
+
*/
|
|
297
|
+
export const saveTemplate = East.function([StudioPagesType, StudioKeyType, StudioKeyType, StringType], StudioPagesPatchType, ($, pages, from, key, title) => {
|
|
298
|
+
$.if(pages.has(key), ($2) => {
|
|
299
|
+
$2.error(East.str `${East.print(key)} already exists`);
|
|
300
|
+
});
|
|
301
|
+
const page = $.let(pages.tryGet(from).match({
|
|
302
|
+
some: (_$, found) => found.match({
|
|
303
|
+
page: (_$2, entry) => entry,
|
|
304
|
+
template: ($2) => $2.error(East.str `${East.print(from)} is a template, not a page`),
|
|
305
|
+
}),
|
|
306
|
+
none: ($2) => $2.error(East.str `No page ${East.print(from)}`),
|
|
307
|
+
}), StudioPageEntryType);
|
|
308
|
+
const before = $.let(new Map(), StudioPagesType);
|
|
309
|
+
const after = $.let(new Map(), StudioPagesType);
|
|
310
|
+
$(after.insert(key, variant("template", { title, cells: page.draft.cells })));
|
|
311
|
+
return East.diff(before, after);
|
|
312
|
+
});
|
|
313
|
+
/** The cells of an entry: a page's draft's, or a template's. */
|
|
314
|
+
const draftCellsOf = East.function([StudioEntryType], ArrayType(StudioCellType), (_$, entry) => entry.match({
|
|
315
|
+
page: (_$2, page) => page.draft.cells,
|
|
316
|
+
template: (_$2, layout) => layout.cells,
|
|
317
|
+
}));
|
|
318
|
+
/** An entry with its cells replaced, and nothing else changed. */
|
|
319
|
+
const withDraftCells = East.function([StudioEntryType, ArrayType(StudioCellType)], StudioEntryType, (_$, entry, cells) => entry.match({
|
|
320
|
+
page: (_$2, page) => East.value(variant("page", { draft: { title: page.draft.title, cells }, live: page.live }), StudioEntryType),
|
|
321
|
+
template: (_$2, layout) => East.value(variant("template", { title: layout.title, cells }), StudioEntryType),
|
|
322
|
+
}));
|
|
323
|
+
/**
|
|
324
|
+
* Saves a page's placements: the builder canvas's Apply, which commits its
|
|
325
|
+
* batch of placements to the page's draft as one patch.
|
|
326
|
+
*
|
|
327
|
+
* @remarks
|
|
328
|
+
* `Record.onApply`'s form over a collection inside one entry — the draft's
|
|
329
|
+
* cells, identified by `key`. The patch reaches the cells and nothing else,
|
|
330
|
+
* and cells another write moved since the edit began are a conflict.
|
|
331
|
+
*/
|
|
332
|
+
export const saveCells = East.asyncFunction([StudioPagesHandleType, StudioKeyType, Editing.Types.ChangeSet(StudioCellType)], Editing.Types.ApplyResult, ($, handle, key, batch) => {
|
|
333
|
+
const apply = $.const(Record.onApply(handle, { entry: key, get: draftCellsOf, set: withDraftCells, idField: "key" }));
|
|
334
|
+
return apply(batch);
|
|
335
|
+
});
|
|
336
|
+
// ============================================================================
|
|
337
|
+
// The reads
|
|
338
|
+
// ============================================================================
|
|
339
|
+
/**
|
|
340
|
+
* Where a placement sits: its row's number, counting from 1 in the order rows
|
|
341
|
+
* first appear, its place in the row counting from 1, and its place in
|
|
342
|
+
* reading order counting from 0.
|
|
343
|
+
*/
|
|
344
|
+
const PlaceType = StructType({ row: IntegerType, position: IntegerType, order: IntegerType });
|
|
345
|
+
/** A layout's placements by key, and their keys in reading order. */
|
|
346
|
+
const LayoutType = StructType({
|
|
347
|
+
places: DictType(StringType, PlaceType),
|
|
348
|
+
order: ArrayType(StringType),
|
|
349
|
+
});
|
|
350
|
+
/** Where each placement of a layout sits, as the SnapGrid lays it out. */
|
|
351
|
+
const layoutOf = East.function([StudioPageType], LayoutType, ($, page) => {
|
|
352
|
+
const numbers = $.let(new Map(), DictType(StringType, IntegerType));
|
|
353
|
+
const rows = $.let(new Map(), DictType(IntegerType, ArrayType(StringType)));
|
|
354
|
+
$.for(page.cells, ($2, cell) => {
|
|
355
|
+
$2.if(numbers.has(cell.row).not(), ($3) => {
|
|
356
|
+
$3(numbers.insert(cell.row, numbers.size().add(1n)));
|
|
357
|
+
$3(rows.insert(numbers.get(cell.row), East.value([], ArrayType(StringType))));
|
|
358
|
+
});
|
|
359
|
+
$2(rows.get(numbers.get(cell.row)).pushLast(cell.key));
|
|
360
|
+
});
|
|
361
|
+
const places = $.let(new Map(), DictType(StringType, PlaceType));
|
|
362
|
+
const order = $.let([], ArrayType(StringType));
|
|
363
|
+
$.for(rows, ($2, keys, number) => {
|
|
364
|
+
$2.for(keys, ($3, key, index) => {
|
|
365
|
+
$3(places.insertOrUpdate(key, { row: number, position: index.add(1n), order: order.size() }, (_$4, existing) => existing));
|
|
366
|
+
$3(order.pushLast(key));
|
|
367
|
+
});
|
|
368
|
+
});
|
|
369
|
+
return { places, order };
|
|
370
|
+
});
|
|
371
|
+
/**
|
|
372
|
+
* The changes from one layout of a page to another — what the builder counts
|
|
373
|
+
* and the publish preview lists.
|
|
374
|
+
*
|
|
375
|
+
* @remarks
|
|
376
|
+
* Each placement's changes come in the later layout's reading order, then the
|
|
377
|
+
* placements it no longer has. A placement moved when its row changed, or when
|
|
378
|
+
* it left the longest run of placements still in their reading order, so a
|
|
379
|
+
* move reports the placement moved and not the ones around it; which of two
|
|
380
|
+
* placements that swapped places moved is ambiguous, and one is reported. A
|
|
381
|
+
* change to a placement's component's fingerprint is not a layout change and
|
|
382
|
+
* is not listed.
|
|
383
|
+
*/
|
|
384
|
+
export const pageChanges = East.function([StudioPageType, StudioPageType], ArrayType(StudioChangeType), ($, before, after) => {
|
|
385
|
+
const layout = $.const(layoutOf);
|
|
386
|
+
const was = $.let(layout(before));
|
|
387
|
+
const now = $.let(layout(after));
|
|
388
|
+
const cellsBefore = $.let(before.cells.toDict((_$2, cell) => cell.key, (_$2, cell) => cell, (_$2, existing) => existing));
|
|
389
|
+
const cellsAfter = $.let(after.cells.toDict((_$2, cell) => cell.key, (_$2, cell) => cell, (_$2, existing) => existing));
|
|
390
|
+
const rowsBefore = $.let(new Set(), SetType(StringType));
|
|
391
|
+
$.for(before.cells, ($2, cell) => {
|
|
392
|
+
$2(rowsBefore.tryInsert(cell.row));
|
|
393
|
+
});
|
|
394
|
+
// The placements both layouts hold in the same row, in the later one's
|
|
395
|
+
// reading order, and where each sat in the earlier one's. The longest
|
|
396
|
+
// run whose earlier places still increase kept its order; the rest
|
|
397
|
+
// moved. One that changed rows moved already, and is left out so it
|
|
398
|
+
// cannot take a neighbour's place in the run.
|
|
399
|
+
const common = $.let(now.order.filter((_$2, key) => cellsBefore.has(key)
|
|
400
|
+
.and(() => East.equal(cellsBefore.get(key).row, cellsAfter.get(key).row))));
|
|
401
|
+
const earlier = $.let(common.map((_$2, key) => was.places.get(key).order));
|
|
402
|
+
const lengths = $.let(new Map(), DictType(IntegerType, IntegerType));
|
|
403
|
+
const previous = $.let(new Map(), DictType(IntegerType, IntegerType));
|
|
404
|
+
$.for(earlier, ($2, place, i) => {
|
|
405
|
+
$2(lengths.insert(i, 1n));
|
|
406
|
+
$2(previous.insert(i, -1n));
|
|
407
|
+
$2.for(earlier, ($3, other, j) => {
|
|
408
|
+
$3.if(j.less(i).and(() => other.less(place)).and(() => lengths.get(j).add(1n).greater(lengths.get(i))), ($4) => {
|
|
409
|
+
$4(lengths.update(i, lengths.get(j).add(1n)));
|
|
410
|
+
$4(previous.update(i, j));
|
|
411
|
+
});
|
|
412
|
+
});
|
|
413
|
+
});
|
|
414
|
+
const best = $.let(-1n);
|
|
415
|
+
const longest = $.let(0n);
|
|
416
|
+
$.for(lengths, ($2, length, i) => {
|
|
417
|
+
$2.if(length.greater(longest), ($3) => {
|
|
418
|
+
$3.assign(best, i);
|
|
419
|
+
$3.assign(longest, length);
|
|
420
|
+
});
|
|
421
|
+
});
|
|
422
|
+
const kept = $.let(new Set(), SetType(StringType));
|
|
423
|
+
$.for(earlier, ($2) => {
|
|
424
|
+
$2.if(best.greaterEqual(0n), ($3) => {
|
|
425
|
+
$3(kept.insert(common.get(best)));
|
|
426
|
+
$3.assign(best, previous.get(best));
|
|
427
|
+
});
|
|
428
|
+
});
|
|
429
|
+
const changes = $.let([], ArrayType(StudioChangeType));
|
|
430
|
+
$.for(now.order, ($2, key) => {
|
|
431
|
+
const cell = $2.let(cellsAfter.get(key));
|
|
432
|
+
const place = $2.let(now.places.get(key));
|
|
433
|
+
$2.match(cellsBefore.tryGet(key), {
|
|
434
|
+
none: ($3) => {
|
|
435
|
+
$3(changes.pushLast(variant("added", {
|
|
436
|
+
cell: key, component: cell.component,
|
|
437
|
+
detail: East.str `row ${East.print(place.row)} · span ${East.print(cell.span)}`,
|
|
438
|
+
})));
|
|
439
|
+
},
|
|
440
|
+
some: ($3, old) => {
|
|
441
|
+
const from = $3.let(was.places.get(key));
|
|
442
|
+
$3.if(East.notEqual(old.row, cell.row).or(() => kept.has(key).not()), ($4) => {
|
|
443
|
+
// Into another row, or a new one; its own row moved among
|
|
444
|
+
// the rows; or a new place in its row.
|
|
445
|
+
const detail = $4.let(East.notEqual(old.row, cell.row).ifElse(() => rowsBefore.has(cell.row).ifElse(() => East.str `row ${East.print(from.row)} → row ${East.print(place.row)}`, () => East.str `row ${East.print(from.row)} → new row ${East.print(place.row)}`), () => East.equal(from.row, place.row).ifElse(() => East.str `row ${East.print(place.row)} · position ${East.print(from.position)} → ${East.print(place.position)}`, () => East.str `row ${East.print(from.row)} → row ${East.print(place.row)}`)));
|
|
446
|
+
$4(changes.pushLast(variant("moved", { cell: key, component: cell.component, detail })));
|
|
447
|
+
});
|
|
448
|
+
$3.if(East.notEqual(old.span, cell.span), ($4) => {
|
|
449
|
+
$4(changes.pushLast(variant("resized", {
|
|
450
|
+
cell: key, component: cell.component,
|
|
451
|
+
detail: East.str `span ${East.print(old.span)} → ${East.print(cell.span)}`,
|
|
452
|
+
})));
|
|
453
|
+
});
|
|
454
|
+
$3.if(East.notEqual(old.height, cell.height), ($4) => {
|
|
455
|
+
const oldHeight = $4.let(old.height.match({ some: (_$5, px) => East.print(px), none: (_$5) => East.value("auto") }));
|
|
456
|
+
const newHeight = $4.let(cell.height.match({ some: (_$5, px) => East.print(px), none: (_$5) => East.value("auto") }));
|
|
457
|
+
$4(changes.pushLast(variant("height", { cell: key, component: cell.component, detail: East.str `height ${oldHeight} → ${newHeight}` })));
|
|
458
|
+
});
|
|
459
|
+
$3.if(East.notEqual(old.align, cell.align), ($4) => {
|
|
460
|
+
const oldAlign = $4.let(old.align.match({ top: (_$5) => East.value("top"), center: (_$5) => East.value("center"), stretch: (_$5) => East.value("stretch") }));
|
|
461
|
+
const newAlign = $4.let(cell.align.match({ top: (_$5) => East.value("top"), center: (_$5) => East.value("center"), stretch: (_$5) => East.value("stretch") }));
|
|
462
|
+
$4(changes.pushLast(variant("aligned", { cell: key, component: cell.component, detail: East.str `align ${oldAlign} → ${newAlign}` })));
|
|
463
|
+
});
|
|
464
|
+
$3.if(East.notEqual(old.title, cell.title), ($4) => {
|
|
465
|
+
const oldTitle = $4.let(old.title.match({ some: (_$5, text) => East.str `"${text}"`, none: (_$5) => East.value("default") }));
|
|
466
|
+
const newTitle = $4.let(cell.title.match({ some: (_$5, text) => East.str `"${text}"`, none: (_$5) => East.value("default") }));
|
|
467
|
+
$4(changes.pushLast(variant("retitled", { cell: key, component: cell.component, detail: East.str `title ${oldTitle} → ${newTitle}` })));
|
|
468
|
+
});
|
|
469
|
+
},
|
|
470
|
+
});
|
|
471
|
+
});
|
|
472
|
+
$.for(was.order, ($2, key) => {
|
|
473
|
+
$2.if(cellsAfter.has(key).not(), ($3) => {
|
|
474
|
+
const cell = $3.let(cellsBefore.get(key));
|
|
475
|
+
const place = $3.let(was.places.get(key));
|
|
476
|
+
$3(changes.pushLast(variant("removed", {
|
|
477
|
+
cell: key, component: cell.component,
|
|
478
|
+
detail: East.str `row ${East.print(place.row)} · span ${East.print(cell.span)}`,
|
|
479
|
+
})));
|
|
480
|
+
});
|
|
481
|
+
});
|
|
482
|
+
return changes;
|
|
483
|
+
});
|
|
484
|
+
/**
|
|
485
|
+
* A page's status: live when it is published and its draft is the published
|
|
486
|
+
* layout, and draft otherwise.
|
|
487
|
+
*/
|
|
488
|
+
export const pageStatus = East.function([StudioPageEntryType], StudioStatusType, (_$, page) => page.live.match({
|
|
489
|
+
some: (_$2, live) => East.equal(live.page, page.draft).ifElse(() => East.value(variant("live", null), StudioStatusType), () => East.value(variant("draft", null), StudioStatusType)),
|
|
490
|
+
none: (_$2) => East.value(variant("draft", null), StudioStatusType),
|
|
491
|
+
}));
|
|
492
|
+
/** The page half of the internal `Studio` namespace. */
|
|
493
|
+
export const StudioPages = {
|
|
494
|
+
save: saveCells,
|
|
495
|
+
publish: publishPage,
|
|
496
|
+
revert: revertPage,
|
|
497
|
+
newPage,
|
|
498
|
+
saveTemplate,
|
|
499
|
+
changes: pageChanges,
|
|
500
|
+
status: pageStatus,
|
|
501
|
+
};
|
|
502
|
+
//# sourceMappingURL=pages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/studio/pages.ts"],"names":[],"mappings":"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"}
|