@optionfactory/fml 9.0.0-rc2 → 9.0.0-rc21
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/README.md +16 -89
- package/dist/client-errors.iife.js +23 -37
- package/dist/client-errors.iife.js.map +1 -1
- package/dist/client-errors.iife.min.js +1 -1
- package/dist/client-errors.iife.min.js.map +1 -1
- package/dist/custom-elements.json +459 -36
- package/dist/fml.css +24 -19
- package/dist/fml.css.map +1 -1
- package/dist/fml.iife.js +4656 -1778
- package/dist/fml.iife.js.map +1 -1
- package/dist/fml.iife.min.js +1 -1
- package/dist/fml.iife.min.js.map +1 -1
- package/dist/ftl.d.mts +395 -224
- package/dist/ftl.iife.js +402 -332
- package/dist/ftl.iife.js.map +1 -1
- package/dist/ftl.iife.min.js +1 -1
- package/dist/ftl.iife.min.js.map +1 -1
- package/dist/ftl.min.mjs +1 -1
- package/dist/ftl.min.mjs.map +1 -1
- package/dist/ftl.mjs +402 -332
- package/dist/ftl.mjs.map +1 -1
- package/dist/ful.css +24 -19
- package/dist/ful.css.map +1 -1
- package/dist/ful.d.mts +2801 -519
- package/dist/ful.iife.js +4105 -1273
- package/dist/ful.iife.js.map +1 -1
- package/dist/ful.iife.min.js +1 -1
- package/dist/ful.iife.min.js.map +1 -1
- package/dist/ful.min.mjs +1 -1
- package/dist/ful.min.mjs.map +1 -1
- package/dist/ful.mjs +4102 -1275
- package/dist/ful.mjs.map +1 -1
- package/dist/httpc.d.mts +139 -121
- package/dist/httpc.iife.js +137 -166
- package/dist/httpc.iife.js.map +1 -1
- package/dist/httpc.iife.min.js +1 -1
- package/dist/httpc.iife.min.js.map +1 -1
- package/dist/httpc.min.mjs +1 -1
- package/dist/httpc.min.mjs.map +1 -1
- package/dist/httpc.mjs +137 -166
- package/dist/httpc.mjs.map +1 -1
- package/dist/vscode.html-custom-data.json +215 -27
- package/dist/web-types.json +463 -36
- package/package.json +1 -1
package/dist/web-types.json
CHANGED
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@optionfactory/fml",
|
|
4
|
-
"version": "9.0.0-
|
|
4
|
+
"version": "9.0.0-rc21",
|
|
5
5
|
"description-markup": "none",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"elements": [
|
|
9
9
|
{
|
|
10
10
|
"name": "ful-tooltip",
|
|
11
|
-
"description": "An info affordance: a themed icon button toggling a small popover with a short explanation, opened by click and by keyboard like a button, dismissed by Escape or an outside click. placement picks the side the note sits on:
|
|
11
|
+
"description": "An info affordance: a themed icon button toggling a small popover with a short explanation, opened by click and by keyboard like a button, dismissed by Escape or an outside click. placement picks the side the note sits on: top (default), bottom, left or right.",
|
|
12
12
|
"attributes": [
|
|
13
13
|
{
|
|
14
14
|
"name": "placement",
|
|
15
|
-
"description": "Which side of the trigger the note opens on:
|
|
15
|
+
"description": "Which side of the trigger the note opens on: top (the default), bottom, left or right. Above by default because a note opening downwards covers the control the marker explains. The library places the note itself on every platform, so the side is the same everywhere.",
|
|
16
16
|
"value": {
|
|
17
17
|
"kind": "plain",
|
|
18
18
|
"type": "string"
|
|
19
19
|
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "icon",
|
|
23
|
+
"description": "The ful-icon the marker shows, for a tooltip meaning something other than plain information. Defaults to the page's Tooltip.config.icon; a name the library does not paint is declared by the page as ful-icon[name='...'] { mask-image: ... }.",
|
|
24
|
+
"value": {
|
|
25
|
+
"kind": "plain",
|
|
26
|
+
"type": "string"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "describes",
|
|
31
|
+
"description": "For a tooltip standing in a field: the note joins the accessible description of that field's control, announced on reaching the field rather than only on opening the marker, and the marker leaves the tab order so a form of hinted fields costs no extra keystrokes to walk. The marker stays clickable, and keeps its tab stop wherever nothing took the note.",
|
|
32
|
+
"value": {
|
|
33
|
+
"kind": "plain",
|
|
34
|
+
"type": "boolean"
|
|
35
|
+
}
|
|
20
36
|
}
|
|
21
37
|
],
|
|
22
38
|
"slots": [
|
|
@@ -29,7 +45,7 @@
|
|
|
29
45
|
},
|
|
30
46
|
{
|
|
31
47
|
"name": "ful-dialog",
|
|
32
|
-
"description": "A modal dialog on the native platform: header, body and buttons, the header attribute naming its heading, opened by any element carrying dialog-target set to its id, or programmatically through open()/ask(), which
|
|
48
|
+
"description": "A modal dialog on the native platform: header, body and buttons, the header attribute naming its heading, opened by any element carrying dialog-target set to its id, or programmatically through open()/ask(), which answer with how the dialog ended, or through update(callback), which opens it on a loading state and then shows either what the callback delivered or the problems of a rejection. Longer explanations belong here, shorter ones in ful-tooltip. Dialog.ask(header, body, buttons) and Dialog.confirm(header, body, labels) ask a question in a transient one, building, showing, answering and removing the element themselves; a confirm's cancel, close and Escape all answer the negative.",
|
|
33
49
|
"attributes": [
|
|
34
50
|
{
|
|
35
51
|
"name": "header",
|
|
@@ -38,35 +54,59 @@
|
|
|
38
54
|
"kind": "plain",
|
|
39
55
|
"type": "string"
|
|
40
56
|
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "requires-answer",
|
|
60
|
+
"description": "For the dialog that must be answered: the close button is not rendered and Escape is refused, so the only way out is a button carrying a result. Both, since a close button withheld while Escape still worked would be decoration rather than a rule.",
|
|
61
|
+
"value": {
|
|
62
|
+
"kind": "plain",
|
|
63
|
+
"type": "boolean"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "close-on-submit",
|
|
68
|
+
"description": "For the dialog whose answer is a form succeeding rather than a button being pressed: its own form submitting successfully closes it and answers with the response. Opt in, and its own form only, a ful-form the body holds directly, since a ful-table wraps its filters in a form of its own and searching one is not the dialog being answered. Such a dialog renders no acknowledge button of its own, the form's submit being its answer.",
|
|
69
|
+
"value": {
|
|
70
|
+
"kind": "plain",
|
|
71
|
+
"type": "boolean"
|
|
72
|
+
}
|
|
41
73
|
}
|
|
42
74
|
],
|
|
43
75
|
"slots": [
|
|
76
|
+
{
|
|
77
|
+
"name": "header",
|
|
78
|
+
"description": "Content beside the title and before it: an icon, a badge, a status. It sits outside the heading rather than in it, the header attribute setting the heading through text."
|
|
79
|
+
},
|
|
44
80
|
{
|
|
45
81
|
"name": "default",
|
|
46
82
|
"description": "The dialog body."
|
|
47
83
|
},
|
|
48
84
|
{
|
|
49
85
|
"name": "buttons",
|
|
50
|
-
"description": "Buttons closing the dialog; each carries a data-result that
|
|
86
|
+
"description": "Buttons closing the dialog; each carries a data-result that the answer carries back. Without this slot a localized acknowledge button is shown. A dialog closing on its form renders none either way, so the slot is for buttons beside the form, not for suppressing one."
|
|
51
87
|
}
|
|
52
88
|
],
|
|
53
89
|
"events": [
|
|
54
90
|
{
|
|
55
91
|
"name": "close",
|
|
56
|
-
"description": "Fired when the dialog closes, carrying the data-result of the button that closed it,
|
|
92
|
+
"description": "Fired when the dialog closes, carrying how it ended: dismissed tells a cancel from an answer, result the data-result of the button that closed it, response what a submit answered with. ask() and open() resolve with the same object, and a dialog leaving the document while open answers its waiters with a dismissal."
|
|
57
93
|
},
|
|
58
94
|
{
|
|
59
95
|
"name": "section:requested",
|
|
60
96
|
"description": "Fired by the disclosure when it opens (bubbling): answer through AsyncEvents.asyncOn with the body's delivery; the open awaits the answers under the loading chrome, and a failed delivery paints the body's problems."
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"name": "dialog:dismiss",
|
|
100
|
+
"description": "Fired before the close button, Escape or a backdrop click closes the dialog, with detail.reason (button, escape or backdrop): cancelable, so preventDefault() keeps it open, to guard unsaved edits. Not fired for a data-result button, close-on-submit or close(). A second Escape with no interaction in between closes the dialog whatever the page does, and its dialog:dismiss is then not cancelable."
|
|
61
101
|
}
|
|
62
102
|
]
|
|
63
103
|
},
|
|
64
104
|
{
|
|
65
105
|
"name": "ful-drawer",
|
|
66
|
-
"description": "A side panel drawer on the native dialog platform: a header with its title (the
|
|
106
|
+
"description": "A side panel drawer on the native dialog platform: a header with its title (the header attribute, or update()'s own) and close button, and a body that opens in a loading state, then shows either the content delivered by update(header, callback) (or the slotted one, when it is never updated) or the error a rejecting callback carries. placement picks the side, end by default, start its mirror. Any element carrying dialog-target set to its id opens it too.",
|
|
67
107
|
"attributes": [
|
|
68
108
|
{
|
|
69
|
-
"name": "
|
|
109
|
+
"name": "header",
|
|
70
110
|
"description": "The drawer's title, shown in its header. Text only, and also what update() re-titles the panel with.",
|
|
71
111
|
"value": {
|
|
72
112
|
"kind": "plain",
|
|
@@ -80,9 +120,21 @@
|
|
|
80
120
|
"kind": "plain",
|
|
81
121
|
"type": "string"
|
|
82
122
|
}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "close-on-submit",
|
|
126
|
+
"description": "For the drawer whose ending is a form succeeding rather than its close button being pressed: the form its content holds directly submitting successfully closes it, the close event carrying the response. Opt in, and its own form only, since a ful-table wraps its filters in a form of its own and searching one is not the drawer finishing.",
|
|
127
|
+
"value": {
|
|
128
|
+
"kind": "plain",
|
|
129
|
+
"type": "boolean"
|
|
130
|
+
}
|
|
83
131
|
}
|
|
84
132
|
],
|
|
85
133
|
"slots": [
|
|
134
|
+
{
|
|
135
|
+
"name": "header",
|
|
136
|
+
"description": "Content beside the title and before it: an icon, a badge, a status. It sits outside the heading rather than in it, update() setting the title through textContent and taking anything nested there with it."
|
|
137
|
+
},
|
|
86
138
|
{
|
|
87
139
|
"name": "default",
|
|
88
140
|
"description": "The drawer body, shown when update() never replaced it."
|
|
@@ -91,17 +143,37 @@
|
|
|
91
143
|
"events": [
|
|
92
144
|
{
|
|
93
145
|
"name": "close",
|
|
94
|
-
"description": "Fired when the drawer closes,
|
|
146
|
+
"description": "Fired when the drawer closes, carrying how it ended: dismissed tells the close button and Escape from a form that closed it under close-on-submit, and response what that submit answered with, a save answering with no body at all being a save all the same."
|
|
95
147
|
},
|
|
96
148
|
{
|
|
97
149
|
"name": "section:requested",
|
|
98
150
|
"description": "Fired by the disclosure when it opens (bubbling): answer through AsyncEvents.asyncOn with the body's delivery; the open awaits the answers under the loading chrome, and a failed delivery paints the body's problems."
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "drawer:dismiss",
|
|
154
|
+
"description": "Fired before the close button, Escape or a backdrop click closes the drawer, with detail.reason (button, escape or backdrop): cancelable, so preventDefault() keeps it open, to guard unsaved edits. Not fired for close() or close-on-submit. A second Escape with no interaction in between closes the drawer at once, and its drawer:dismiss is then not cancelable."
|
|
99
155
|
}
|
|
100
156
|
]
|
|
101
157
|
},
|
|
158
|
+
{
|
|
159
|
+
"name": "ful-menu",
|
|
160
|
+
"description": "A menu of commands on the native popover platform: the invoker named by for toggles it, light dismiss and Escape come from the browser, and the element adds the menu semantics and the keyboard protocol (roving focus with the arrows, Home and End, type-ahead, Enter and Space to activate, Escape and every close handing the focus back to the invoker). The items are the buttons and links written inside it, kept as they are and given their menuitem role; activation is the item's own click, which the menu only follows by closing.",
|
|
161
|
+
"attributes": [
|
|
162
|
+
{
|
|
163
|
+
"name": "for",
|
|
164
|
+
"description": "The id of the invoker the menu belongs to: it toggles the menu, carries aria-haspopup and aria-expanded, and takes the focus back when the menu closes. Read once at the upgrade, so the invoker must already be in the page by then.",
|
|
165
|
+
"value": {
|
|
166
|
+
"kind": "plain",
|
|
167
|
+
"type": "string"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
],
|
|
171
|
+
"slots": [],
|
|
172
|
+
"events": []
|
|
173
|
+
},
|
|
102
174
|
{
|
|
103
175
|
"name": "ful-toasts",
|
|
104
|
-
"description": "A transient feedback region, one per page: each show() (or a show-toast document event carrying the same detail) appends a toast that dismisses itself after its timeout, the element's timeout attribute or five seconds by default, and carries its own dismiss button. severity picks the theme and the announcement, info by default, success, warning and error, the error one announced as an alert; a Failure message shows its problems' reasons.",
|
|
176
|
+
"description": "A transient feedback region, one per page: each show() (or a show-toast document event carrying the same detail) appends a toast that dismisses itself after its timeout, the element's timeout attribute or five seconds by default, and carries its own dismiss button. severity picks the theme and the announcement, info by default, success, warning and error, the error one announced as an alert; a Failure message shows its problems' reasons. The timer holds while the toast is hovered or holds the focus, and action: { label, onClick } renders a button beside the message whose click answers and retires the toast, the same option travelling in the event detail.",
|
|
105
177
|
"attributes": [
|
|
106
178
|
{
|
|
107
179
|
"name": "timeout",
|
|
@@ -121,7 +193,7 @@
|
|
|
121
193
|
"attributes": [
|
|
122
194
|
{
|
|
123
195
|
"name": "active",
|
|
124
|
-
"description": "The index of the visible panel, zero based, reflected as the active attribute. Clicks, the arrow keys and the property all move it, each move answering with a change event.",
|
|
196
|
+
"description": "The index of the visible panel, zero based, reflected as the active attribute. Clicks, the arrow keys and the property all move it, each move answering with a tabs:change event.",
|
|
125
197
|
"value": {
|
|
126
198
|
"kind": "plain",
|
|
127
199
|
"type": "number"
|
|
@@ -140,8 +212,8 @@
|
|
|
140
212
|
],
|
|
141
213
|
"events": [
|
|
142
214
|
{
|
|
143
|
-
"name": "change",
|
|
144
|
-
"description": "Fired with the active index and the previous one whenever the visible panel moves."
|
|
215
|
+
"name": "tabs:change",
|
|
216
|
+
"description": "Fired with the active index and the previous one whenever the visible panel moves. A name of its own rather than the fields' change: the panels are the host's children, so every native change of a field inside them bubbles through the host under that name."
|
|
145
217
|
},
|
|
146
218
|
{
|
|
147
219
|
"name": "section:requested",
|
|
@@ -172,7 +244,7 @@
|
|
|
172
244
|
},
|
|
173
245
|
{
|
|
174
246
|
"name": "ful-wizard",
|
|
175
|
-
"description": "A wizard: a progress of steps over one-of-N sections. The steps are declared as step elements in the steps slot, the sections as the slotless children, paired in order; each section may carry a data-step name, which is what move() answers to, next() and prev() walk the neighbors, and the current step is the aria-current=step claim carried in lockstep by the step and its section, so the chrome, including which section is shown, follows the claim alone. Each move answers with a change event.",
|
|
247
|
+
"description": "A wizard: a progress of steps over one-of-N sections. The steps are declared as step elements in the steps slot, the sections as the slotless children, paired in order; each section may carry a data-step name, which is what move() answers to, next() and prev() walk the neighbors, and the current step is the aria-current=step claim carried in lockstep by the step and its section, so the chrome, including which section is shown, follows the claim alone. Each move answers with a wizard:change event.",
|
|
176
248
|
"attributes": [
|
|
177
249
|
{
|
|
178
250
|
"name": "progress",
|
|
@@ -195,8 +267,8 @@
|
|
|
195
267
|
],
|
|
196
268
|
"events": [
|
|
197
269
|
{
|
|
198
|
-
"name": "change",
|
|
199
|
-
"description": "Fired with the index and the data-step name after next(), prev() or move() land on a different step."
|
|
270
|
+
"name": "wizard:change",
|
|
271
|
+
"description": "Fired with the index and the data-step name after next(), prev() or move() land on a different step. Named apart from change so the bubbling change of a field inside a step never reaches its listeners."
|
|
200
272
|
},
|
|
201
273
|
{
|
|
202
274
|
"name": "section:requested",
|
|
@@ -271,6 +343,22 @@
|
|
|
271
343
|
"kind": "plain",
|
|
272
344
|
"type": "string"
|
|
273
345
|
}
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"name": "track-changes",
|
|
349
|
+
"description": "Keeps track of the edits not saved yet: dirty answers whether a field the user edited since the last commit holds another value, the host matches :state(dirty) and the submit buttons carry a dot while it does. A successful submit commits, and so does the form once its fields have rendered; commit() is for a save of the page's own.",
|
|
350
|
+
"value": {
|
|
351
|
+
"kind": "plain",
|
|
352
|
+
"type": "boolean"
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"name": "guard-leave",
|
|
357
|
+
"description": "Asks before the page is left while the form holds edits not saved yet, through the browser's own prompt. Implies track-changes.",
|
|
358
|
+
"value": {
|
|
359
|
+
"kind": "plain",
|
|
360
|
+
"type": "boolean"
|
|
361
|
+
}
|
|
274
362
|
}
|
|
275
363
|
],
|
|
276
364
|
"slots": [],
|
|
@@ -290,6 +378,10 @@
|
|
|
290
378
|
{
|
|
291
379
|
"name": "submit:failure",
|
|
292
380
|
"description": "Fired with the exception when the submit fails. The form does not rethrow."
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"name": "dirty:change",
|
|
384
|
+
"description": "Fired under track-changes when the form starts or stops holding edits not saved yet, with dirty in the detail."
|
|
293
385
|
}
|
|
294
386
|
]
|
|
295
387
|
},
|
|
@@ -357,11 +449,11 @@
|
|
|
357
449
|
},
|
|
358
450
|
{
|
|
359
451
|
"name": "ful-input",
|
|
360
|
-
"description": "A labelled text input. Use type to pick any native input type, or textarea; keep names the characters that survive a keystroke and reject the ones that do not, the caret staying among the survivors, and the uppercase and trim claims shape the value before it is read; v-type=number decodes the value to a number, blank staying null and a value that does not decode kept as it is, an undeclared type defaulting to number. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.",
|
|
452
|
+
"description": "A labelled text input. Use type to pick any native input type, the keypad types numeric and decimal, or textarea; keep names the characters that survive a keystroke and reject the ones that do not, the caret staying among the survivors, and the uppercase and trim claims shape the value before it is read; v-type=number decodes the value to a number, blank staying null and a value that does not decode kept as it is, an undeclared type defaulting to number. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.",
|
|
361
453
|
"attributes": [
|
|
362
454
|
{
|
|
363
455
|
"name": "type",
|
|
364
|
-
"description": "Any native input type,
|
|
456
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
365
457
|
"value": {
|
|
366
458
|
"kind": "plain",
|
|
367
459
|
"type": "string"
|
|
@@ -407,6 +499,14 @@
|
|
|
407
499
|
"type": "boolean"
|
|
408
500
|
}
|
|
409
501
|
},
|
|
502
|
+
{
|
|
503
|
+
"name": "unsigned",
|
|
504
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
505
|
+
"value": {
|
|
506
|
+
"kind": "plain",
|
|
507
|
+
"type": "boolean"
|
|
508
|
+
}
|
|
509
|
+
},
|
|
410
510
|
{
|
|
411
511
|
"name": "autocomplete",
|
|
412
512
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -487,7 +587,7 @@
|
|
|
487
587
|
"attributes": [
|
|
488
588
|
{
|
|
489
589
|
"name": "type",
|
|
490
|
-
"description": "Any native input type,
|
|
590
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
491
591
|
"value": {
|
|
492
592
|
"kind": "plain",
|
|
493
593
|
"type": "string"
|
|
@@ -533,6 +633,14 @@
|
|
|
533
633
|
"type": "boolean"
|
|
534
634
|
}
|
|
535
635
|
},
|
|
636
|
+
{
|
|
637
|
+
"name": "unsigned",
|
|
638
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
639
|
+
"value": {
|
|
640
|
+
"kind": "plain",
|
|
641
|
+
"type": "boolean"
|
|
642
|
+
}
|
|
643
|
+
},
|
|
536
644
|
{
|
|
537
645
|
"name": "autocomplete",
|
|
538
646
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -721,7 +829,7 @@
|
|
|
721
829
|
"attributes": [
|
|
722
830
|
{
|
|
723
831
|
"name": "type",
|
|
724
|
-
"description": "Any native input type,
|
|
832
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
725
833
|
"value": {
|
|
726
834
|
"kind": "plain",
|
|
727
835
|
"type": "string"
|
|
@@ -767,6 +875,14 @@
|
|
|
767
875
|
"type": "boolean"
|
|
768
876
|
}
|
|
769
877
|
},
|
|
878
|
+
{
|
|
879
|
+
"name": "unsigned",
|
|
880
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
881
|
+
"value": {
|
|
882
|
+
"kind": "plain",
|
|
883
|
+
"type": "boolean"
|
|
884
|
+
}
|
|
885
|
+
},
|
|
770
886
|
{
|
|
771
887
|
"name": "autocomplete",
|
|
772
888
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -871,7 +987,7 @@
|
|
|
871
987
|
"attributes": [
|
|
872
988
|
{
|
|
873
989
|
"name": "type",
|
|
874
|
-
"description": "Any native input type,
|
|
990
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
875
991
|
"value": {
|
|
876
992
|
"kind": "plain",
|
|
877
993
|
"type": "string"
|
|
@@ -917,6 +1033,14 @@
|
|
|
917
1033
|
"type": "boolean"
|
|
918
1034
|
}
|
|
919
1035
|
},
|
|
1036
|
+
{
|
|
1037
|
+
"name": "unsigned",
|
|
1038
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1039
|
+
"value": {
|
|
1040
|
+
"kind": "plain",
|
|
1041
|
+
"type": "boolean"
|
|
1042
|
+
}
|
|
1043
|
+
},
|
|
920
1044
|
{
|
|
921
1045
|
"name": "autocomplete",
|
|
922
1046
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1021,7 +1145,7 @@
|
|
|
1021
1145
|
"attributes": [
|
|
1022
1146
|
{
|
|
1023
1147
|
"name": "type",
|
|
1024
|
-
"description": "Any native input type,
|
|
1148
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1025
1149
|
"value": {
|
|
1026
1150
|
"kind": "plain",
|
|
1027
1151
|
"type": "string"
|
|
@@ -1067,6 +1191,14 @@
|
|
|
1067
1191
|
"type": "boolean"
|
|
1068
1192
|
}
|
|
1069
1193
|
},
|
|
1194
|
+
{
|
|
1195
|
+
"name": "unsigned",
|
|
1196
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1197
|
+
"value": {
|
|
1198
|
+
"kind": "plain",
|
|
1199
|
+
"type": "boolean"
|
|
1200
|
+
}
|
|
1201
|
+
},
|
|
1070
1202
|
{
|
|
1071
1203
|
"name": "autocomplete",
|
|
1072
1204
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1266,6 +1398,22 @@
|
|
|
1266
1398
|
"kind": "plain",
|
|
1267
1399
|
"type": "number"
|
|
1268
1400
|
}
|
|
1401
|
+
},
|
|
1402
|
+
{
|
|
1403
|
+
"name": "src",
|
|
1404
|
+
"description": "The url the default loader asks for rows; without it the table loads from an in-memory loader fed through withLoader. Stays live: writing it builds the loader again and reloads from the first page, keeping the sort and the filters.",
|
|
1405
|
+
"value": {
|
|
1406
|
+
"kind": "plain",
|
|
1407
|
+
"type": "string"
|
|
1408
|
+
}
|
|
1409
|
+
},
|
|
1410
|
+
{
|
|
1411
|
+
"name": "method",
|
|
1412
|
+
"description": "The http method the default loader sends, GET by default. Stays live, as src does.",
|
|
1413
|
+
"value": {
|
|
1414
|
+
"kind": "plain",
|
|
1415
|
+
"type": "string"
|
|
1416
|
+
}
|
|
1269
1417
|
}
|
|
1270
1418
|
],
|
|
1271
1419
|
"slots": [
|
|
@@ -1277,12 +1425,25 @@
|
|
|
1277
1425
|
"name": "caption",
|
|
1278
1426
|
"description": "The caption of the table."
|
|
1279
1427
|
},
|
|
1428
|
+
{
|
|
1429
|
+
"name": "empty",
|
|
1430
|
+
"description": "Shown in place of the rows when a load returns none, replacing the localized default message. Rendered per load in the rows' own scope, so its expressions read schema, pageRequest, filterRequest and pageResponse: an empty state can tell nothing-there from a filter that matched nothing."
|
|
1431
|
+
},
|
|
1280
1432
|
{
|
|
1281
1433
|
"name": "footer",
|
|
1282
1434
|
"description": "Content rendered in the table footer."
|
|
1283
1435
|
}
|
|
1284
1436
|
],
|
|
1285
|
-
"events": [
|
|
1437
|
+
"events": [
|
|
1438
|
+
{
|
|
1439
|
+
"name": "load:success",
|
|
1440
|
+
"description": "Fired once a load has settled, after the rows are in place and the busy state is gone, carrying the page response and the three requests that asked for it. Not fired for a load a newer one superseded, which owns nothing."
|
|
1441
|
+
},
|
|
1442
|
+
{
|
|
1443
|
+
"name": "load:failure",
|
|
1444
|
+
"description": "Fired when a load rejects, after the error row is shown, carrying the exception and the three requests. Telling this from an empty result is what the aria-busy attribute alone cannot do."
|
|
1445
|
+
}
|
|
1446
|
+
]
|
|
1286
1447
|
},
|
|
1287
1448
|
{
|
|
1288
1449
|
"name": "ful-pagination",
|
|
@@ -1356,7 +1517,7 @@
|
|
|
1356
1517
|
"attributes": [
|
|
1357
1518
|
{
|
|
1358
1519
|
"name": "type",
|
|
1359
|
-
"description": "Any native input type,
|
|
1520
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1360
1521
|
"value": {
|
|
1361
1522
|
"kind": "plain",
|
|
1362
1523
|
"type": "string"
|
|
@@ -1402,6 +1563,14 @@
|
|
|
1402
1563
|
"type": "boolean"
|
|
1403
1564
|
}
|
|
1404
1565
|
},
|
|
1566
|
+
{
|
|
1567
|
+
"name": "unsigned",
|
|
1568
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1569
|
+
"value": {
|
|
1570
|
+
"kind": "plain",
|
|
1571
|
+
"type": "boolean"
|
|
1572
|
+
}
|
|
1573
|
+
},
|
|
1405
1574
|
{
|
|
1406
1575
|
"name": "autocomplete",
|
|
1407
1576
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1410,6 +1579,14 @@
|
|
|
1410
1579
|
"type": "string"
|
|
1411
1580
|
}
|
|
1412
1581
|
},
|
|
1582
|
+
{
|
|
1583
|
+
"name": "operator",
|
|
1584
|
+
"description": "Fixes the operator for the element's life: no menu and no button render, and every tuple carries it. The plural is the menu's whitelist; declaring both warns, the singular winning, and an unknown name warns and pins the filter's default.",
|
|
1585
|
+
"value": {
|
|
1586
|
+
"kind": "plain",
|
|
1587
|
+
"type": "string"
|
|
1588
|
+
}
|
|
1589
|
+
},
|
|
1413
1590
|
{
|
|
1414
1591
|
"name": "disabled",
|
|
1415
1592
|
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
@@ -1490,7 +1667,7 @@
|
|
|
1490
1667
|
"attributes": [
|
|
1491
1668
|
{
|
|
1492
1669
|
"name": "type",
|
|
1493
|
-
"description": "Any native input type,
|
|
1670
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1494
1671
|
"value": {
|
|
1495
1672
|
"kind": "plain",
|
|
1496
1673
|
"type": "string"
|
|
@@ -1536,6 +1713,14 @@
|
|
|
1536
1713
|
"type": "boolean"
|
|
1537
1714
|
}
|
|
1538
1715
|
},
|
|
1716
|
+
{
|
|
1717
|
+
"name": "unsigned",
|
|
1718
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1719
|
+
"value": {
|
|
1720
|
+
"kind": "plain",
|
|
1721
|
+
"type": "boolean"
|
|
1722
|
+
}
|
|
1723
|
+
},
|
|
1539
1724
|
{
|
|
1540
1725
|
"name": "autocomplete",
|
|
1541
1726
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1544,6 +1729,14 @@
|
|
|
1544
1729
|
"type": "string"
|
|
1545
1730
|
}
|
|
1546
1731
|
},
|
|
1732
|
+
{
|
|
1733
|
+
"name": "operator",
|
|
1734
|
+
"description": "Fixes the operator for the element's life: no menu and no button render, and every tuple carries it. The plural is the menu's whitelist; declaring both warns, the singular winning, and an unknown name warns and pins the filter's default.",
|
|
1735
|
+
"value": {
|
|
1736
|
+
"kind": "plain",
|
|
1737
|
+
"type": "string"
|
|
1738
|
+
}
|
|
1739
|
+
},
|
|
1547
1740
|
{
|
|
1548
1741
|
"name": "disabled",
|
|
1549
1742
|
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
@@ -1624,7 +1817,7 @@
|
|
|
1624
1817
|
"attributes": [
|
|
1625
1818
|
{
|
|
1626
1819
|
"name": "type",
|
|
1627
|
-
"description": "Any native input type,
|
|
1820
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1628
1821
|
"value": {
|
|
1629
1822
|
"kind": "plain",
|
|
1630
1823
|
"type": "string"
|
|
@@ -1670,6 +1863,14 @@
|
|
|
1670
1863
|
"type": "boolean"
|
|
1671
1864
|
}
|
|
1672
1865
|
},
|
|
1866
|
+
{
|
|
1867
|
+
"name": "unsigned",
|
|
1868
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
1869
|
+
"value": {
|
|
1870
|
+
"kind": "plain",
|
|
1871
|
+
"type": "boolean"
|
|
1872
|
+
}
|
|
1873
|
+
},
|
|
1673
1874
|
{
|
|
1674
1875
|
"name": "autocomplete",
|
|
1675
1876
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1678,6 +1879,14 @@
|
|
|
1678
1879
|
"type": "string"
|
|
1679
1880
|
}
|
|
1680
1881
|
},
|
|
1882
|
+
{
|
|
1883
|
+
"name": "operator",
|
|
1884
|
+
"description": "Fixes the operator for the element's life: no menu and no button render, and every tuple carries it. The plural is the menu's whitelist; declaring both warns, the singular winning, and an unknown name warns and pins the filter's default.",
|
|
1885
|
+
"value": {
|
|
1886
|
+
"kind": "plain",
|
|
1887
|
+
"type": "string"
|
|
1888
|
+
}
|
|
1889
|
+
},
|
|
1681
1890
|
{
|
|
1682
1891
|
"name": "disabled",
|
|
1683
1892
|
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
@@ -1824,11 +2033,11 @@
|
|
|
1824
2033
|
},
|
|
1825
2034
|
{
|
|
1826
2035
|
"name": "ful-filter-text",
|
|
1827
|
-
"description": "A ful-table filter over text, with an operator such as CONTAINS or STARTS_WITH and a case sensitivity. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.
|
|
2036
|
+
"description": "A ful-table filter over text, with an operator such as CONTAINS or STARTS_WITH and a case sensitivity. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.",
|
|
1828
2037
|
"attributes": [
|
|
1829
2038
|
{
|
|
1830
2039
|
"name": "type",
|
|
1831
|
-
"description": "Any native input type,
|
|
2040
|
+
"description": "Any native input type, the literal textarea to render one, or numeric and decimal, which render a text input carrying that inputmode and filter what can be typed: numeric takes digits and a leading minus, decimal one separator as well, answering it as a dot whatever the keyboard offered. Neither enforces min, max or step, which the native number type still does. Defaults to number under v-type=number, and a declared type wins.",
|
|
1832
2041
|
"value": {
|
|
1833
2042
|
"kind": "plain",
|
|
1834
2043
|
"type": "string"
|
|
@@ -1874,6 +2083,14 @@
|
|
|
1874
2083
|
"type": "boolean"
|
|
1875
2084
|
}
|
|
1876
2085
|
},
|
|
2086
|
+
{
|
|
2087
|
+
"name": "unsigned",
|
|
2088
|
+
"description": "Refuses the leading minus a numeric or decimal field otherwise takes. It narrows the type's own filter rather than replacing it, so a decimal still keeps one separator and still answers with a dot. Meaningless on any other type, where the sign is the native control's business, and a declared keep or reject still outranks it.",
|
|
2089
|
+
"value": {
|
|
2090
|
+
"kind": "plain",
|
|
2091
|
+
"type": "boolean"
|
|
2092
|
+
}
|
|
2093
|
+
},
|
|
1877
2094
|
{
|
|
1878
2095
|
"name": "autocomplete",
|
|
1879
2096
|
"description": "The autofill token the browser classifies the control by, one of the names the html autocomplete grammar defines (name, given-name, street-address, postal-code, one-time-code, off, ...). It is set on the control itself because the control carries form=\"\", which leaves it without a form owner to inherit a form-wide setting from. Read once at the upgrade. A value outside the grammar reads as on, so an identifier of your own does not switch autofill off.",
|
|
@@ -1882,6 +2099,22 @@
|
|
|
1882
2099
|
"type": "string"
|
|
1883
2100
|
}
|
|
1884
2101
|
},
|
|
2102
|
+
{
|
|
2103
|
+
"name": "operator",
|
|
2104
|
+
"description": "Fixes the operator for the element's life: no menu and no button render, and every tuple carries it. The plural is the menu's whitelist; declaring both warns, the singular winning, and an unknown name warns and pins the filter's default.",
|
|
2105
|
+
"value": {
|
|
2106
|
+
"kind": "plain",
|
|
2107
|
+
"type": "string"
|
|
2108
|
+
}
|
|
2109
|
+
},
|
|
2110
|
+
{
|
|
2111
|
+
"name": "sensitivity",
|
|
2112
|
+
"description": "Fixes the case sensitivity for the element's life, on the operator's terms: the button leaves and every tuple carries it.",
|
|
2113
|
+
"value": {
|
|
2114
|
+
"kind": "plain",
|
|
2115
|
+
"type": "string"
|
|
2116
|
+
}
|
|
2117
|
+
},
|
|
1885
2118
|
{
|
|
1886
2119
|
"name": "disabled",
|
|
1887
2120
|
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
@@ -1965,8 +2198,8 @@
|
|
|
1965
2198
|
]
|
|
1966
2199
|
},
|
|
1967
2200
|
{
|
|
1968
|
-
"name": "ful-
|
|
1969
|
-
"description": "A
|
|
2201
|
+
"name": "ful-filter-in",
|
|
2202
|
+
"description": "A ful-table filter over set membership, answering for both of data-jpa's set annotations: InEnum and InList take the same array of values and no operator, differing only in what the server converts them to. The vocabulary comes from wherever a select's does, slotted options or a loader, and the value is an array whether one key was chosen or several, an empty selection contributing nothing rather than an empty array. It picks one key unless multiple is declared, as a ful-select does.",
|
|
1970
2203
|
"attributes": [
|
|
1971
2204
|
{
|
|
1972
2205
|
"name": "name",
|
|
@@ -1986,15 +2219,135 @@
|
|
|
1986
2219
|
},
|
|
1987
2220
|
{
|
|
1988
2221
|
"name": "k-type",
|
|
1989
|
-
"description": "How a key coerces when it arrives from the response or from the value attribute: number, string or
|
|
2222
|
+
"description": "How a key coerces when it arrives from the response or from the value attribute: number, string or boolean.",
|
|
1990
2223
|
"value": {
|
|
1991
2224
|
"kind": "plain",
|
|
1992
2225
|
"type": "string"
|
|
1993
2226
|
}
|
|
1994
2227
|
},
|
|
2228
|
+
{
|
|
2229
|
+
"name": "mode",
|
|
2230
|
+
"description": "chunked asks the endpoint per query instead of fetching the vocabulary once, for a list too large to hold.",
|
|
2231
|
+
"value": {
|
|
2232
|
+
"kind": "plain",
|
|
2233
|
+
"type": "string"
|
|
2234
|
+
}
|
|
2235
|
+
},
|
|
2236
|
+
{
|
|
2237
|
+
"name": "preload",
|
|
2238
|
+
"description": "Fetches the vocabulary while the element upgrades rather than on first use. The field paints immediately either way; the options arrive when they arrive.",
|
|
2239
|
+
"value": {
|
|
2240
|
+
"kind": "plain",
|
|
2241
|
+
"type": "boolean"
|
|
2242
|
+
}
|
|
2243
|
+
},
|
|
2244
|
+
{
|
|
2245
|
+
"name": "revision",
|
|
2246
|
+
"description": "Caches the fetched vocabulary in local storage under this revision; a load under a different one is a miss that evicts the entry. It is the cache's namespace, so a vocabulary that differs per user wants the principal in it. Left valueless, the revision the registry's 'revision' component answers is used, so a page states its build once instead of every element repeating it.",
|
|
2247
|
+
"value": {
|
|
2248
|
+
"kind": "plain",
|
|
2249
|
+
"type": "string"
|
|
2250
|
+
}
|
|
2251
|
+
},
|
|
2252
|
+
{
|
|
2253
|
+
"name": "k-expr",
|
|
2254
|
+
"description": "The expression yielding an option's key, evaluated against each row of the response. Set it together with l-expr to shape a response without a mapper component.",
|
|
2255
|
+
"value": {
|
|
2256
|
+
"kind": "plain",
|
|
2257
|
+
"type": "string"
|
|
2258
|
+
}
|
|
2259
|
+
},
|
|
2260
|
+
{
|
|
2261
|
+
"name": "l-expr",
|
|
2262
|
+
"description": "The expression yielding an option's label, evaluated against each row of the response.",
|
|
2263
|
+
"value": {
|
|
2264
|
+
"kind": "plain",
|
|
2265
|
+
"type": "string"
|
|
2266
|
+
}
|
|
2267
|
+
},
|
|
2268
|
+
{
|
|
2269
|
+
"name": "d-expr",
|
|
2270
|
+
"description": "The expression yielding the rows from the response body; the body itself when absent.",
|
|
2271
|
+
"value": {
|
|
2272
|
+
"kind": "plain",
|
|
2273
|
+
"type": "string"
|
|
2274
|
+
}
|
|
2275
|
+
},
|
|
2276
|
+
{
|
|
2277
|
+
"name": "m-expr",
|
|
2278
|
+
"description": "The expression yielding an option's metadata, evaluated against each row; the whole row when absent.",
|
|
2279
|
+
"value": {
|
|
2280
|
+
"kind": "plain",
|
|
2281
|
+
"type": "string"
|
|
2282
|
+
}
|
|
2283
|
+
},
|
|
2284
|
+
{
|
|
2285
|
+
"name": "response-mapper",
|
|
2286
|
+
"description": "The registered component name that turns a response into { key, label, metadata } entries. The k-expr/l-expr pair takes precedence; without either, the response is read as positional rows.",
|
|
2287
|
+
"value": {
|
|
2288
|
+
"kind": "plain",
|
|
2289
|
+
"type": "string"
|
|
2290
|
+
}
|
|
2291
|
+
},
|
|
2292
|
+
{
|
|
2293
|
+
"name": "operator",
|
|
2294
|
+
"description": "A fixed operator sent in front of the chosen keys, for the field a compare reads rather than a set: absent the value is the bare array an InEnum or an InList takes, present it is [operator, ...keys]. No menu is rendered either way, the operator being the author naming the server's comparison rather than a choice offered to whoever is filtering. The criterion reports it, so a chip can show it.",
|
|
2295
|
+
"value": {
|
|
2296
|
+
"kind": "plain",
|
|
2297
|
+
"type": "string"
|
|
2298
|
+
}
|
|
2299
|
+
},
|
|
2300
|
+
{
|
|
2301
|
+
"name": "disabled",
|
|
2302
|
+
"description": "The field's own disabled claim: the control is disabled and the field is left out of the submitted values, composed with a disabled fieldset ancestry. The property reflects the claim only, matches(':disabled') tells the effective state.",
|
|
2303
|
+
"value": {
|
|
2304
|
+
"kind": "plain",
|
|
2305
|
+
"type": "boolean"
|
|
2306
|
+
}
|
|
2307
|
+
},
|
|
2308
|
+
{
|
|
2309
|
+
"name": "readonly",
|
|
2310
|
+
"description": "Renders the control but does not let it be edited. A readonly field still contributes its value to the form.",
|
|
2311
|
+
"value": {
|
|
2312
|
+
"kind": "plain",
|
|
2313
|
+
"type": "boolean"
|
|
2314
|
+
}
|
|
2315
|
+
},
|
|
2316
|
+
{
|
|
2317
|
+
"name": "required",
|
|
2318
|
+
"description": "Marks the field as required for assistive technologies and shows the required marker on its label.",
|
|
2319
|
+
"value": {
|
|
2320
|
+
"kind": "plain",
|
|
2321
|
+
"type": "boolean"
|
|
2322
|
+
}
|
|
2323
|
+
},
|
|
2324
|
+
{
|
|
2325
|
+
"name": "value",
|
|
2326
|
+
"description": "Comma separated list of the selected keys. Empty contributes nothing, so the table drops the filter rather than sending an empty set.",
|
|
2327
|
+
"value": {
|
|
2328
|
+
"kind": "plain",
|
|
2329
|
+
"type": "string"
|
|
2330
|
+
}
|
|
2331
|
+
},
|
|
2332
|
+
{
|
|
2333
|
+
"name": "multiple",
|
|
2334
|
+
"description": "Always on for this element: a set of one is still a set, and a single selection would answer a bare key where the filter request wants an array.",
|
|
2335
|
+
"value": {
|
|
2336
|
+
"kind": "plain",
|
|
2337
|
+
"type": "boolean"
|
|
2338
|
+
}
|
|
2339
|
+
},
|
|
2340
|
+
{
|
|
2341
|
+
"name": "item-list",
|
|
2342
|
+
"description": "Shows the selection as a ful-item-list under the control as well, in addition to the field itself (the label for a single select, the ful-badge chips when multiple).",
|
|
2343
|
+
"value": {
|
|
2344
|
+
"kind": "plain",
|
|
2345
|
+
"type": "boolean"
|
|
2346
|
+
}
|
|
2347
|
+
},
|
|
1995
2348
|
{
|
|
1996
2349
|
"name": "src",
|
|
1997
|
-
"description": "The url the vocabulary is fetched from. Without it the slotted <option> elements are the whole vocabulary, held in memory.",
|
|
2350
|
+
"description": "The url the vocabulary is fetched from. Without it the slotted <option> elements are the whole vocabulary, held in memory. Stays live: writing it builds the loader again and reloads as reload() does, dropping a selected key the new vocabulary does not know.",
|
|
1998
2351
|
"value": {
|
|
1999
2352
|
"kind": "plain",
|
|
2000
2353
|
"type": "string"
|
|
@@ -2002,7 +2355,65 @@
|
|
|
2002
2355
|
},
|
|
2003
2356
|
{
|
|
2004
2357
|
"name": "method",
|
|
2005
|
-
"description": "The method the vocabulary is fetched with; POST when absent.",
|
|
2358
|
+
"description": "The method the vocabulary is fetched with; POST when absent. Stays live, as src does.",
|
|
2359
|
+
"value": {
|
|
2360
|
+
"kind": "plain",
|
|
2361
|
+
"type": "string"
|
|
2362
|
+
}
|
|
2363
|
+
}
|
|
2364
|
+
],
|
|
2365
|
+
"slots": [
|
|
2366
|
+
{
|
|
2367
|
+
"name": "default",
|
|
2368
|
+
"description": "The label of the field."
|
|
2369
|
+
},
|
|
2370
|
+
{
|
|
2371
|
+
"name": "info",
|
|
2372
|
+
"description": "Extra content rendered next to the label, for a hint or a help icon."
|
|
2373
|
+
},
|
|
2374
|
+
{
|
|
2375
|
+
"name": "before",
|
|
2376
|
+
"description": "An addon rendered inside the input group, before the control."
|
|
2377
|
+
},
|
|
2378
|
+
{
|
|
2379
|
+
"name": "after",
|
|
2380
|
+
"description": "An addon rendered inside the input group, after the control."
|
|
2381
|
+
},
|
|
2382
|
+
{
|
|
2383
|
+
"name": "dropdown",
|
|
2384
|
+
"description": "Replaces the template used to render the options."
|
|
2385
|
+
}
|
|
2386
|
+
],
|
|
2387
|
+
"events": [
|
|
2388
|
+
{
|
|
2389
|
+
"name": "change",
|
|
2390
|
+
"description": "Fired with the selected keys, or undefined when nothing is picked."
|
|
2391
|
+
}
|
|
2392
|
+
]
|
|
2393
|
+
},
|
|
2394
|
+
{
|
|
2395
|
+
"name": "ful-select",
|
|
2396
|
+
"description": "A combobox backed by a loader that acts like a select: the field mirrors the label of a single selection, clicking anywhere on it toggles the dropdown, which opens highlighting the current selection, and Home, End, PageUp, PageDown and Alt+arrows navigate it. A multiple selection renders as ful-badge chips. Without src the slotted options are the vocabulary; with src the options are fetched once (method, POST by default, preload fetching them while upgrading, revision caching them in local storage) or asked per query under mode=chunked, the response shaped through the k-expr/l-expr/d-expr/m-expr expressions or a response-mapper component, and every key coerced as k-type declares. Disabled follows native semantics: the attribute is the field's own claim, honored together with a disabled fieldset ancestry through :disabled, while the property reflects the claim only.",
|
|
2397
|
+
"attributes": [
|
|
2398
|
+
{
|
|
2399
|
+
"name": "name",
|
|
2400
|
+
"description": "The field name the surrounding form submits the selection under.",
|
|
2401
|
+
"value": {
|
|
2402
|
+
"kind": "plain",
|
|
2403
|
+
"type": "string"
|
|
2404
|
+
}
|
|
2405
|
+
},
|
|
2406
|
+
{
|
|
2407
|
+
"name": "loader",
|
|
2408
|
+
"description": "The registered component name the select loads its vocabulary through; loaders:select when absent.",
|
|
2409
|
+
"value": {
|
|
2410
|
+
"kind": "plain",
|
|
2411
|
+
"type": "string"
|
|
2412
|
+
}
|
|
2413
|
+
},
|
|
2414
|
+
{
|
|
2415
|
+
"name": "k-type",
|
|
2416
|
+
"description": "How a key coerces when it arrives from the response or from the value attribute: number, string or boolean.",
|
|
2006
2417
|
"value": {
|
|
2007
2418
|
"kind": "plain",
|
|
2008
2419
|
"type": "string"
|
|
@@ -2026,7 +2437,7 @@
|
|
|
2026
2437
|
},
|
|
2027
2438
|
{
|
|
2028
2439
|
"name": "revision",
|
|
2029
|
-
"description": "Caches the fetched vocabulary in local storage under this revision; a load under a different one is a miss that evicts the entry. It is the cache's namespace, so a vocabulary that differs per user wants the principal in it.",
|
|
2440
|
+
"description": "Caches the fetched vocabulary in local storage under this revision; a load under a different one is a miss that evicts the entry. It is the cache's namespace, so a vocabulary that differs per user wants the principal in it. Left valueless, the revision the registry's 'revision' component answers is used, so a page states its build once instead of every element repeating it.",
|
|
2030
2441
|
"value": {
|
|
2031
2442
|
"kind": "plain",
|
|
2032
2443
|
"type": "string"
|
|
@@ -2098,7 +2509,7 @@
|
|
|
2098
2509
|
},
|
|
2099
2510
|
{
|
|
2100
2511
|
"name": "value",
|
|
2101
|
-
"description": "The selected keys, comma separated, whether or not the select is multiple. A key given here is trimmed and cannot contain a comma; assign such a key through the property instead. The property answers a key for a single select and an array for a multiple one.",
|
|
2512
|
+
"description": "The selected keys, comma separated, whether or not the select is multiple. A key given here is trimmed and cannot contain a comma; assign such a key through the property instead. The property answers a key for a single select and an array for a multiple one. A single select reads a present but empty attribute as the empty key, the one an <option value=\"\"> carries, where an absent attribute means no selection; a multiple select reads it as no keys.",
|
|
2102
2513
|
"value": {
|
|
2103
2514
|
"kind": "plain",
|
|
2104
2515
|
"type": "string"
|
|
@@ -2119,6 +2530,22 @@
|
|
|
2119
2530
|
"kind": "plain",
|
|
2120
2531
|
"type": "boolean"
|
|
2121
2532
|
}
|
|
2533
|
+
},
|
|
2534
|
+
{
|
|
2535
|
+
"name": "src",
|
|
2536
|
+
"description": "The url the vocabulary is fetched from. Without it the slotted <option> elements are the whole vocabulary, held in memory. Stays live: writing it builds the loader again and reloads as reload() does, dropping a selected key the new vocabulary does not know.",
|
|
2537
|
+
"value": {
|
|
2538
|
+
"kind": "plain",
|
|
2539
|
+
"type": "string"
|
|
2540
|
+
}
|
|
2541
|
+
},
|
|
2542
|
+
{
|
|
2543
|
+
"name": "method",
|
|
2544
|
+
"description": "The method the vocabulary is fetched with; POST when absent. Stays live, as src does.",
|
|
2545
|
+
"value": {
|
|
2546
|
+
"kind": "plain",
|
|
2547
|
+
"type": "string"
|
|
2548
|
+
}
|
|
2122
2549
|
}
|
|
2123
2550
|
],
|
|
2124
2551
|
"slots": [
|
|
@@ -2152,7 +2579,7 @@
|
|
|
2152
2579
|
},
|
|
2153
2580
|
{
|
|
2154
2581
|
"name": "ful-dropdown",
|
|
2155
|
-
"description": "The options popup of a ful-select, with a localized no-results message when the search matches nothing. Rarely used on its own.",
|
|
2582
|
+
"description": "The options popup of a ful-select, with a localized no-results message when the search matches nothing. An entry whose metadata.disabled is truthy is refused: its row carries aria-disabled and metadata.reason as its title, the arrows and Home/End walk past it, and a click on it changes nothing. Rarely used on its own.",
|
|
2156
2583
|
"attributes": [
|
|
2157
2584
|
{
|
|
2158
2585
|
"name": "listbox",
|