@simai-studio/view 0.0.0-stage → 1.1.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.
- package/LICENSE.md +183 -0
- package/README.md +75 -2
- package/dist/package-receipt.json +972 -0
- package/dist/set.json +141 -0
- package/dist/smart/rule.js +278 -0
- package/dist/smart/rule.js.gz +0 -0
- package/dist/smart/view/aliases.json +129 -0
- package/dist/smart/view/aliases.json.gz +0 -0
- package/dist/smart/view/component.json +1628 -0
- package/dist/smart/view/component.json.gz +0 -0
- package/dist/smart/view/css/view.css +208 -0
- package/dist/smart/view/css/view.css.gz +0 -0
- package/dist/smart/view/css/view.min.css +2 -0
- package/dist/smart/view/css/view.min.css.gz +0 -0
- package/dist/smart/view/examples.json +668 -0
- package/dist/smart/view/examples.json.gz +0 -0
- package/dist/smart/view/js/view.js +3955 -0
- package/dist/smart/view/js/view.js.gz +0 -0
- package/dist/smart/view/js/view.min.js +1 -0
- package/dist/smart/view/js/view.min.js.gz +0 -0
- package/dist/smart/view/lang/en.json +61 -0
- package/dist/smart/view/lang/en.json.gz +0 -0
- package/dist/smart/view/lang/ru.json +61 -0
- package/dist/smart/view/lang/ru.json.gz +0 -0
- package/dist/smart/view/probe.json +165 -0
- package/dist/smart/view/probe.json.gz +0 -0
- package/dist/smart/view/smart.manifest.json +1577 -0
- package/dist/smart/view/smart.manifest.json.gz +0 -0
- package/dist/smart/view/static/default/embedded.html +96 -0
- package/dist/smart/view/static/default/embedded.html.gz +0 -0
- package/dist/smart/view/static/default/open-record.html +242 -0
- package/dist/smart/view/static/default/open-record.html.gz +0 -0
- package/dist/smart/view/static/default/reference.html +242 -0
- package/dist/smart/view/static/default/reference.html.gz +0 -0
- package/dist/smart/view/static/sheets.json +282 -0
- package/dist/smart/view/static/sheets.json.gz +0 -0
- package/dist/smart/view-properties/aliases.json +174 -0
- package/dist/smart/view-properties/aliases.json.gz +0 -0
- package/dist/smart/view-properties/component.json +1906 -0
- package/dist/smart/view-properties/component.json.gz +0 -0
- package/dist/smart/view-properties/css/view-properties.css +1158 -0
- package/dist/smart/view-properties/css/view-properties.css.gz +0 -0
- package/dist/smart/view-properties/css/view-properties.min.css +2 -0
- package/dist/smart/view-properties/css/view-properties.min.css.gz +0 -0
- package/dist/smart/view-properties/examples.json +841 -0
- package/dist/smart/view-properties/examples.json.gz +0 -0
- package/dist/smart/view-properties/js/view-properties.js +10551 -0
- package/dist/smart/view-properties/js/view-properties.js.gz +0 -0
- package/dist/smart/view-properties/js/view-properties.min.js +1392 -0
- package/dist/smart/view-properties/js/view-properties.min.js.gz +0 -0
- package/dist/smart/view-properties/lang/en.json +89 -0
- package/dist/smart/view-properties/lang/en.json.gz +0 -0
- package/dist/smart/view-properties/lang/ru.json +89 -0
- package/dist/smart/view-properties/lang/ru.json.gz +0 -0
- package/dist/smart/view-properties/probe.json +188 -0
- package/dist/smart/view-properties/probe.json.gz +0 -0
- package/dist/smart/view-properties/skeleton.html +13 -0
- package/dist/smart/view-properties/skeleton.html.gz +0 -0
- package/dist/smart/view-properties/smart.manifest.json +1593 -0
- package/dist/smart/view-properties/smart.manifest.json.gz +0 -0
- package/dist/smart/view-properties/static/default/full.html +2 -0
- package/dist/smart/view-properties/static/default/full.html.gz +0 -0
- package/dist/smart/view-properties/static/default/panel-closed.html +4 -0
- package/dist/smart/view-properties/static/default/panel-closed.html.gz +0 -0
- package/dist/smart/view-properties/static/default/panel.html +4 -0
- package/dist/smart/view-properties/static/default/panel.html.gz +0 -0
- package/dist/smart/view-properties/static/default/reference.html +2 -0
- package/dist/smart/view-properties/static/default/reference.html.gz +0 -0
- package/dist/smart/view-properties/static/sheets.json +426 -0
- package/dist/smart/view-properties/static/sheets.json.gz +0 -0
- package/dist/smart/view-properties/template/default.css +992 -0
- package/dist/smart/view-properties/template/default.css.gz +0 -0
- package/dist/smart/view-properties/template/default.js +1658 -0
- package/dist/smart/view-properties/template/default.js.gz +0 -0
- package/dist/smart/view-table/aliases.json +448 -0
- package/dist/smart/view-table/aliases.json.gz +0 -0
- package/dist/smart/view-table/component.json +2746 -0
- package/dist/smart/view-table/component.json.gz +0 -0
- package/dist/smart/view-table/css/view-table.css +3658 -0
- package/dist/smart/view-table/css/view-table.css.gz +0 -0
- package/dist/smart/view-table/css/view-table.min.css +2 -0
- package/dist/smart/view-table/css/view-table.min.css.gz +0 -0
- package/dist/smart/view-table/examples.json +499 -0
- package/dist/smart/view-table/examples.json.gz +0 -0
- package/dist/smart/view-table/js/view-table.js +14166 -0
- package/dist/smart/view-table/js/view-table.js.gz +0 -0
- package/dist/smart/view-table/js/view-table.min.js +1440 -0
- package/dist/smart/view-table/js/view-table.min.js.gz +0 -0
- package/dist/smart/view-table/lang/en.json +132 -0
- package/dist/smart/view-table/lang/en.json.gz +0 -0
- package/dist/smart/view-table/lang/ru.json +132 -0
- package/dist/smart/view-table/lang/ru.json.gz +0 -0
- package/dist/smart/view-table/probe.json +275 -0
- package/dist/smart/view-table/probe.json.gz +0 -0
- package/dist/smart/view-table/smart.manifest.json +2531 -0
- package/dist/smart/view-table/smart.manifest.json.gz +0 -0
- package/dist/smart/view-table/static/default/current.html +141 -0
- package/dist/smart/view-table/static/default/current.html.gz +0 -0
- package/dist/smart/view-table/static/default/current.skeleton.html +141 -0
- package/dist/smart/view-table/static/default/current.skeleton.html.gz +0 -0
- package/dist/smart/view-table/static/default/empty.html +149 -0
- package/dist/smart/view-table/static/default/empty.html.gz +0 -0
- package/dist/smart/view-table/static/default/loading.html +180 -0
- package/dist/smart/view-table/static/default/loading.html.gz +0 -0
- package/dist/smart/view-table/static/default/many.html +180 -0
- package/dist/smart/view-table/static/default/many.html.gz +0 -0
- package/dist/smart/view-table/static/default/reference.html +136 -0
- package/dist/smart/view-table/static/default/reference.html.gz +0 -0
- package/dist/smart/view-table/static/default/reference.skeleton.html +136 -0
- package/dist/smart/view-table/static/default/reference.skeleton.html.gz +0 -0
- package/dist/smart/view-table/static/default/typed-cells.html +229 -0
- package/dist/smart/view-table/static/default/typed-cells.html.gz +0 -0
- package/dist/smart/view-table/static/default/typed-cells.skeleton.html +229 -0
- package/dist/smart/view-table/static/default/typed-cells.skeleton.html.gz +0 -0
- package/dist/smart/view-table/static/sheets.json +480 -0
- package/dist/smart/view-table/static/sheets.json.gz +0 -0
- package/dist/smart/view-table/studio.fixture.json +17 -0
- package/dist/smart/view-table/studio.fixture.json.gz +0 -0
- package/dist/smart/view-table/studio.scenario.json +30 -0
- package/dist/smart/view-table/studio.scenario.json.gz +0 -0
- package/dist/smart/view-table/template/default.css +1301 -0
- package/dist/smart/view-table/template/default.css.gz +0 -0
- package/dist/smart/view-table/template/default.js +1215 -0
- package/dist/smart/view-table/template/default.js.gz +0 -0
- package/dist/smart/view-table/template/link-cell-contract.js +48 -0
- package/dist/smart/view-table/template/link-cell-contract.js.gz +0 -0
- package/package.json +29 -4
|
@@ -0,0 +1,1577 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 2,
|
|
3
|
+
"id": "smart.view",
|
|
4
|
+
"version": "1.8.1",
|
|
5
|
+
"title": "Data view",
|
|
6
|
+
"summary": "Host-driven data view that composes toolbar, content and pagination around a separate data port.",
|
|
7
|
+
"kind": "composite",
|
|
8
|
+
"reuse_mode": "whole",
|
|
9
|
+
"lifecycle": "experimental",
|
|
10
|
+
"tags": [
|
|
11
|
+
"admin",
|
|
12
|
+
"collection",
|
|
13
|
+
"data",
|
|
14
|
+
"table"
|
|
15
|
+
],
|
|
16
|
+
"capabilities": [
|
|
17
|
+
"data-view",
|
|
18
|
+
"search",
|
|
19
|
+
"filtering",
|
|
20
|
+
"sorting",
|
|
21
|
+
"saved-views",
|
|
22
|
+
"pagination",
|
|
23
|
+
"responsive"
|
|
24
|
+
],
|
|
25
|
+
"custom_element": "sf-view",
|
|
26
|
+
"templates": [
|
|
27
|
+
"default"
|
|
28
|
+
],
|
|
29
|
+
"exported_parts": [],
|
|
30
|
+
"composition": {
|
|
31
|
+
"uses": [
|
|
32
|
+
"component.icons",
|
|
33
|
+
"smart.button",
|
|
34
|
+
"smart.button-icon",
|
|
35
|
+
"smart.checkbox",
|
|
36
|
+
"smart.dropdown",
|
|
37
|
+
"smart.pagination",
|
|
38
|
+
"smart.toast",
|
|
39
|
+
"smart.view-table"
|
|
40
|
+
],
|
|
41
|
+
"public_parts": [],
|
|
42
|
+
"declarative": {
|
|
43
|
+
"standard": "simai.composition.document.v1",
|
|
44
|
+
"type": "smart.view",
|
|
45
|
+
"mode": "leaf",
|
|
46
|
+
"profiles": [
|
|
47
|
+
"ui-layout"
|
|
48
|
+
],
|
|
49
|
+
"props": [
|
|
50
|
+
"template",
|
|
51
|
+
"chrome",
|
|
52
|
+
"row-cap",
|
|
53
|
+
"expected-columns",
|
|
54
|
+
"port-owner",
|
|
55
|
+
"port-record",
|
|
56
|
+
"port-group",
|
|
57
|
+
"size",
|
|
58
|
+
"column-search-placeholder",
|
|
59
|
+
"column-search-empty-text",
|
|
60
|
+
"column-move-label",
|
|
61
|
+
"filter-apply-text",
|
|
62
|
+
"show-more-text",
|
|
63
|
+
"selected-label",
|
|
64
|
+
"total-label",
|
|
65
|
+
"pages-label",
|
|
66
|
+
"first-label",
|
|
67
|
+
"previous-label",
|
|
68
|
+
"page-label",
|
|
69
|
+
"next-label",
|
|
70
|
+
"last-label",
|
|
71
|
+
"page-field-label",
|
|
72
|
+
"action-choose-label",
|
|
73
|
+
"actions-label",
|
|
74
|
+
"actions-region-label",
|
|
75
|
+
"clear-selection-label",
|
|
76
|
+
"page-size-label",
|
|
77
|
+
"pagination-aria-label",
|
|
78
|
+
"preferences-key",
|
|
79
|
+
"accept-files",
|
|
80
|
+
"collection",
|
|
81
|
+
"current",
|
|
82
|
+
"aria-label"
|
|
83
|
+
],
|
|
84
|
+
"data": {},
|
|
85
|
+
"events": [
|
|
86
|
+
"sf-view-open",
|
|
87
|
+
"sf-view-deleted",
|
|
88
|
+
"sf-view-answer",
|
|
89
|
+
"sf-view-state",
|
|
90
|
+
"sf-view-tree",
|
|
91
|
+
"sf-view-files-drop",
|
|
92
|
+
"sf-pagination-count",
|
|
93
|
+
"sf-view-saved-view-intent",
|
|
94
|
+
"sf-table-action-intent",
|
|
95
|
+
"sf-table-column-settings-change",
|
|
96
|
+
"sf-table-column-settings-reset",
|
|
97
|
+
"sf-table-create-intent",
|
|
98
|
+
"sf-table-query-intent",
|
|
99
|
+
"sf-table-template-delete",
|
|
100
|
+
"sf-table-template-save",
|
|
101
|
+
"sf-table-template-select",
|
|
102
|
+
"sf-host-port-request",
|
|
103
|
+
"sf-view-list-open",
|
|
104
|
+
"sf-table-cell-set",
|
|
105
|
+
"sf-table-rows-reorder"
|
|
106
|
+
],
|
|
107
|
+
"persistence": {
|
|
108
|
+
"settings_key_prop": null,
|
|
109
|
+
"revision_prop": null
|
|
110
|
+
},
|
|
111
|
+
"presentation": {
|
|
112
|
+
"views": [
|
|
113
|
+
"default"
|
|
114
|
+
],
|
|
115
|
+
"presets": [],
|
|
116
|
+
"modifiers": []
|
|
117
|
+
},
|
|
118
|
+
"slots": {
|
|
119
|
+
"toolbar": {
|
|
120
|
+
"accepts": [
|
|
121
|
+
"smart.button",
|
|
122
|
+
"smart.input",
|
|
123
|
+
"smart.dropdown"
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"content": {
|
|
127
|
+
"accepts": [
|
|
128
|
+
"smart.view-table"
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
"pagination": {
|
|
132
|
+
"accepts": [
|
|
133
|
+
"smart.pagination"
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"renderer": {
|
|
138
|
+
"kind": "custom-element",
|
|
139
|
+
"name": "sf-view"
|
|
140
|
+
},
|
|
141
|
+
"assets": [
|
|
142
|
+
"smart/view"
|
|
143
|
+
],
|
|
144
|
+
"host_port": {
|
|
145
|
+
"port": "simai.dataview-port",
|
|
146
|
+
"version": "1.13.0",
|
|
147
|
+
"path": "src/core/contracts/ports/simai.dataview-port/1.13.0/port.json",
|
|
148
|
+
"sha256": "6b6fa1e500b531c2db5cf296c7f3cf09cff991c9d86551f3a6e712ef0e3aad5c",
|
|
149
|
+
"supported_versions": [
|
|
150
|
+
"1.0.0",
|
|
151
|
+
"1.1.0",
|
|
152
|
+
"1.2.0",
|
|
153
|
+
"1.3.0",
|
|
154
|
+
"1.4.0",
|
|
155
|
+
"1.5.0",
|
|
156
|
+
"1.6.0",
|
|
157
|
+
"1.7.0",
|
|
158
|
+
"1.8.0",
|
|
159
|
+
"1.9.0",
|
|
160
|
+
"1.10.0",
|
|
161
|
+
"1.11.0",
|
|
162
|
+
"1.12.0",
|
|
163
|
+
"1.13.0"
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"inputs": {
|
|
169
|
+
"type": "object",
|
|
170
|
+
"properties": {
|
|
171
|
+
"template": {
|
|
172
|
+
"type": "string",
|
|
173
|
+
"default": "default",
|
|
174
|
+
"description": "Template variant name for SfBaseElement external templates."
|
|
175
|
+
},
|
|
176
|
+
"root-class": {
|
|
177
|
+
"type": "string",
|
|
178
|
+
"default": "",
|
|
179
|
+
"description": "Classes added to the root element the component draws."
|
|
180
|
+
},
|
|
181
|
+
"root-style": {
|
|
182
|
+
"type": "string",
|
|
183
|
+
"default": "",
|
|
184
|
+
"description": "Inline style declarations set on the root element the component draws, custom properties included."
|
|
185
|
+
},
|
|
186
|
+
"chrome": {
|
|
187
|
+
"type": "string",
|
|
188
|
+
"default": "toolbar pagination select settings",
|
|
189
|
+
"description": "Which chrome this list renders, as a space-separated list. `toolbar` and `pagination` are this element own parts; `select` and `settings` are the table two chrome columns, named here because they are furniture of the same kind -- a checkbox column exists to feed a bulk band and a gear column exists to reach column settings, and an embedded list has neither. Empty renders none of them, for a list inside something that already carries a heading. Named explicitly rather than inferred from the toolbar, so a consumer who wants a selection in an embedded list can ask for it alone. `status` is not in the list and cannot be switched off: a list that could not say a load failed would look empty when it is broken."
|
|
190
|
+
},
|
|
191
|
+
"row-cap": {
|
|
192
|
+
"type": "integer",
|
|
193
|
+
"default": 0,
|
|
194
|
+
"description": "How many rows an embedded list draws at most, with a show-all action under it when it is hiding some. Zero is no cap, which is what a page list is. Named apart from `page-size`, which is the host paging, because a cap is what this element shows of a page it already has.",
|
|
195
|
+
"minimum": 0
|
|
196
|
+
},
|
|
197
|
+
"expected-columns": {
|
|
198
|
+
"type": "integer",
|
|
199
|
+
"default": 4,
|
|
200
|
+
"description": "How many columns the skeleton draws before the host first answers: the skeleton's shape, never a limit -- the answer brings its own columns. The page or server that renders a collection knows them; with the right number the list does not move when the data arrives.",
|
|
201
|
+
"minimum": 1
|
|
202
|
+
},
|
|
203
|
+
"port-owner": {
|
|
204
|
+
"type": "string",
|
|
205
|
+
"default": "",
|
|
206
|
+
"description": "Which composite this list is embedded in, sent with the host-port request so a host knows which exchange it is answering. Names the composite rather than the element, so a list embedded somewhere else later needs no new value."
|
|
207
|
+
},
|
|
208
|
+
"port-record": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"default": "",
|
|
211
|
+
"description": "The record the embedding composite is showing, sent with the host-port request."
|
|
212
|
+
},
|
|
213
|
+
"port-group": {
|
|
214
|
+
"type": "string",
|
|
215
|
+
"default": "",
|
|
216
|
+
"description": "The group inside that composite this list stands in, sent with the host-port request."
|
|
217
|
+
},
|
|
218
|
+
"size": {
|
|
219
|
+
"type": "string",
|
|
220
|
+
"default": "1",
|
|
221
|
+
"description": "The step of the size ladder the view's controls take, handed to its table, its page row and its selection band: 1, or the dense 1/2 of an admin.",
|
|
222
|
+
"enum": [
|
|
223
|
+
"1/2",
|
|
224
|
+
"1"
|
|
225
|
+
]
|
|
226
|
+
},
|
|
227
|
+
"column-search-placeholder": {
|
|
228
|
+
"type": "string",
|
|
229
|
+
"default": "",
|
|
230
|
+
"description": "Passed on as column-search-placeholder to the table the view draws; absent, the table's own word for the page language applies."
|
|
231
|
+
},
|
|
232
|
+
"column-search-empty-text": {
|
|
233
|
+
"type": "string",
|
|
234
|
+
"default": "",
|
|
235
|
+
"description": "Passed on as column-search-empty-text to the table the view draws; absent, the table's own word for the page language applies."
|
|
236
|
+
},
|
|
237
|
+
"column-move-label": {
|
|
238
|
+
"type": "string",
|
|
239
|
+
"default": "",
|
|
240
|
+
"description": "Passed on as column-move-label to the table the view draws; absent, the table's own word for the page language applies."
|
|
241
|
+
},
|
|
242
|
+
"filter-apply-text": {
|
|
243
|
+
"type": "string",
|
|
244
|
+
"default": "",
|
|
245
|
+
"description": "Passed on as filter-apply-text to the table the view draws; absent, the table's own word for the page language applies."
|
|
246
|
+
},
|
|
247
|
+
"show-more-text": {
|
|
248
|
+
"type": "string",
|
|
249
|
+
"default": "",
|
|
250
|
+
"description": "Passed on as show-more-text to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
251
|
+
},
|
|
252
|
+
"selected-label": {
|
|
253
|
+
"type": "string",
|
|
254
|
+
"default": "",
|
|
255
|
+
"description": "Passed on as selected-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
256
|
+
},
|
|
257
|
+
"total-label": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"default": "",
|
|
260
|
+
"description": "Passed on as total-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
261
|
+
},
|
|
262
|
+
"pages-label": {
|
|
263
|
+
"type": "string",
|
|
264
|
+
"default": "",
|
|
265
|
+
"description": "Passed on as pages-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
266
|
+
},
|
|
267
|
+
"first-label": {
|
|
268
|
+
"type": "string",
|
|
269
|
+
"default": "",
|
|
270
|
+
"description": "Passed on as first-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
271
|
+
},
|
|
272
|
+
"previous-label": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"default": "",
|
|
275
|
+
"description": "Passed on as previous-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
276
|
+
},
|
|
277
|
+
"page-label": {
|
|
278
|
+
"type": "string",
|
|
279
|
+
"default": "",
|
|
280
|
+
"description": "Passed on as page-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
281
|
+
},
|
|
282
|
+
"next-label": {
|
|
283
|
+
"type": "string",
|
|
284
|
+
"default": "",
|
|
285
|
+
"description": "Passed on as next-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
286
|
+
},
|
|
287
|
+
"last-label": {
|
|
288
|
+
"type": "string",
|
|
289
|
+
"default": "",
|
|
290
|
+
"description": "Passed on as last-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
291
|
+
},
|
|
292
|
+
"page-field-label": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"default": "",
|
|
295
|
+
"description": "Passed on as page-field-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
296
|
+
},
|
|
297
|
+
"action-choose-label": {
|
|
298
|
+
"type": "string",
|
|
299
|
+
"default": "",
|
|
300
|
+
"description": "Passed on as action-choose-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
301
|
+
},
|
|
302
|
+
"actions-label": {
|
|
303
|
+
"type": "string",
|
|
304
|
+
"default": "",
|
|
305
|
+
"description": "Passed on as actions-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
306
|
+
},
|
|
307
|
+
"actions-region-label": {
|
|
308
|
+
"type": "string",
|
|
309
|
+
"default": "",
|
|
310
|
+
"description": "Passed on as actions-region-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
311
|
+
},
|
|
312
|
+
"clear-selection-label": {
|
|
313
|
+
"type": "string",
|
|
314
|
+
"default": "",
|
|
315
|
+
"description": "Passed on as clear-selection-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
316
|
+
},
|
|
317
|
+
"page-size-label": {
|
|
318
|
+
"type": "string",
|
|
319
|
+
"default": "",
|
|
320
|
+
"description": "Passed on as page-size-label to the pagination the view draws; absent, the pagination's own word for the page language applies."
|
|
321
|
+
},
|
|
322
|
+
"pagination-aria-label": {
|
|
323
|
+
"type": "string",
|
|
324
|
+
"default": "",
|
|
325
|
+
"description": "Passed on as aria-label to the pagination the view draws (the view's own aria-label names the view)."
|
|
326
|
+
},
|
|
327
|
+
"preferences-key": {
|
|
328
|
+
"type": "string",
|
|
329
|
+
"default": "",
|
|
330
|
+
"description": "The key the person's view of this list is kept under (SF.Preferences, sf-table/<key>): the table's arrangement, the sort and the page size, applied before the first paint and the first query. Usually the collection."
|
|
331
|
+
},
|
|
332
|
+
"accept-files": {
|
|
333
|
+
"type": "boolean",
|
|
334
|
+
"default": false,
|
|
335
|
+
"description": "Files dropped from the computer on the view are the host's to upload: a drop zone shows while they are over it, and sf-data-view-files-drop {files} says they were dropped."
|
|
336
|
+
},
|
|
337
|
+
"collection": {
|
|
338
|
+
"type": "string",
|
|
339
|
+
"default": "",
|
|
340
|
+
"description": "The host's collection id; the view's preference key falls back to it (component.json settings.collection)."
|
|
341
|
+
},
|
|
342
|
+
"current": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"default": "",
|
|
345
|
+
"description": "The id of the record the page has open: its row carries aria-current. Writing it sends nothing (component.json settings.current)."
|
|
346
|
+
},
|
|
347
|
+
"aria-label": {
|
|
348
|
+
"type": "string",
|
|
349
|
+
"default": "Представление данных"
|
|
350
|
+
},
|
|
351
|
+
"bulk-actions": {
|
|
352
|
+
"type": "array"
|
|
353
|
+
},
|
|
354
|
+
"first-answer": {
|
|
355
|
+
"type": "object"
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
"additionalProperties": false
|
|
359
|
+
},
|
|
360
|
+
"item_contract": {
|
|
361
|
+
"page": "Positive one-based page number bounded by total and page-size.",
|
|
362
|
+
"ellipsis": "Non-interactive indicator for omitted pages."
|
|
363
|
+
},
|
|
364
|
+
"contracts": {
|
|
365
|
+
"navigation": {
|
|
366
|
+
"const": "The visible root is a named nav; page actions are native buttons because the component emits state events instead of owning URLs."
|
|
367
|
+
},
|
|
368
|
+
"current": {
|
|
369
|
+
"const": "Exactly one rendered page exposes aria-current=page when total is greater than zero."
|
|
370
|
+
},
|
|
371
|
+
"empty": {
|
|
372
|
+
"const": "A zero-sized collection renders no page controls and emits no page-change."
|
|
373
|
+
},
|
|
374
|
+
"responsive": {
|
|
375
|
+
"const": "A long desktop range keeps edge pages and static ellipses; a narrow range keeps the current page, adjacent pages and directional actions on one line."
|
|
376
|
+
},
|
|
377
|
+
"composition": {
|
|
378
|
+
"const": "Show-more, page-size and batch-action sections remain compatible optional compositions; data loading and host actions stay outside the component."
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
"methods": {
|
|
382
|
+
"refresh": {
|
|
383
|
+
"summary": "Request current query with a new sequence.",
|
|
384
|
+
"arguments": [
|
|
385
|
+
{
|
|
386
|
+
"name": "reason",
|
|
387
|
+
"schema": {
|
|
388
|
+
"type": "string"
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
],
|
|
392
|
+
"returns": {
|
|
393
|
+
"type": "object",
|
|
394
|
+
"description": "A promise of the host answer: {answer: applied|conflict|refused|unavailable, …}, or of null when a newer request superseded it."
|
|
395
|
+
}
|
|
396
|
+
},
|
|
397
|
+
"changeQuery": {
|
|
398
|
+
"summary": "Change search, filters, sort or window.",
|
|
399
|
+
"arguments": [
|
|
400
|
+
{
|
|
401
|
+
"name": "patch",
|
|
402
|
+
"schema": {
|
|
403
|
+
"type": "object"
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"name": "reason",
|
|
408
|
+
"schema": {
|
|
409
|
+
"type": "string"
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
],
|
|
413
|
+
"returns": {
|
|
414
|
+
"type": "object",
|
|
415
|
+
"description": "A promise of the host answer: {answer: applied|conflict|refused|unavailable, …}, or of null when a newer request superseded it."
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
"openView": {
|
|
419
|
+
"summary": "Open a saved view.",
|
|
420
|
+
"arguments": [
|
|
421
|
+
{
|
|
422
|
+
"name": "key",
|
|
423
|
+
"schema": {
|
|
424
|
+
"type": "string"
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
],
|
|
428
|
+
"returns": {
|
|
429
|
+
"type": "object",
|
|
430
|
+
"description": "A promise of the host answer: {answer: applied|conflict|refused|unavailable, …}, or of null when a newer request superseded it."
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
"saveView": {
|
|
434
|
+
"summary": "Save a personal or shared view: view.save, or view.save_shared on a port of 1.1.0 or later. Throws TypeError without key and label, or for another level.",
|
|
435
|
+
"arguments": [
|
|
436
|
+
{
|
|
437
|
+
"name": "view",
|
|
438
|
+
"schema": {
|
|
439
|
+
"type": "object",
|
|
440
|
+
"description": "{key, label, level?: personal|shared, revision?, roles?, layout?, settings?}. layout defaults to the current columns, settings to the current column settings; the current query is always saved."
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
],
|
|
444
|
+
"returns": {
|
|
445
|
+
"type": "object",
|
|
446
|
+
"description": "A promise of the host answer: {answer: applied|conflict|refused|unavailable, …}, or of null when a newer request superseded it. A shared level on a port older than 1.1.0 resolves to {answer: 'unavailable', reason: 'saved-view-levels-require-port-1.1.0'}."
|
|
447
|
+
}
|
|
448
|
+
},
|
|
449
|
+
"deleteView": {
|
|
450
|
+
"summary": "Delete a saved view.",
|
|
451
|
+
"arguments": [
|
|
452
|
+
{
|
|
453
|
+
"name": "key",
|
|
454
|
+
"schema": {
|
|
455
|
+
"type": "string"
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
],
|
|
459
|
+
"returns": {
|
|
460
|
+
"type": "object",
|
|
461
|
+
"description": "A promise of the host answer: {answer: applied|conflict|refused|unavailable, …}, or of null when a newer request superseded it."
|
|
462
|
+
}
|
|
463
|
+
},
|
|
464
|
+
"applyUnderFilter": {
|
|
465
|
+
"summary": "Raise a confirmed filter-wide action (bulk.apply_under_filter) over the current filters. Throws TypeError when confirmedTotal is not the current total.",
|
|
466
|
+
"arguments": [
|
|
467
|
+
{
|
|
468
|
+
"name": "actionId",
|
|
469
|
+
"schema": {
|
|
470
|
+
"type": "string"
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"name": "confirmedTotal",
|
|
475
|
+
"schema": {
|
|
476
|
+
"type": "number"
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
],
|
|
480
|
+
"returns": {
|
|
481
|
+
"type": "object",
|
|
482
|
+
"description": "A promise of the host answer: {answer: applied|conflict|refused|unavailable, …}, or of null when a newer request superseded it."
|
|
483
|
+
}
|
|
484
|
+
},
|
|
485
|
+
"resetColumnSettings": {
|
|
486
|
+
"summary": "Reset the person's column layout: an empty personal layer written against its revision, which is the port's reset (a write, never a deletion). The host supplies the defaults.",
|
|
487
|
+
"arguments": [],
|
|
488
|
+
"returns": {
|
|
489
|
+
"type": "object",
|
|
490
|
+
"description": "A promise of the port answer, as saveColumnSettings returns it, including {answer: 'unavailable', reason: 'no-base-revision'}."
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
"clearSelection": {
|
|
494
|
+
"summary": "The action clear-selection.",
|
|
495
|
+
"arguments": [],
|
|
496
|
+
"returns": {
|
|
497
|
+
"type": "object"
|
|
498
|
+
}
|
|
499
|
+
},
|
|
500
|
+
"notify": {
|
|
501
|
+
"summary": "Show one notice over the card, or clear it with an empty text. A refusal, a conflict and an unreachable host raise it by themselves.",
|
|
502
|
+
"arguments": [
|
|
503
|
+
{
|
|
504
|
+
"name": "text",
|
|
505
|
+
"schema": {
|
|
506
|
+
"type": "string"
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"name": "options",
|
|
511
|
+
"schema": {
|
|
512
|
+
"type": "object",
|
|
513
|
+
"description": "{kind?: 'error'|'warning', code?: string}. kind defaults to error; code is the reason the notice carries."
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
],
|
|
517
|
+
"returns": {
|
|
518
|
+
"type": "object",
|
|
519
|
+
"description": "The element, for chaining."
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
"applyProjection": {
|
|
523
|
+
"summary": "Render a host answer in all three slots.",
|
|
524
|
+
"arguments": [
|
|
525
|
+
{
|
|
526
|
+
"name": "data",
|
|
527
|
+
"type": "object",
|
|
528
|
+
"required": true
|
|
529
|
+
}
|
|
530
|
+
],
|
|
531
|
+
"returns": {
|
|
532
|
+
"type": "null"
|
|
533
|
+
}
|
|
534
|
+
},
|
|
535
|
+
"saveColumnSettings": {
|
|
536
|
+
"summary": "Write a column-settings layer, personal or shared, against its revision: settings.save_personal or settings.save_shared. The base revision is the one given, else the layer's, else the port target's. After a conflict the view takes the current_revision (and the layer's columns) the answer carries beside answer, as simai.dataview-port 1.12.0 states; it still reads data.current_revision and data.column_settings from a host that followed 1.10.0's words, and re-reads the list when the conflict names no revision.",
|
|
537
|
+
"arguments": [
|
|
538
|
+
{
|
|
539
|
+
"name": "columnSettings",
|
|
540
|
+
"type": "object",
|
|
541
|
+
"required": true,
|
|
542
|
+
"description": "The column-preference delta to write, keyed by column key."
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
"name": "options",
|
|
546
|
+
"type": "object",
|
|
547
|
+
"required": false,
|
|
548
|
+
"description": "{shared?: boolean, base_revision?: string|number}. shared writes the shared layer (default false); base_revision overrides the revision the view holds.",
|
|
549
|
+
"properties": {
|
|
550
|
+
"shared": {
|
|
551
|
+
"type": "boolean",
|
|
552
|
+
"default": false
|
|
553
|
+
},
|
|
554
|
+
"base_revision": {
|
|
555
|
+
"type": [
|
|
556
|
+
"string",
|
|
557
|
+
"number"
|
|
558
|
+
]
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
],
|
|
563
|
+
"returns": {
|
|
564
|
+
"type": "object",
|
|
565
|
+
"description": "A promise of the port answer {answer: applied|conflict|refused|unavailable, …}, or of null when superseded. Resolves to {answer: 'unavailable', reason: 'no-base-revision'} without asking the host when no revision is known."
|
|
566
|
+
}
|
|
567
|
+
},
|
|
568
|
+
"setHostPort": {
|
|
569
|
+
"summary": "Bind an exact host adapter.",
|
|
570
|
+
"arguments": [
|
|
571
|
+
{
|
|
572
|
+
"name": "host",
|
|
573
|
+
"type": "object",
|
|
574
|
+
"required": true
|
|
575
|
+
}
|
|
576
|
+
],
|
|
577
|
+
"returns": {
|
|
578
|
+
"type": "object",
|
|
579
|
+
"description": "The element, for chaining."
|
|
580
|
+
}
|
|
581
|
+
},
|
|
582
|
+
"updateRecord": {
|
|
583
|
+
"summary": "Write one record in place: that row is rewritten and nothing is asked of the host. A write answered with records alone takes this path by itself.",
|
|
584
|
+
"arguments": [
|
|
585
|
+
{
|
|
586
|
+
"name": "id",
|
|
587
|
+
"type": [
|
|
588
|
+
"string",
|
|
589
|
+
"integer"
|
|
590
|
+
],
|
|
591
|
+
"required": true
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"name": "patch",
|
|
595
|
+
"type": "object",
|
|
596
|
+
"required": false
|
|
597
|
+
}
|
|
598
|
+
],
|
|
599
|
+
"returns": {
|
|
600
|
+
"type": "boolean",
|
|
601
|
+
"description": "Whether a shown record was rewritten."
|
|
602
|
+
}
|
|
603
|
+
},
|
|
604
|
+
"expandNode": {
|
|
605
|
+
"summary": "Open a node the host said has children: from what the view holds, or by asking the host with tree.expand.",
|
|
606
|
+
"arguments": [
|
|
607
|
+
{
|
|
608
|
+
"name": "id",
|
|
609
|
+
"type": [
|
|
610
|
+
"string",
|
|
611
|
+
"integer"
|
|
612
|
+
],
|
|
613
|
+
"required": true
|
|
614
|
+
}
|
|
615
|
+
],
|
|
616
|
+
"returns": {
|
|
617
|
+
"type": "object",
|
|
618
|
+
"description": "A promise of the host answer, or of null when superseded; null at once when the node is unknown, has no children, or its children are already held."
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
"collapseNode": {
|
|
622
|
+
"summary": "Close an open node. The view's own business; the host is not asked.",
|
|
623
|
+
"arguments": [
|
|
624
|
+
{
|
|
625
|
+
"name": "id",
|
|
626
|
+
"type": [
|
|
627
|
+
"string",
|
|
628
|
+
"integer"
|
|
629
|
+
],
|
|
630
|
+
"required": true
|
|
631
|
+
}
|
|
632
|
+
],
|
|
633
|
+
"returns": {
|
|
634
|
+
"type": "null"
|
|
635
|
+
}
|
|
636
|
+
},
|
|
637
|
+
"loadMoreNodes": {
|
|
638
|
+
"summary": "The next page of one level: the roots through the query, a node's children through tree.expand with its cursor.",
|
|
639
|
+
"arguments": [
|
|
640
|
+
{
|
|
641
|
+
"name": "parent",
|
|
642
|
+
"type": [
|
|
643
|
+
"string",
|
|
644
|
+
"integer",
|
|
645
|
+
"null"
|
|
646
|
+
],
|
|
647
|
+
"required": true
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"name": "cursor",
|
|
651
|
+
"type": [
|
|
652
|
+
"string",
|
|
653
|
+
"null"
|
|
654
|
+
],
|
|
655
|
+
"required": false
|
|
656
|
+
}
|
|
657
|
+
],
|
|
658
|
+
"returns": {
|
|
659
|
+
"type": "object",
|
|
660
|
+
"description": "A promise of the host answer, or of null when superseded."
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
"openMoveDialog": {
|
|
664
|
+
"summary": "Ask the host where a record may go (node.targets), let the person choose among exactly those places, and move it there (node.move).",
|
|
665
|
+
"arguments": [
|
|
666
|
+
{
|
|
667
|
+
"name": "record",
|
|
668
|
+
"type": "object",
|
|
669
|
+
"required": true
|
|
670
|
+
}
|
|
671
|
+
],
|
|
672
|
+
"returns": {
|
|
673
|
+
"type": "object",
|
|
674
|
+
"description": "A promise of the host answer, or of null when superseded."
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
},
|
|
678
|
+
"events": {
|
|
679
|
+
"sf-view-open": {
|
|
680
|
+
"summary": "A row's view action asks to open its record, vocabulary §5 open {id}: a cancelable request; the host's record.open follows unless a listener refused it.",
|
|
681
|
+
"payload": {
|
|
682
|
+
"type": "object",
|
|
683
|
+
"required": [
|
|
684
|
+
"id"
|
|
685
|
+
],
|
|
686
|
+
"properties": {
|
|
687
|
+
"id": {}
|
|
688
|
+
},
|
|
689
|
+
"additionalProperties": true
|
|
690
|
+
},
|
|
691
|
+
"canonical": true
|
|
692
|
+
},
|
|
693
|
+
"sf-view-deleted": {
|
|
694
|
+
"summary": "The fact after an applied delete, vocabulary §4: {ids}.",
|
|
695
|
+
"payload": {
|
|
696
|
+
"type": "object",
|
|
697
|
+
"required": [
|
|
698
|
+
"ids"
|
|
699
|
+
],
|
|
700
|
+
"properties": {
|
|
701
|
+
"ids": {
|
|
702
|
+
"type": "array"
|
|
703
|
+
}
|
|
704
|
+
},
|
|
705
|
+
"additionalProperties": true
|
|
706
|
+
},
|
|
707
|
+
"canonical": true
|
|
708
|
+
},
|
|
709
|
+
"sf-view-answer": {
|
|
710
|
+
"summary": "Fires after every port answer the view acts on, including the ones it makes itself (port not connected, capability not provided, action not allowed), so a page can watch outcomes without wrapping the port. The host's answer object is spread in full; any further fields it carries pass through.",
|
|
711
|
+
"payload": {
|
|
712
|
+
"type": "object",
|
|
713
|
+
"required": [
|
|
714
|
+
"intent",
|
|
715
|
+
"answer",
|
|
716
|
+
"instance_id"
|
|
717
|
+
],
|
|
718
|
+
"properties": {
|
|
719
|
+
"intent": {
|
|
720
|
+
"type": "string",
|
|
721
|
+
"description": "The port intent answered, e.g. query.change, view.save, settings.save_personal, record.mutate."
|
|
722
|
+
},
|
|
723
|
+
"answer": {
|
|
724
|
+
"enum": [
|
|
725
|
+
"applied",
|
|
726
|
+
"conflict",
|
|
727
|
+
"refused",
|
|
728
|
+
"unavailable"
|
|
729
|
+
],
|
|
730
|
+
"description": "The port answer.",
|
|
731
|
+
"type": "string"
|
|
732
|
+
},
|
|
733
|
+
"reason": {
|
|
734
|
+
"type": "string",
|
|
735
|
+
"description": "Why, when the answer is not applied: the host's reason, or the view's own (port-not-connected, capability-not-provided, action-not-allowed, no-base-revision). A refused query.change is «no access» (rows, toolbar, selection and create withdrawn) only for an access reason: none, forbidden, access_denied, scope_denied, or one ending in _access_denied or _scope_denied; any other reason (query_invalid) is a query error that keeps the toolbar and the query."
|
|
736
|
+
},
|
|
737
|
+
"message": {
|
|
738
|
+
"type": "string",
|
|
739
|
+
"description": "The host's own sentence for a person, as the port answer carries it. On a refused or unavailable query.change a non-empty message is what the view shows: the title of its empty or error state and the line its live region announces, drawn as text, never markup; an unavailable list with a message raises no error notice. Without one the view's own words, as before."
|
|
740
|
+
},
|
|
741
|
+
"data": {
|
|
742
|
+
"type": "object",
|
|
743
|
+
"description": "The host's data, copied as it answered."
|
|
744
|
+
},
|
|
745
|
+
"sequence": {
|
|
746
|
+
"type": "integer",
|
|
747
|
+
"description": "The query sequence the host echoed, when it did."
|
|
748
|
+
},
|
|
749
|
+
"effects": {
|
|
750
|
+
"type": "array",
|
|
751
|
+
"description": "Effects the host reported for the rest of the page."
|
|
752
|
+
},
|
|
753
|
+
"instance_id": {
|
|
754
|
+
"type": "string",
|
|
755
|
+
"description": "The view's instance id, sf-data-view-<n>."
|
|
756
|
+
}
|
|
757
|
+
},
|
|
758
|
+
"additionalProperties": true
|
|
759
|
+
},
|
|
760
|
+
"canonical": true
|
|
761
|
+
},
|
|
762
|
+
"sf-view-state": {
|
|
763
|
+
"summary": "Fires whenever the view's data state changes (loading, populated, empty, error), with the line it announces in its live region; for a page that mirrors the state elsewhere.",
|
|
764
|
+
"payload": {
|
|
765
|
+
"type": "object",
|
|
766
|
+
"required": [
|
|
767
|
+
"state",
|
|
768
|
+
"message",
|
|
769
|
+
"instance_id"
|
|
770
|
+
],
|
|
771
|
+
"properties": {
|
|
772
|
+
"state": {
|
|
773
|
+
"enum": [
|
|
774
|
+
"loading",
|
|
775
|
+
"populated",
|
|
776
|
+
"empty",
|
|
777
|
+
"error",
|
|
778
|
+
"no-access"
|
|
779
|
+
],
|
|
780
|
+
"description": "The new state, also written to data-state.",
|
|
781
|
+
"type": "string"
|
|
782
|
+
},
|
|
783
|
+
"message": {
|
|
784
|
+
"type": "string",
|
|
785
|
+
"description": "The announced status text; empty when there is none."
|
|
786
|
+
},
|
|
787
|
+
"instance_id": {
|
|
788
|
+
"type": "string",
|
|
789
|
+
"description": "The view's instance id, sf-data-view-<n>."
|
|
790
|
+
}
|
|
791
|
+
},
|
|
792
|
+
"additionalProperties": true
|
|
793
|
+
},
|
|
794
|
+
"canonical": true
|
|
795
|
+
},
|
|
796
|
+
"sf-view-tree": {
|
|
797
|
+
"summary": "The tree's port intents announced, {intent, payload}; the old sf-table-tree-intent follows once until 2026-12-01 (aliases.json).",
|
|
798
|
+
"payload": {
|
|
799
|
+
"type": "object",
|
|
800
|
+
"required": [
|
|
801
|
+
"intent"
|
|
802
|
+
],
|
|
803
|
+
"properties": {
|
|
804
|
+
"intent": {
|
|
805
|
+
"type": "string"
|
|
806
|
+
},
|
|
807
|
+
"payload": {
|
|
808
|
+
"type": "object"
|
|
809
|
+
}
|
|
810
|
+
},
|
|
811
|
+
"additionalProperties": true
|
|
812
|
+
},
|
|
813
|
+
"canonical": true
|
|
814
|
+
},
|
|
815
|
+
"sf-view-files-drop": {
|
|
816
|
+
"summary": "Files from the computer were dropped on a view that has accept-files. The view uploads nothing and the files do not go through the port; the host uploads them.",
|
|
817
|
+
"payload": {
|
|
818
|
+
"type": "object",
|
|
819
|
+
"required": [
|
|
820
|
+
"files"
|
|
821
|
+
],
|
|
822
|
+
"properties": {
|
|
823
|
+
"files": {
|
|
824
|
+
"type": "array",
|
|
825
|
+
"description": "The dropped File objects, at least one.",
|
|
826
|
+
"items": {
|
|
827
|
+
"type": "object"
|
|
828
|
+
},
|
|
829
|
+
"minItems": 1
|
|
830
|
+
}
|
|
831
|
+
},
|
|
832
|
+
"additionalProperties": true
|
|
833
|
+
},
|
|
834
|
+
"canonical": true
|
|
835
|
+
},
|
|
836
|
+
"sf-pagination-count": {
|
|
837
|
+
"summary": "Raised by the view's pagination when the person asks for the total, the last page or an action under the filter while the count is unknown. The view answers it with the query.count intent; a host does not need to listen.",
|
|
838
|
+
"payload": {
|
|
839
|
+
"type": "object",
|
|
840
|
+
"required": [
|
|
841
|
+
"component",
|
|
842
|
+
"tagName",
|
|
843
|
+
"template",
|
|
844
|
+
"reason",
|
|
845
|
+
"current",
|
|
846
|
+
"pageSize"
|
|
847
|
+
],
|
|
848
|
+
"properties": {
|
|
849
|
+
"component": {
|
|
850
|
+
"type": "object",
|
|
851
|
+
"description": "The pagination element that asked."
|
|
852
|
+
},
|
|
853
|
+
"tagName": {
|
|
854
|
+
"type": "string",
|
|
855
|
+
"description": "Its tag name."
|
|
856
|
+
},
|
|
857
|
+
"template": {
|
|
858
|
+
"type": "string",
|
|
859
|
+
"description": "Its template name."
|
|
860
|
+
},
|
|
861
|
+
"reason": {
|
|
862
|
+
"enum": [
|
|
863
|
+
"total",
|
|
864
|
+
"last-page",
|
|
865
|
+
"action-for-all"
|
|
866
|
+
],
|
|
867
|
+
"description": "What the number is for.",
|
|
868
|
+
"type": "string"
|
|
869
|
+
},
|
|
870
|
+
"current": {
|
|
871
|
+
"type": "integer",
|
|
872
|
+
"description": "The current page."
|
|
873
|
+
},
|
|
874
|
+
"pageSize": {
|
|
875
|
+
"type": "integer",
|
|
876
|
+
"description": "The page size."
|
|
877
|
+
}
|
|
878
|
+
},
|
|
879
|
+
"additionalProperties": true
|
|
880
|
+
}
|
|
881
|
+
},
|
|
882
|
+
"sf-view-saved-view-intent": {
|
|
883
|
+
"summary": "An event a page raises on the view to save a shared saved view (port 1.1.0 or later): the view raises view.save_shared with the detail's key and label.",
|
|
884
|
+
"payload": {
|
|
885
|
+
"type": "object",
|
|
886
|
+
"required": [
|
|
887
|
+
"key",
|
|
888
|
+
"label"
|
|
889
|
+
],
|
|
890
|
+
"properties": {
|
|
891
|
+
"key": {
|
|
892
|
+
"type": "string",
|
|
893
|
+
"description": "The saved view's key."
|
|
894
|
+
},
|
|
895
|
+
"label": {
|
|
896
|
+
"type": "string",
|
|
897
|
+
"description": "Its name as shown."
|
|
898
|
+
},
|
|
899
|
+
"revision": {
|
|
900
|
+
"type": [
|
|
901
|
+
"string",
|
|
902
|
+
"integer"
|
|
903
|
+
],
|
|
904
|
+
"description": "The revision it is written against, when it exists."
|
|
905
|
+
},
|
|
906
|
+
"roles": {
|
|
907
|
+
"type": "object",
|
|
908
|
+
"description": "Who may open it, as the host names roles."
|
|
909
|
+
}
|
|
910
|
+
},
|
|
911
|
+
"additionalProperties": true
|
|
912
|
+
},
|
|
913
|
+
"canonical": true
|
|
914
|
+
},
|
|
915
|
+
"sf-table-action-intent": {
|
|
916
|
+
"summary": "A table event the view listens to: a row or bulk action chosen in its table. The view checks the row allows it and raises record.open (view), record.mutate (one row) or bulk.apply_selected, with the records' revisions; move and create on a tree open the move dialog or view.create_record.",
|
|
917
|
+
"payload": {
|
|
918
|
+
"type": "object",
|
|
919
|
+
"required": [
|
|
920
|
+
"action_id",
|
|
921
|
+
"record_ids"
|
|
922
|
+
],
|
|
923
|
+
"properties": {
|
|
924
|
+
"action_id": {
|
|
925
|
+
"type": "string",
|
|
926
|
+
"description": "The opaque id of the row or bulk action chosen.",
|
|
927
|
+
"minLength": 1
|
|
928
|
+
},
|
|
929
|
+
"record_ids": {
|
|
930
|
+
"type": "array",
|
|
931
|
+
"description": "The records it applies to: the row's own id, or the selected ids for a bulk action.",
|
|
932
|
+
"items": {
|
|
933
|
+
"type": [
|
|
934
|
+
"string",
|
|
935
|
+
"integer"
|
|
936
|
+
]
|
|
937
|
+
},
|
|
938
|
+
"minItems": 1
|
|
939
|
+
}
|
|
940
|
+
},
|
|
941
|
+
"additionalProperties": true
|
|
942
|
+
}
|
|
943
|
+
},
|
|
944
|
+
"sf-table-column-settings-change": {
|
|
945
|
+
"summary": "A table event the view listens to: the person resized, moved, pinned or hid a column. The view writes it to the person's layer (settings.save_personal): the table offers no choice of layer, and the table it draws sends no target. The shared layer is written from page code with saveColumnSettings(settings, {shared: true}).",
|
|
946
|
+
"payload": {
|
|
947
|
+
"type": "object",
|
|
948
|
+
"required": [
|
|
949
|
+
"reason",
|
|
950
|
+
"columnSettings",
|
|
951
|
+
"tableSettingsKey"
|
|
952
|
+
],
|
|
953
|
+
"properties": {
|
|
954
|
+
"reason": {
|
|
955
|
+
"type": "string",
|
|
956
|
+
"description": "What changed: column-resize, column-resize-reset, column-drag, column-order, column-pin, column-visibility, column-settings-restore, column-settings."
|
|
957
|
+
},
|
|
958
|
+
"columnSettings": {
|
|
959
|
+
"type": "object",
|
|
960
|
+
"description": "The whole column-preference delta after the change, keyed by column key (width, order, hidden, pinned)."
|
|
961
|
+
},
|
|
962
|
+
"tableSettingsKey": {
|
|
963
|
+
"type": "string",
|
|
964
|
+
"description": "The table's settings key, so a host can tell several tables apart."
|
|
965
|
+
},
|
|
966
|
+
"target": {
|
|
967
|
+
"enum": [
|
|
968
|
+
"personal",
|
|
969
|
+
"shared"
|
|
970
|
+
],
|
|
971
|
+
"description": "Not sent by the table. Another source may send shared to write the shared layer.",
|
|
972
|
+
"type": "string"
|
|
973
|
+
},
|
|
974
|
+
"base_revision": {
|
|
975
|
+
"type": [
|
|
976
|
+
"string",
|
|
977
|
+
"number"
|
|
978
|
+
],
|
|
979
|
+
"description": "Not sent by the table. Another source may name the base revision; otherwise the view uses the layer's."
|
|
980
|
+
}
|
|
981
|
+
},
|
|
982
|
+
"additionalProperties": true
|
|
983
|
+
}
|
|
984
|
+
},
|
|
985
|
+
"sf-table-column-settings-reset": {
|
|
986
|
+
"summary": "A table event the view listens to: the person asked for the default columns back. The view calls resetColumnSettings, an empty personal layer written against its revision; the host supplies the defaults.",
|
|
987
|
+
"payload": {
|
|
988
|
+
"type": "object",
|
|
989
|
+
"required": [
|
|
990
|
+
"target",
|
|
991
|
+
"tableSettingsKey"
|
|
992
|
+
],
|
|
993
|
+
"properties": {
|
|
994
|
+
"target": {
|
|
995
|
+
"const": "personal",
|
|
996
|
+
"description": "The layer to reset. The table only resets the person's own layer.",
|
|
997
|
+
"type": "string"
|
|
998
|
+
},
|
|
999
|
+
"tableSettingsKey": {
|
|
1000
|
+
"type": [
|
|
1001
|
+
"string",
|
|
1002
|
+
"null"
|
|
1003
|
+
],
|
|
1004
|
+
"description": "The table's settings key, or null when it has none."
|
|
1005
|
+
}
|
|
1006
|
+
},
|
|
1007
|
+
"additionalProperties": true
|
|
1008
|
+
}
|
|
1009
|
+
},
|
|
1010
|
+
"sf-table-create-intent": {
|
|
1011
|
+
"summary": "A table event the view listens to: the create button or one of its menu items was pressed. The view raises view.create_record with the detail as it came.",
|
|
1012
|
+
"payload": {
|
|
1013
|
+
"type": "object",
|
|
1014
|
+
"required": [
|
|
1015
|
+
"item"
|
|
1016
|
+
],
|
|
1017
|
+
"properties": {
|
|
1018
|
+
"item": {
|
|
1019
|
+
"type": [
|
|
1020
|
+
"string",
|
|
1021
|
+
"null"
|
|
1022
|
+
],
|
|
1023
|
+
"description": "null for the main create button; the declared create item's id when one was chosen from its menu."
|
|
1024
|
+
}
|
|
1025
|
+
},
|
|
1026
|
+
"additionalProperties": true
|
|
1027
|
+
}
|
|
1028
|
+
},
|
|
1029
|
+
"sf-table-query-intent": {
|
|
1030
|
+
"summary": "A table event the view listens to: its table's context input port changed. The view ignores the table's sequence and re-reads the list with its own query.change.",
|
|
1031
|
+
"payload": {
|
|
1032
|
+
"type": "object",
|
|
1033
|
+
"required": [
|
|
1034
|
+
"reason",
|
|
1035
|
+
"context",
|
|
1036
|
+
"sequence"
|
|
1037
|
+
],
|
|
1038
|
+
"properties": {
|
|
1039
|
+
"reason": {
|
|
1040
|
+
"const": "context",
|
|
1041
|
+
"description": "Always context: the context input port changed."
|
|
1042
|
+
},
|
|
1043
|
+
"context": {
|
|
1044
|
+
"type": "object",
|
|
1045
|
+
"description": "The immutable context last received through the context input port."
|
|
1046
|
+
},
|
|
1047
|
+
"sequence": {
|
|
1048
|
+
"type": "integer",
|
|
1049
|
+
"description": "The pending query's sequence; only the newest is applied.",
|
|
1050
|
+
"minimum": 1
|
|
1051
|
+
}
|
|
1052
|
+
},
|
|
1053
|
+
"additionalProperties": true
|
|
1054
|
+
}
|
|
1055
|
+
},
|
|
1056
|
+
"sf-table-template-delete": {
|
|
1057
|
+
"summary": "A table event the view listens to: a saved template was deleted on the Templates tab, one event per template. The view raises view.delete with the key.",
|
|
1058
|
+
"payload": {
|
|
1059
|
+
"type": "object",
|
|
1060
|
+
"required": [
|
|
1061
|
+
"key"
|
|
1062
|
+
],
|
|
1063
|
+
"properties": {
|
|
1064
|
+
"key": {
|
|
1065
|
+
"type": "string",
|
|
1066
|
+
"description": "The saved template's key.",
|
|
1067
|
+
"minLength": 1
|
|
1068
|
+
}
|
|
1069
|
+
},
|
|
1070
|
+
"additionalProperties": true
|
|
1071
|
+
}
|
|
1072
|
+
},
|
|
1073
|
+
"sf-table-template-save": {
|
|
1074
|
+
"summary": "A table event the view listens to: a filter template was saved. The view turns it into saveView (view.save) with key, label, revision, level, roles, layout and settings; an array detail is saved template by template, each one its own view.save, entries without a key skipped.",
|
|
1075
|
+
"payload": {
|
|
1076
|
+
"description": "One template object when a single template is saved from the form, or an array of them when Apply on the Templates tab changed several (order, pin, default, selected).",
|
|
1077
|
+
"oneOf": [
|
|
1078
|
+
{
|
|
1079
|
+
"type": "object",
|
|
1080
|
+
"required": [
|
|
1081
|
+
"key",
|
|
1082
|
+
"label",
|
|
1083
|
+
"settings"
|
|
1084
|
+
],
|
|
1085
|
+
"properties": {
|
|
1086
|
+
"key": {
|
|
1087
|
+
"type": "string",
|
|
1088
|
+
"description": "The template's key; a new template gets filter_template_<n>."
|
|
1089
|
+
},
|
|
1090
|
+
"label": {
|
|
1091
|
+
"type": "string",
|
|
1092
|
+
"description": "The name the person gave it."
|
|
1093
|
+
},
|
|
1094
|
+
"selected": {
|
|
1095
|
+
"type": "boolean",
|
|
1096
|
+
"description": "Whether it is the applied template."
|
|
1097
|
+
},
|
|
1098
|
+
"data": {
|
|
1099
|
+
"type": "object",
|
|
1100
|
+
"description": "The filter draft it keeps: the form values, `values` and `tags`."
|
|
1101
|
+
},
|
|
1102
|
+
"settings": {
|
|
1103
|
+
"type": "object",
|
|
1104
|
+
"properties": {
|
|
1105
|
+
"filter_fields": {
|
|
1106
|
+
"type": "array",
|
|
1107
|
+
"items": {
|
|
1108
|
+
"type": "string"
|
|
1109
|
+
},
|
|
1110
|
+
"description": "The filter fields it was showing, so opening it shows them again."
|
|
1111
|
+
}
|
|
1112
|
+
},
|
|
1113
|
+
"description": "Passed through by the port as it is."
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
1116
|
+
},
|
|
1117
|
+
{
|
|
1118
|
+
"type": "array",
|
|
1119
|
+
"items": {
|
|
1120
|
+
"type": "object",
|
|
1121
|
+
"required": [
|
|
1122
|
+
"key",
|
|
1123
|
+
"label",
|
|
1124
|
+
"settings"
|
|
1125
|
+
],
|
|
1126
|
+
"properties": {
|
|
1127
|
+
"key": {
|
|
1128
|
+
"type": "string",
|
|
1129
|
+
"description": "The template's key; a new template gets filter_template_<n>."
|
|
1130
|
+
},
|
|
1131
|
+
"label": {
|
|
1132
|
+
"type": "string",
|
|
1133
|
+
"description": "The name the person gave it."
|
|
1134
|
+
},
|
|
1135
|
+
"selected": {
|
|
1136
|
+
"type": "boolean",
|
|
1137
|
+
"description": "Whether it is the applied template."
|
|
1138
|
+
},
|
|
1139
|
+
"data": {
|
|
1140
|
+
"type": "object",
|
|
1141
|
+
"description": "The filter draft it keeps: the form values, `values` and `tags`."
|
|
1142
|
+
},
|
|
1143
|
+
"settings": {
|
|
1144
|
+
"type": "object",
|
|
1145
|
+
"properties": {
|
|
1146
|
+
"filter_fields": {
|
|
1147
|
+
"type": "array",
|
|
1148
|
+
"items": {
|
|
1149
|
+
"type": "string"
|
|
1150
|
+
},
|
|
1151
|
+
"description": "The filter fields it was showing, so opening it shows them again."
|
|
1152
|
+
}
|
|
1153
|
+
},
|
|
1154
|
+
"description": "Passed through by the port as it is."
|
|
1155
|
+
}
|
|
1156
|
+
}
|
|
1157
|
+
},
|
|
1158
|
+
"minItems": 1
|
|
1159
|
+
}
|
|
1160
|
+
]
|
|
1161
|
+
}
|
|
1162
|
+
},
|
|
1163
|
+
"sf-table-template-select": {
|
|
1164
|
+
"summary": "A table event the view listens to: a different saved template was applied on the Templates tab. The view raises view.open with the key and restores the filter fields the view was saved with.",
|
|
1165
|
+
"payload": {
|
|
1166
|
+
"type": "object",
|
|
1167
|
+
"required": [
|
|
1168
|
+
"key"
|
|
1169
|
+
],
|
|
1170
|
+
"properties": {
|
|
1171
|
+
"key": {
|
|
1172
|
+
"type": "string",
|
|
1173
|
+
"description": "The saved template's key.",
|
|
1174
|
+
"minLength": 1
|
|
1175
|
+
}
|
|
1176
|
+
},
|
|
1177
|
+
"additionalProperties": true
|
|
1178
|
+
}
|
|
1179
|
+
},
|
|
1180
|
+
"sf-host-port-request": {
|
|
1181
|
+
"summary": "Asks the page for a host port, once per connection and only while this element has none. The shared convention for every component that takes `setHostPort`, so a consumer composing one inside something else does not have to find the element and call a method on it. Answered by calling `setHostPort` on the event target, at once or later.",
|
|
1182
|
+
"payload": {
|
|
1183
|
+
"type": "object",
|
|
1184
|
+
"required": [],
|
|
1185
|
+
"properties": {
|
|
1186
|
+
"component": {
|
|
1187
|
+
"type": "object",
|
|
1188
|
+
"description": "The element asking, so a host can answer it directly."
|
|
1189
|
+
},
|
|
1190
|
+
"context": {
|
|
1191
|
+
"type": "object",
|
|
1192
|
+
"description": "Which composite is asking and about what: owner, record, group. All null on a page list, which is asking about nothing but itself."
|
|
1193
|
+
}
|
|
1194
|
+
},
|
|
1195
|
+
"additionalProperties": true
|
|
1196
|
+
}
|
|
1197
|
+
},
|
|
1198
|
+
"sf-view-list-open": {
|
|
1199
|
+
"summary": "The person asked to see the whole list a row cap is showing part of. Carries the query so the host opens the full view on the same records; the component builds no address of its own.",
|
|
1200
|
+
"payload": {
|
|
1201
|
+
"type": "object",
|
|
1202
|
+
"required": [
|
|
1203
|
+
"reason",
|
|
1204
|
+
"query"
|
|
1205
|
+
],
|
|
1206
|
+
"properties": {
|
|
1207
|
+
"reason": {
|
|
1208
|
+
"enum": [
|
|
1209
|
+
"row-cap"
|
|
1210
|
+
]
|
|
1211
|
+
},
|
|
1212
|
+
"query": {
|
|
1213
|
+
"type": "object"
|
|
1214
|
+
}
|
|
1215
|
+
},
|
|
1216
|
+
"additionalProperties": true
|
|
1217
|
+
},
|
|
1218
|
+
"canonical": true
|
|
1219
|
+
},
|
|
1220
|
+
"sf-table-cell-set": {
|
|
1221
|
+
"summary": "A table event the view listens to: a checkable cell was pressed. The view raises record.set of simai.dataview-port 1.11.0 (capability inline-edit) with record_id, key, value and revision, and resets the box when the answer is not applied.",
|
|
1222
|
+
"payload": {
|
|
1223
|
+
"type": "object",
|
|
1224
|
+
"required": [
|
|
1225
|
+
"id",
|
|
1226
|
+
"key",
|
|
1227
|
+
"value",
|
|
1228
|
+
"revision"
|
|
1229
|
+
],
|
|
1230
|
+
"properties": {
|
|
1231
|
+
"id": {
|
|
1232
|
+
"type": [
|
|
1233
|
+
"string",
|
|
1234
|
+
"integer"
|
|
1235
|
+
],
|
|
1236
|
+
"description": "The record's id."
|
|
1237
|
+
},
|
|
1238
|
+
"key": {
|
|
1239
|
+
"type": "string",
|
|
1240
|
+
"description": "The column (field) key of the cell."
|
|
1241
|
+
},
|
|
1242
|
+
"value": {
|
|
1243
|
+
"description": "The value the cell now asks for (a checkbox: true or false)."
|
|
1244
|
+
},
|
|
1245
|
+
"revision": {
|
|
1246
|
+
"type": [
|
|
1247
|
+
"string",
|
|
1248
|
+
"integer",
|
|
1249
|
+
"null"
|
|
1250
|
+
],
|
|
1251
|
+
"description": "The record's _revision or revision, or null."
|
|
1252
|
+
}
|
|
1253
|
+
},
|
|
1254
|
+
"additionalProperties": true
|
|
1255
|
+
}
|
|
1256
|
+
},
|
|
1257
|
+
"sf-table-rows-reorder": {
|
|
1258
|
+
"summary": "A table event the view listens to: rows were dragged into another order. The view shows the new order at once and raises record.reorder of simai.dataview-port 1.11.0 (capability row-reorder); a refusal or conflict puts the old order back.",
|
|
1259
|
+
"payload": {
|
|
1260
|
+
"type": "object",
|
|
1261
|
+
"required": [
|
|
1262
|
+
"ids",
|
|
1263
|
+
"before",
|
|
1264
|
+
"order"
|
|
1265
|
+
],
|
|
1266
|
+
"properties": {
|
|
1267
|
+
"ids": {
|
|
1268
|
+
"type": "array",
|
|
1269
|
+
"description": "The ids of the rows that moved.",
|
|
1270
|
+
"items": {
|
|
1271
|
+
"type": "string"
|
|
1272
|
+
},
|
|
1273
|
+
"minItems": 1
|
|
1274
|
+
},
|
|
1275
|
+
"before": {
|
|
1276
|
+
"type": [
|
|
1277
|
+
"string",
|
|
1278
|
+
"null"
|
|
1279
|
+
],
|
|
1280
|
+
"description": "The id of the row they now stand before; null for the end of the list."
|
|
1281
|
+
},
|
|
1282
|
+
"order": {
|
|
1283
|
+
"type": "array",
|
|
1284
|
+
"description": "Every row id shown, in the new order.",
|
|
1285
|
+
"items": {
|
|
1286
|
+
"type": "string"
|
|
1287
|
+
}
|
|
1288
|
+
}
|
|
1289
|
+
},
|
|
1290
|
+
"additionalProperties": true
|
|
1291
|
+
}
|
|
1292
|
+
},
|
|
1293
|
+
"sf-table-tree-intent": {
|
|
1294
|
+
"summary": "A tree intent of simai.dataview-port 1.8.0 -- tree.expand, node.targets or node.move -- announced as the view raises it. The host answers through the port.",
|
|
1295
|
+
"payload": {
|
|
1296
|
+
"type": "object",
|
|
1297
|
+
"required": [
|
|
1298
|
+
"intent",
|
|
1299
|
+
"payload"
|
|
1300
|
+
],
|
|
1301
|
+
"additionalProperties": false,
|
|
1302
|
+
"properties": {
|
|
1303
|
+
"intent": {
|
|
1304
|
+
"type": "string"
|
|
1305
|
+
},
|
|
1306
|
+
"payload": {
|
|
1307
|
+
"type": "object"
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
},
|
|
1311
|
+
"alias_of": "sf-view-tree"
|
|
1312
|
+
},
|
|
1313
|
+
"sf-data-view-open": {
|
|
1314
|
+
"summary": "Dated alias of sf-view-open until 2027-01-01 (same-detail).",
|
|
1315
|
+
"payload": {
|
|
1316
|
+
"type": "object"
|
|
1317
|
+
},
|
|
1318
|
+
"alias_of": "sf-view-open"
|
|
1319
|
+
},
|
|
1320
|
+
"sf-data-view-deleted": {
|
|
1321
|
+
"summary": "Dated alias of sf-view-deleted until 2027-01-01 (same-detail).",
|
|
1322
|
+
"payload": {
|
|
1323
|
+
"type": "object"
|
|
1324
|
+
},
|
|
1325
|
+
"alias_of": "sf-view-deleted"
|
|
1326
|
+
},
|
|
1327
|
+
"sf-data-view-answer": {
|
|
1328
|
+
"summary": "Dated alias of sf-view-answer until 2027-01-01 (same-detail).",
|
|
1329
|
+
"payload": {
|
|
1330
|
+
"type": "object"
|
|
1331
|
+
},
|
|
1332
|
+
"alias_of": "sf-view-answer"
|
|
1333
|
+
},
|
|
1334
|
+
"sf-data-view-state": {
|
|
1335
|
+
"summary": "Dated alias of sf-view-state until 2027-01-01 (same-detail).",
|
|
1336
|
+
"payload": {
|
|
1337
|
+
"type": "object"
|
|
1338
|
+
},
|
|
1339
|
+
"alias_of": "sf-view-state"
|
|
1340
|
+
},
|
|
1341
|
+
"sf-data-view-tree": {
|
|
1342
|
+
"summary": "Dated alias of sf-view-tree until 2027-01-01 (same-detail).",
|
|
1343
|
+
"payload": {
|
|
1344
|
+
"type": "object"
|
|
1345
|
+
},
|
|
1346
|
+
"alias_of": "sf-view-tree"
|
|
1347
|
+
},
|
|
1348
|
+
"sf-data-view-files-drop": {
|
|
1349
|
+
"summary": "Dated alias of sf-view-files-drop until 2027-01-01 (same-detail).",
|
|
1350
|
+
"payload": {
|
|
1351
|
+
"type": "object"
|
|
1352
|
+
},
|
|
1353
|
+
"alias_of": "sf-view-files-drop"
|
|
1354
|
+
},
|
|
1355
|
+
"sf-data-view-saved-view-intent": {
|
|
1356
|
+
"summary": "Dated alias of sf-view-saved-view-intent until 2027-01-01 (same-detail).",
|
|
1357
|
+
"payload": {
|
|
1358
|
+
"type": "object"
|
|
1359
|
+
},
|
|
1360
|
+
"alias_of": "sf-view-saved-view-intent"
|
|
1361
|
+
},
|
|
1362
|
+
"sf-data-view-list-open": {
|
|
1363
|
+
"summary": "Dated alias of sf-view-list-open until 2027-01-01 (same-detail).",
|
|
1364
|
+
"payload": {
|
|
1365
|
+
"type": "object"
|
|
1366
|
+
},
|
|
1367
|
+
"alias_of": "sf-view-list-open"
|
|
1368
|
+
}
|
|
1369
|
+
},
|
|
1370
|
+
"state": {
|
|
1371
|
+
"machines": {
|
|
1372
|
+
"data": [
|
|
1373
|
+
"loading",
|
|
1374
|
+
"populated",
|
|
1375
|
+
"empty",
|
|
1376
|
+
"error"
|
|
1377
|
+
]
|
|
1378
|
+
},
|
|
1379
|
+
"visual_states": [
|
|
1380
|
+
"default",
|
|
1381
|
+
"loading",
|
|
1382
|
+
"empty",
|
|
1383
|
+
"error"
|
|
1384
|
+
]
|
|
1385
|
+
},
|
|
1386
|
+
"persistence": {
|
|
1387
|
+
"mode": "external-host",
|
|
1388
|
+
"source_of_truth": "host",
|
|
1389
|
+
"network_owner": "host",
|
|
1390
|
+
"revision_field": "revision"
|
|
1391
|
+
},
|
|
1392
|
+
"ownership": {
|
|
1393
|
+
"source": "simai/ui-admin",
|
|
1394
|
+
"data": "host",
|
|
1395
|
+
"effects": "host",
|
|
1396
|
+
"forbidden_client_responsibilities": [
|
|
1397
|
+
"access decisions",
|
|
1398
|
+
"database writes",
|
|
1399
|
+
"unspecified transport"
|
|
1400
|
+
]
|
|
1401
|
+
},
|
|
1402
|
+
"security": {
|
|
1403
|
+
"permissions_owner": "host",
|
|
1404
|
+
"untrusted_inputs": [
|
|
1405
|
+
"query",
|
|
1406
|
+
"records",
|
|
1407
|
+
"saved_views",
|
|
1408
|
+
"answer messages"
|
|
1409
|
+
],
|
|
1410
|
+
"network_policy": "deny"
|
|
1411
|
+
},
|
|
1412
|
+
"accessibility": {
|
|
1413
|
+
"role": "region",
|
|
1414
|
+
"accessible_name": "required",
|
|
1415
|
+
"keyboard": [
|
|
1416
|
+
"Native controls and child Smart components"
|
|
1417
|
+
],
|
|
1418
|
+
"focus": "No focus movement on data refresh"
|
|
1419
|
+
},
|
|
1420
|
+
"presentation": {
|
|
1421
|
+
"skeleton": {
|
|
1422
|
+
"shape": "rows",
|
|
1423
|
+
"while_loading": "template"
|
|
1424
|
+
},
|
|
1425
|
+
"themes": [
|
|
1426
|
+
"light",
|
|
1427
|
+
"dark"
|
|
1428
|
+
],
|
|
1429
|
+
"locales": [
|
|
1430
|
+
"ru",
|
|
1431
|
+
"en"
|
|
1432
|
+
],
|
|
1433
|
+
"responsive": [
|
|
1434
|
+
"Slots and child components own responsive behaviour"
|
|
1435
|
+
]
|
|
1436
|
+
},
|
|
1437
|
+
"adapter": {
|
|
1438
|
+
"kind": "generic",
|
|
1439
|
+
"protocol": "simai.smart-studio-adapter.v1",
|
|
1440
|
+
"module": null
|
|
1441
|
+
},
|
|
1442
|
+
"artifacts": {
|
|
1443
|
+
"fixtures": [],
|
|
1444
|
+
"scenarios": []
|
|
1445
|
+
},
|
|
1446
|
+
"readiness": {
|
|
1447
|
+
"level": "host-required",
|
|
1448
|
+
"required_checks": [
|
|
1449
|
+
"host-port-reference",
|
|
1450
|
+
"data-view-composite",
|
|
1451
|
+
"responsive-table",
|
|
1452
|
+
"generated-pair"
|
|
1453
|
+
]
|
|
1454
|
+
},
|
|
1455
|
+
"compatibility": {
|
|
1456
|
+
"contract_schema": {
|
|
1457
|
+
"id": "https://simai.io/contracts/smart-component-manifest.v2.schema.json",
|
|
1458
|
+
"version": 2
|
|
1459
|
+
},
|
|
1460
|
+
"runtime_pair": {
|
|
1461
|
+
"ui_revision": "89834691fb9dce692be5353f3214df7aee3a7e27",
|
|
1462
|
+
"ui_smart_revision": "89834691fb9dce692be5353f3214df7aee3a7e27"
|
|
1463
|
+
},
|
|
1464
|
+
"aliases": [
|
|
1465
|
+
"<sf-data-view>"
|
|
1466
|
+
],
|
|
1467
|
+
"deprecations": [
|
|
1468
|
+
{
|
|
1469
|
+
"path": "<sf-data-view>",
|
|
1470
|
+
"since": "1.8.0",
|
|
1471
|
+
"replacement": "<sf-view>"
|
|
1472
|
+
}
|
|
1473
|
+
],
|
|
1474
|
+
"replacement": null,
|
|
1475
|
+
"migrations": [
|
|
1476
|
+
{
|
|
1477
|
+
"from": "1.0.0",
|
|
1478
|
+
"to": "1.1.0",
|
|
1479
|
+
"changes": [
|
|
1480
|
+
"From component.json (standard simai.smart-component 1.3.8): sf-data-view-open {id} (cancelable) before the host's record.open, sf-data-view-deleted {ids} after an applied delete, sf-data-view-tree with sf-table-tree-intent as its dated alias; values state (vocabulary), total, selected, selection; settings collection and current; the actions answer outcomes."
|
|
1481
|
+
]
|
|
1482
|
+
},
|
|
1483
|
+
{
|
|
1484
|
+
"from": "1.4.2",
|
|
1485
|
+
"to": "1.4.3",
|
|
1486
|
+
"changes": [
|
|
1487
|
+
"The first-paint snapshot's sheets.json lists the utility sheets its markup uses (retaken on ui-source 5ba9399); no behaviour changed. Nothing to change for a host."
|
|
1488
|
+
]
|
|
1489
|
+
},
|
|
1490
|
+
{
|
|
1491
|
+
"from": "1.6.4",
|
|
1492
|
+
"to": "1.6.5",
|
|
1493
|
+
"changes": [
|
|
1494
|
+
"Parts are asked for through SF.Loader.ensure; needs core.runtime >= 1.19.0. Nothing to change for a host on a pair from core.runtime 1.19.0 on."
|
|
1495
|
+
]
|
|
1496
|
+
},
|
|
1497
|
+
{
|
|
1498
|
+
"from": "1.6.5",
|
|
1499
|
+
"to": "1.7.0",
|
|
1500
|
+
"changes": [
|
|
1501
|
+
"The move dialog and the confirmation are sf-modal on the layer stack, not a native <dialog>; needs core.runtime >= 1.19.0 and sf-modal on the page's pair. Visible: the shared scrim (black at 60) instead of the browser's backdrop, sf-modal's header with a close button and its footer. Same answers: applied only through the apply button. Nothing to change for a host."
|
|
1502
|
+
]
|
|
1503
|
+
},
|
|
1504
|
+
{
|
|
1505
|
+
"from": "1.7.0",
|
|
1506
|
+
"to": "1.7.1",
|
|
1507
|
+
"changes": [
|
|
1508
|
+
"Draws and finds the renamed Framework elements by their new tags (the bulk clear button is sf-button-icon); the rule relations name cl-<new>. Needs the SIMAI Framework pair with the tag renames (core.runtime 1.21.0). No visible change. Nothing to change for a host on that pair; a host that writes the former tags keeps working until 2027-01-01."
|
|
1509
|
+
]
|
|
1510
|
+
},
|
|
1511
|
+
{
|
|
1512
|
+
"from": "1.7.1",
|
|
1513
|
+
"to": "1.8.0",
|
|
1514
|
+
"changes": [
|
|
1515
|
+
"The tag is sf-view (rename plan R2, naming decision 2026-11-02: sf-[set]-<block>); the folder view, the id smart.view and the bundle cl-view follow it (were data-view, smart.data-view-composite, cl-data-view). sf-data-view stays a dated alias until 2027-01-01: old markup upgrades as this element, the Loader forwards cl-data-view, and every event fires under its former name as well, with the same detail. Public CSS variables and classes keep their names; the opaque instance_id of the state and answer events reads sf-view-<n> (was sf-data-view-<n>). Needs the SIMAI Framework pair whose package reference lists the former tag (core.runtime 1.22.0). Nothing to change for a host until 2027-01-01; new markup writes sf-view."
|
|
1516
|
+
]
|
|
1517
|
+
},
|
|
1518
|
+
{
|
|
1519
|
+
"from": "1.8.0",
|
|
1520
|
+
"to": "1.8.1",
|
|
1521
|
+
"changes": [
|
|
1522
|
+
"A table the host wrote selectable=\"false\" or settings=\"false\" on keeps it inside the view (no row boxes, no settings column); before, the view's chrome overwrote both. Nothing to change for a host; a host that wanted the view's boxes on such a table removes its own attribute."
|
|
1523
|
+
]
|
|
1524
|
+
}
|
|
1525
|
+
]
|
|
1526
|
+
},
|
|
1527
|
+
"provenance": {
|
|
1528
|
+
"source_repository": "simai/ui-pro",
|
|
1529
|
+
"source_revision": "a5ac53753d95b49e2e70078c94fd89ccd3045993",
|
|
1530
|
+
"source_artifacts": [
|
|
1531
|
+
{
|
|
1532
|
+
"path": "src/smart/view/index.js",
|
|
1533
|
+
"sha256": "1ea30c79b3935c00ede4d82f563699baba315e833488c63ddbc7c2f3462a7a36"
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
"path": "src/core/contracts/ports/simai.dataview-port/1.5.0/port.json",
|
|
1537
|
+
"sha256": "14f3396aaa0fb7500d2f65c8be70d8239c92f098c88d3d3cdf14b295ddeb0a18"
|
|
1538
|
+
},
|
|
1539
|
+
{
|
|
1540
|
+
"path": "src/smart/view/docs.md",
|
|
1541
|
+
"sha256": "6fbe4b18a496ce87e6c65f0bab96e1aa657718929a0b29796ef5c0232ceb4fd5"
|
|
1542
|
+
},
|
|
1543
|
+
{
|
|
1544
|
+
"path": "tests/fixtures/data-view-composite-lab.html",
|
|
1545
|
+
"sha256": "59537317fe4742778c5987ec1f305e85fd6a003293032777d1bbd0b61992a0d8"
|
|
1546
|
+
},
|
|
1547
|
+
{
|
|
1548
|
+
"path": "src/smart/view/js/tree.js",
|
|
1549
|
+
"sha256": "800ce7a5fe2ca9681b4dc4cd283055bf815b0346aec4bb5e9df40189c682e2c4"
|
|
1550
|
+
},
|
|
1551
|
+
{
|
|
1552
|
+
"path": "src/smart/view/js/first-paint.css",
|
|
1553
|
+
"sha256": "059abccc0b441cc33602d9677efc57d7cf372e7f94b76ca3421f17cf60accccc"
|
|
1554
|
+
}
|
|
1555
|
+
],
|
|
1556
|
+
"generated_runtime": []
|
|
1557
|
+
},
|
|
1558
|
+
"ai_guidance": {
|
|
1559
|
+
"use_when": "Use for a host-driven CMS collection with toolbar, table and pagination.",
|
|
1560
|
+
"do_not": [
|
|
1561
|
+
"Do not embed rows in the composition recipe",
|
|
1562
|
+
"Do not infer permissions from visible buttons"
|
|
1563
|
+
],
|
|
1564
|
+
"required_reads": [
|
|
1565
|
+
"host_port",
|
|
1566
|
+
"events",
|
|
1567
|
+
"ownership",
|
|
1568
|
+
"compatibility",
|
|
1569
|
+
"docs"
|
|
1570
|
+
],
|
|
1571
|
+
"minimal_example": "<sf-view aria-label=\"Записи\"><sf-view-table slot=\"content\" aria-label=\"Записи\"></sf-view-table><sf-pagination slot=\"pagination\"></sf-pagination></sf-view>",
|
|
1572
|
+
"owner_commands": [
|
|
1573
|
+
"node scripts/test.mjs",
|
|
1574
|
+
"node scripts/run-browser-probes.mjs <free output> <package output>"
|
|
1575
|
+
]
|
|
1576
|
+
}
|
|
1577
|
+
}
|