@fristil/designsystem 0.4.0 → 0.5.1
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/CHANGELOG.md +136 -0
- package/README.md +22 -7
- package/dist/components/frittstaende/connection-status/connection-status.d.ts +28 -0
- package/dist/components/frittstaende/connection-status/connection-status.d.ts.map +1 -0
- package/dist/components/frittstaende/connection-status/connection-status.js +22 -0
- package/dist/components/frittstaende/connection-status/connection-status.js.map +1 -0
- package/dist/components/frittstaende/connection-status/fs-connection-status.d.ts +54 -0
- package/dist/components/frittstaende/connection-status/fs-connection-status.d.ts.map +1 -0
- package/dist/components/frittstaende/connection-status/fs-connection-status.js +123 -0
- package/dist/components/frittstaende/connection-status/fs-connection-status.js.map +1 -0
- package/dist/components/frittstaende/session-timeout/fs-session-timeout.d.ts +56 -0
- package/dist/components/frittstaende/session-timeout/fs-session-timeout.d.ts.map +1 -0
- package/dist/components/frittstaende/session-timeout/fs-session-timeout.js +183 -0
- package/dist/components/frittstaende/session-timeout/fs-session-timeout.js.map +1 -0
- package/dist/components/frittstaende/session-timeout/session-timeout.d.ts +28 -0
- package/dist/components/frittstaende/session-timeout/session-timeout.d.ts.map +1 -0
- package/dist/components/frittstaende/session-timeout/session-timeout.js +22 -0
- package/dist/components/frittstaende/session-timeout/session-timeout.js.map +1 -0
- package/dist/components/frittstaende/toast/fs-toast.d.ts +16 -22
- package/dist/components/frittstaende/toast/fs-toast.d.ts.map +1 -1
- package/dist/components/frittstaende/toast/fs-toast.js +38 -27
- package/dist/components/frittstaende/toast/fs-toast.js.map +1 -1
- package/dist/components/frittstaende/toast/toast.d.ts +34 -0
- package/dist/components/frittstaende/toast/toast.d.ts.map +1 -0
- package/dist/components/frittstaende/toast/toast.js +26 -0
- package/dist/components/frittstaende/toast/toast.js.map +1 -0
- package/dist/components/ramme/error-summary/error-summary.d.ts +39 -0
- package/dist/components/ramme/error-summary/error-summary.d.ts.map +1 -0
- package/dist/components/ramme/error-summary/error-summary.js +31 -0
- package/dist/components/ramme/error-summary/error-summary.js.map +1 -0
- package/dist/components/ramme/error-summary/fs-error-summary.d.ts +16 -42
- package/dist/components/ramme/error-summary/fs-error-summary.d.ts.map +1 -1
- package/dist/components/ramme/error-summary/fs-error-summary.js +57 -92
- package/dist/components/ramme/error-summary/fs-error-summary.js.map +1 -1
- package/dist/components/ramme/field/field-core.d.ts +37 -0
- package/dist/components/ramme/field/field-core.d.ts.map +1 -1
- package/dist/components/ramme/field/field-core.js +37 -0
- package/dist/components/ramme/field/field-core.js.map +1 -1
- package/dist/components/ramme/field/fs-field.d.ts +39 -40
- package/dist/components/ramme/field/fs-field.d.ts.map +1 -1
- package/dist/components/ramme/field/fs-field.js +128 -54
- package/dist/components/ramme/field/fs-field.js.map +1 -1
- package/dist/components/ramme/popover/fs-popover.d.ts +20 -27
- package/dist/components/ramme/popover/fs-popover.d.ts.map +1 -1
- package/dist/components/ramme/popover/fs-popover.js +68 -54
- package/dist/components/ramme/popover/fs-popover.js.map +1 -1
- package/dist/components/ramme/popover/popover.d.ts +43 -0
- package/dist/components/ramme/popover/popover.d.ts.map +1 -0
- package/dist/components/ramme/popover/popover.js +49 -0
- package/dist/components/ramme/popover/popover.js.map +1 -0
- package/dist/components/ramme/suggestion/fs-suggestion.d.ts +75 -0
- package/dist/components/ramme/suggestion/fs-suggestion.d.ts.map +1 -0
- package/dist/components/ramme/suggestion/fs-suggestion.js +232 -0
- package/dist/components/ramme/suggestion/fs-suggestion.js.map +1 -0
- package/dist/components/ramme/suggestion/suggestion.d.ts +97 -0
- package/dist/components/ramme/suggestion/suggestion.d.ts.map +1 -0
- package/dist/components/ramme/suggestion/suggestion.js +79 -0
- package/dist/components/ramme/suggestion/suggestion.js.map +1 -0
- package/dist/components/ramme/tabs/fs-tabs.d.ts +31 -36
- package/dist/components/ramme/tabs/fs-tabs.d.ts.map +1 -1
- package/dist/components/ramme/tabs/fs-tabs.js +62 -84
- package/dist/components/ramme/tabs/fs-tabs.js.map +1 -1
- package/dist/components/ramme/tabs/tabs.d.ts +50 -0
- package/dist/components/ramme/tabs/tabs.d.ts.map +1 -0
- package/dist/components/ramme/tabs/tabs.js +54 -0
- package/dist/components/ramme/tabs/tabs.js.map +1 -0
- package/dist/fs.d.ts +94 -0
- package/dist/fs.d.ts.map +1 -1
- package/dist/fs.js +42 -0
- package/dist/fs.js.map +1 -1
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/jsx/react.d.ts +35 -50
- package/dist/jsx/react.d.ts.map +1 -1
- package/dist/react.d.ts +142 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +77 -2
- package/dist/react.js.map +1 -1
- package/package.json +15 -18
- package/src/components/frittstaende/connection-status/connection-status.css +33 -0
- package/src/components/frittstaende/connection-status/connection-status.ts +41 -0
- package/src/components/frittstaende/connection-status/fs-connection-status.ts +144 -0
- package/src/components/frittstaende/session-timeout/fs-session-timeout.ts +216 -0
- package/src/components/frittstaende/session-timeout/session-timeout.css +43 -0
- package/src/components/frittstaende/session-timeout/session-timeout.ts +42 -0
- package/src/components/frittstaende/toast/fs-toast.ts +39 -30
- package/src/components/frittstaende/toast/toast.ts +45 -0
- package/src/components/ramme/error-summary/error-summary.ts +55 -0
- package/src/components/ramme/error-summary/fs-error-summary.ts +62 -119
- package/src/components/ramme/field/field-core.ts +38 -0
- package/src/components/ramme/field/fs-field.ts +145 -61
- package/src/components/ramme/popover/fs-popover.ts +78 -72
- package/src/components/ramme/popover/popover.ts +79 -0
- package/src/components/ramme/suggestion/fs-suggestion.ts +265 -0
- package/src/components/ramme/suggestion/suggestion.ts +105 -0
- package/src/components/ramme/tabs/fs-tabs.ts +67 -98
- package/src/components/ramme/tabs/tabs.ts +104 -0
- package/dist/components/frittstaende/calendar/fs-calendar.d.ts +0 -52
- package/dist/components/frittstaende/calendar/fs-calendar.d.ts.map +0 -1
- package/dist/components/frittstaende/calendar/fs-calendar.js +0 -462
- package/dist/components/frittstaende/calendar/fs-calendar.js.map +0 -1
- package/dist/components/frittstaende/date-field/fs-date-field.d.ts +0 -110
- package/dist/components/frittstaende/date-field/fs-date-field.d.ts.map +0 -1
- package/dist/components/frittstaende/date-field/fs-date-field.js +0 -264
- package/dist/components/frittstaende/date-field/fs-date-field.js.map +0 -1
- package/dist/components/frittstaende/suggestion/fs-suggestion.d.ts +0 -133
- package/dist/components/frittstaende/suggestion/fs-suggestion.d.ts.map +0 -1
- package/dist/components/frittstaende/suggestion/fs-suggestion.js +0 -280
- package/dist/components/frittstaende/suggestion/fs-suggestion.js.map +0 -1
- package/src/components/frittstaende/calendar/fs-calendar.ts +0 -525
- package/src/components/frittstaende/date-field/date-field.css +0 -54
- package/src/components/frittstaende/date-field/fs-date-field.ts +0 -309
- package/src/components/frittstaende/suggestion/fs-suggestion.ts +0 -333
- /package/src/components/{frittstaende → ramme}/suggestion/suggestion.css +0 -0
|
@@ -1,63 +1,37 @@
|
|
|
1
|
-
import { LitElement } from "lit";
|
|
2
1
|
export declare const FS_ERROR_SUMMARY_TAG: "fs-error-summary";
|
|
3
|
-
export declare const ERROR_SUMMARY_CLASS: "fs-error-summary";
|
|
4
|
-
export declare const ERROR_SUMMARY_TITLE_CLASS: "fs-error-summary__title";
|
|
5
2
|
/**
|
|
6
|
-
*
|
|
3
|
+
* Sender brukeren fra en feil i oppsummeringen til feltet som feilet.
|
|
7
4
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
5
|
+
* Serveren skriver hele boksen med `fs.errorSummary()`: klassen, `role`,
|
|
6
|
+
* `tabindex`, overskriften og lista. Komponenten lager ingenting. Den gjorde
|
|
7
|
+
* det før, og da forsvant både klassen og overskriften ved første morfing i
|
|
8
|
+
* Datastar, uten å komme tilbake.
|
|
11
9
|
*
|
|
12
|
-
*
|
|
10
|
+
* Det som er igjen er to ting nettleseren ikke gjør selv:
|
|
11
|
+
*
|
|
12
|
+
* 1. Fokus flyttes til boksen når den kommer til syne, så den som hører siden
|
|
13
13
|
* får vite at innsendingen stoppet.
|
|
14
|
-
* 2.
|
|
14
|
+
* 2. Fokus gis til selve kontrollen når en lenke følges. En vanlig ankerlenke
|
|
15
15
|
* ruller bare dit, og neste tastetrykk fortsetter der fokus sto før.
|
|
16
|
-
* 3. Holder boksen skjult mens lista er tom, så en tom overskrift ikke blir
|
|
17
|
-
* stående i skjemaet.
|
|
18
16
|
*
|
|
19
17
|
* ```html
|
|
20
|
-
* <fs-error-summary
|
|
18
|
+
* <fs-error-summary class="fs-error-summary" role="alert" tabindex="-1">
|
|
19
|
+
* <h2 class="fs-error-summary__title">Skjemaet har to feil</h2>
|
|
21
20
|
* <ul class="fs-list">
|
|
22
21
|
* <li><a href="#epost">Skriv en gyldig e-postadresse</a></li>
|
|
23
22
|
* </ul>
|
|
24
23
|
* </fs-error-summary>
|
|
25
24
|
* ```
|
|
26
25
|
*/
|
|
27
|
-
export declare class FsErrorSummary extends
|
|
28
|
-
static
|
|
29
|
-
heading: {
|
|
30
|
-
type: StringConstructor;
|
|
31
|
-
};
|
|
32
|
-
autofocus: {
|
|
33
|
-
type: BooleanConstructor;
|
|
34
|
-
reflect: boolean;
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
/** Overskriften over lista. */
|
|
38
|
-
heading: string;
|
|
39
|
-
/** Flytt fokus hit når boksen kommer til syne. Standard: på. */
|
|
40
|
-
autofocus: boolean;
|
|
26
|
+
export declare class FsErrorSummary extends HTMLElement {
|
|
27
|
+
static observedAttributes: string[];
|
|
41
28
|
private hasFocused;
|
|
42
|
-
/** Tittelen komponenten selv har laget, til forskjell fra konsumentens. */
|
|
43
|
-
private ownTitle?;
|
|
44
|
-
createRenderRoot(): this;
|
|
45
|
-
render(): import("lit").TemplateResult<1>;
|
|
46
|
-
/**
|
|
47
|
-
* Ser etter at lista med feil endrer seg.
|
|
48
|
-
*
|
|
49
|
-
* Komponenten rendrer i vanlig DOM, og da melder ikke `slotchange` fra når
|
|
50
|
-
* konsumenten bytter ut innholdet. Feilene kommer og går mens brukeren
|
|
51
|
-
* fyller ut skjemaet, så endringen må observeres.
|
|
52
|
-
*/
|
|
53
29
|
private observer?;
|
|
54
|
-
private
|
|
30
|
+
private readonly links;
|
|
55
31
|
connectedCallback(): void;
|
|
32
|
+
attributeChangedCallback(): void;
|
|
56
33
|
disconnectedCallback(): void;
|
|
57
|
-
|
|
58
|
-
updated(): void;
|
|
59
|
-
private handleSlotChange;
|
|
60
|
-
private get items();
|
|
34
|
+
private get shouldFocus();
|
|
61
35
|
private sync;
|
|
62
36
|
private handleLinkClick;
|
|
63
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-error-summary.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/error-summary/fs-error-summary.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"fs-error-summary.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/error-summary/fs-error-summary.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,EAAG,kBAA2B,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C,MAAM,CAAC,kBAAkB,WAA0B;IAEnD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IAErD,iBAAiB,IAAI,IAAI;IASzB,wBAAwB,IAAI,IAAI;IAOhC,oBAAoB,IAAI,IAAI;IAS5B,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,CAAC,IAAI;IAwBZ,OAAO,CAAC,eAAe,CA6BtB;CACF;AAYD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAA;KACnC;CACF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,qBAAuB,GAAG,IAAI,CAIzE"}
|
|
@@ -1,53 +1,51 @@
|
|
|
1
|
-
import { html, LitElement } from "lit";
|
|
2
1
|
export const FS_ERROR_SUMMARY_TAG = "fs-error-summary";
|
|
3
|
-
export const ERROR_SUMMARY_CLASS = "fs-error-summary";
|
|
4
|
-
export const ERROR_SUMMARY_TITLE_CLASS = "fs-error-summary__title";
|
|
5
2
|
/**
|
|
6
|
-
*
|
|
3
|
+
* Sender brukeren fra en feil i oppsummeringen til feltet som feilet.
|
|
7
4
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
5
|
+
* Serveren skriver hele boksen med `fs.errorSummary()`: klassen, `role`,
|
|
6
|
+
* `tabindex`, overskriften og lista. Komponenten lager ingenting. Den gjorde
|
|
7
|
+
* det før, og da forsvant både klassen og overskriften ved første morfing i
|
|
8
|
+
* Datastar, uten å komme tilbake.
|
|
11
9
|
*
|
|
12
|
-
*
|
|
10
|
+
* Det som er igjen er to ting nettleseren ikke gjør selv:
|
|
11
|
+
*
|
|
12
|
+
* 1. Fokus flyttes til boksen når den kommer til syne, så den som hører siden
|
|
13
13
|
* får vite at innsendingen stoppet.
|
|
14
|
-
* 2.
|
|
14
|
+
* 2. Fokus gis til selve kontrollen når en lenke følges. En vanlig ankerlenke
|
|
15
15
|
* ruller bare dit, og neste tastetrykk fortsetter der fokus sto før.
|
|
16
|
-
* 3. Holder boksen skjult mens lista er tom, så en tom overskrift ikke blir
|
|
17
|
-
* stående i skjemaet.
|
|
18
16
|
*
|
|
19
17
|
* ```html
|
|
20
|
-
* <fs-error-summary
|
|
18
|
+
* <fs-error-summary class="fs-error-summary" role="alert" tabindex="-1">
|
|
19
|
+
* <h2 class="fs-error-summary__title">Skjemaet har to feil</h2>
|
|
21
20
|
* <ul class="fs-list">
|
|
22
21
|
* <li><a href="#epost">Skriv en gyldig e-postadresse</a></li>
|
|
23
22
|
* </ul>
|
|
24
23
|
* </fs-error-summary>
|
|
25
24
|
* ```
|
|
26
25
|
*/
|
|
27
|
-
export class FsErrorSummary extends
|
|
26
|
+
export class FsErrorSummary extends HTMLElement {
|
|
28
27
|
constructor() {
|
|
29
28
|
super(...arguments);
|
|
30
|
-
/** Overskriften over lista. */
|
|
31
|
-
this.heading = "Skjemaet har feil";
|
|
32
|
-
/** Flytt fokus hit når boksen kommer til syne. Standard: på. */
|
|
33
|
-
this.autofocus = true;
|
|
34
29
|
this.hasFocused = false;
|
|
35
|
-
this.
|
|
36
|
-
this.handleSlotChange = () => {
|
|
37
|
-
this.sync();
|
|
38
|
-
};
|
|
30
|
+
this.links = new Set();
|
|
39
31
|
this.handleLinkClick = (event) => {
|
|
40
32
|
const link = event.currentTarget;
|
|
41
33
|
const id = link.getAttribute("href")?.slice(1);
|
|
42
34
|
if (!id)
|
|
43
35
|
return;
|
|
44
|
-
|
|
36
|
+
// Oppslaget går mot rota komponenten selv står i, ikke mot `document`.
|
|
37
|
+
// Ligger skjemaet i en skyggerot, som i en forhåndsvisning eller inne i
|
|
38
|
+
// en annen komponent, finner `document.getElementById` ingenting, og
|
|
39
|
+
// lenken blir en vanlig ankerlenke uten fokusflytting.
|
|
40
|
+
const rot = this.getRootNode();
|
|
41
|
+
const target = rot.getElementById?.(id) ?? document.getElementById(id);
|
|
45
42
|
if (!target)
|
|
46
43
|
return;
|
|
47
44
|
event.preventDefault();
|
|
48
45
|
// Er lenken til en ledetekst, skal fokus til kontrollen den peker på.
|
|
49
46
|
const control = target instanceof HTMLLabelElement && target.htmlFor
|
|
50
|
-
?
|
|
47
|
+
? (rot.getElementById?.(target.htmlFor) ??
|
|
48
|
+
document.getElementById(target.htmlFor))
|
|
51
49
|
: target;
|
|
52
50
|
const focusable = control ?? target;
|
|
53
51
|
if (!focusable.hasAttribute("tabindex") && !isFocusable(focusable)) {
|
|
@@ -57,89 +55,56 @@ export class FsErrorSummary extends LitElement {
|
|
|
57
55
|
focusable.scrollIntoView({ block: "center", behavior: "smooth" });
|
|
58
56
|
};
|
|
59
57
|
}
|
|
60
|
-
createRenderRoot() {
|
|
61
|
-
return this;
|
|
62
|
-
}
|
|
63
|
-
render() {
|
|
64
|
-
return html `<slot @slotchange=${this.handleSlotChange}></slot>`;
|
|
65
|
-
}
|
|
66
58
|
connectedCallback() {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
});
|
|
59
|
+
// Feilene kommer og går mens brukeren retter, og `slotchange` melder ikke
|
|
60
|
+
// fra i vanlig DOM. Bare childList: komponenten setter ingen attributter
|
|
61
|
+
// på barna, så observatøren kan ikke utløse seg selv.
|
|
62
|
+
this.observer = new MutationObserver(() => this.sync());
|
|
72
63
|
this.observer.observe(this, { childList: true, subtree: true });
|
|
64
|
+
this.sync();
|
|
65
|
+
}
|
|
66
|
+
attributeChangedCallback() {
|
|
67
|
+
// Serveren kan sende boksen skjult og senere bare ta bort `hidden` på
|
|
68
|
+
// den samme noden. Uten dette får en oppsummering som nettopp ble synlig
|
|
69
|
+
// aldri fokus, og det er hele grunnen til at komponenten finnes.
|
|
70
|
+
if (this.isConnected)
|
|
71
|
+
this.sync();
|
|
73
72
|
}
|
|
74
73
|
disconnectedCallback() {
|
|
75
74
|
this.observer?.disconnect();
|
|
76
75
|
this.observer = undefined;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
this.
|
|
81
|
-
}
|
|
82
|
-
updated() {
|
|
83
|
-
this.sync();
|
|
76
|
+
for (const link of this.links) {
|
|
77
|
+
link.removeEventListener("click", this.handleLinkClick);
|
|
78
|
+
}
|
|
79
|
+
this.links.clear();
|
|
84
80
|
}
|
|
85
|
-
get
|
|
86
|
-
|
|
81
|
+
get shouldFocus() {
|
|
82
|
+
const value = this.getAttribute("autofocus");
|
|
83
|
+
return value !== "false";
|
|
87
84
|
}
|
|
88
85
|
sync() {
|
|
89
|
-
|
|
86
|
+
const links = [
|
|
87
|
+
...this.querySelectorAll("li a[href^='#']"),
|
|
88
|
+
];
|
|
89
|
+
if (links.length === 0) {
|
|
90
|
+
this.hasFocused = false;
|
|
90
91
|
return;
|
|
91
|
-
this.syncing = true;
|
|
92
|
-
try {
|
|
93
|
-
const links = this.items;
|
|
94
|
-
const empty = links.length === 0;
|
|
95
|
-
this.hidden = empty;
|
|
96
|
-
if (empty) {
|
|
97
|
-
this.hasFocused = false;
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
// Boksen er selve elementet. Vi flytter ikke konsumentens markup inn i
|
|
101
|
-
// et omslag: da ville Lit-delen vår og innholdet byttet plass i DOM-en.
|
|
102
|
-
this.classList.add(ERROR_SUMMARY_CLASS);
|
|
103
|
-
this.setAttribute("role", "alert");
|
|
104
|
-
this.tabIndex = -1;
|
|
105
|
-
let title = this.querySelector(`.${ERROR_SUMMARY_TITLE_CLASS}`);
|
|
106
|
-
if (!title) {
|
|
107
|
-
title = document.createElement("h2");
|
|
108
|
-
title.className = ERROR_SUMMARY_TITLE_CLASS;
|
|
109
|
-
this.prepend(title);
|
|
110
|
-
this.ownTitle = title;
|
|
111
|
-
}
|
|
112
|
-
// Overskriften følger `heading` så lenge det er vi som har laget den.
|
|
113
|
-
// Antallet feil endrer seg mens brukeren retter, og en overskrift som
|
|
114
|
-
// ble stående på det første tallet er verre enn ingen: den som hører
|
|
115
|
-
// siden får vite at det er to feil igjen når det er én.
|
|
116
|
-
// Har konsumenten skrevet tittelen selv, er den deres.
|
|
117
|
-
//
|
|
118
|
-
// Sammenligningen er ikke pynt: å skrive den samme teksten på nytt
|
|
119
|
-
// teller som en endring for MutationObserver, og da kaller den sync()
|
|
120
|
-
// igjen i det uendelige.
|
|
121
|
-
const skalSkrive = title === this.ownTitle || !title.textContent?.trim();
|
|
122
|
-
if (skalSkrive && title.textContent !== this.heading) {
|
|
123
|
-
title.textContent = this.heading;
|
|
124
|
-
}
|
|
125
|
-
for (const link of links) {
|
|
126
|
-
link.removeEventListener("click", this.handleLinkClick);
|
|
127
|
-
link.addEventListener("click", this.handleLinkClick);
|
|
128
|
-
}
|
|
129
|
-
if (this.autofocus && !this.hasFocused) {
|
|
130
|
-
this.hasFocused = true;
|
|
131
|
-
this.focus();
|
|
132
|
-
}
|
|
133
92
|
}
|
|
134
|
-
|
|
135
|
-
this.
|
|
93
|
+
for (const link of links) {
|
|
94
|
+
if (this.links.has(link))
|
|
95
|
+
continue;
|
|
96
|
+
link.addEventListener("click", this.handleLinkClick);
|
|
97
|
+
this.links.add(link);
|
|
98
|
+
}
|
|
99
|
+
// Boksen er skjult av serveren når lista er tom. Er den synlig nå, og vi
|
|
100
|
+
// ikke har flyttet fokus hit ennå, er det denne innsendingen som feilet.
|
|
101
|
+
if (this.shouldFocus && !this.hasFocused && !this.hidden) {
|
|
102
|
+
this.hasFocused = true;
|
|
103
|
+
this.focus();
|
|
136
104
|
}
|
|
137
105
|
}
|
|
138
106
|
}
|
|
139
|
-
FsErrorSummary.
|
|
140
|
-
heading: { type: String },
|
|
141
|
-
autofocus: { type: Boolean, reflect: true },
|
|
142
|
-
};
|
|
107
|
+
FsErrorSummary.observedAttributes = ["autofocus", "hidden"];
|
|
143
108
|
function isFocusable(element) {
|
|
144
109
|
return (element instanceof HTMLInputElement ||
|
|
145
110
|
element instanceof HTMLSelectElement ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-error-summary.js","sourceRoot":"","sources":["../../../../src/components/ramme/error-summary/fs-error-summary.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"fs-error-summary.js","sourceRoot":"","sources":["../../../../src/components/ramme/error-summary/fs-error-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,4 +67,41 @@ export declare function createFieldId(): string;
|
|
|
67
67
|
*/
|
|
68
68
|
export declare function joinDescribedBy(ids: Array<string | undefined | false>): string | undefined;
|
|
69
69
|
export declare function computeFieldAttributes(options?: FieldOptions): FieldAttributes;
|
|
70
|
+
/**
|
|
71
|
+
* Attributtene `<fs-field>` setter, per element den rører.
|
|
72
|
+
*
|
|
73
|
+
* Lista trengs bare når to ting gjelder samtidig.
|
|
74
|
+
*
|
|
75
|
+
* Lages markupen med JavaScript, skal den kalle `computeFieldAttributes` og
|
|
76
|
+
* skrive attributtene selv. Da trengs verken komponenten eller denne lista.
|
|
77
|
+
* Blir markupen til uten JavaScript, i en Go-mal eller håndskrevet HTML, gjør
|
|
78
|
+
* `<fs-field>` koblingen i nettleseren, og på en side serveren sender én gang
|
|
79
|
+
* er det alt som skal til.
|
|
80
|
+
*
|
|
81
|
+
* Oppdaterer serveren det samme området mens brukeren holder på, som i en
|
|
82
|
+
* Datastar- eller htmx-app, må malen i tillegg skrive lista som
|
|
83
|
+
* `data-preserve-attr` på hvert av de tre elementene. Morfingen leser den fra
|
|
84
|
+
* serverens node, per element, så komponenten kan ikke beskytte seg selv.
|
|
85
|
+
*
|
|
86
|
+
* Det holder ikke å beskytte kontrollen alene. Komponenten legger også
|
|
87
|
+
* `fs-label` og markeringene på ledeteksten, og skjuler feilmeldingen. Uten
|
|
88
|
+
* lister på de to andre forsvinner klassen og feilmeldingen ved neste
|
|
89
|
+
* morfing, som er nøyaktig den feilen kontrakten skal hindre.
|
|
90
|
+
*
|
|
91
|
+
* ```html
|
|
92
|
+
* <label class="fs-label" for="epost"
|
|
93
|
+
* data-preserve-attr="class data-required data-optional aria-disabled">E-post</label>
|
|
94
|
+
* <input class="fs-input" id="epost"
|
|
95
|
+
* data-preserve-attr="id aria-describedby aria-invalid data-state disabled aria-disabled">
|
|
96
|
+
* <p class="fs-error-text" hidden data-preserve-attr="hidden">Skriv en gyldig adresse.</p>
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export declare const FIELD_PRESERVED_ATTRIBUTES: {
|
|
100
|
+
/** På ledeteksten. */
|
|
101
|
+
readonly label: "class data-required data-optional aria-disabled";
|
|
102
|
+
/** På selve kontrollen. */
|
|
103
|
+
readonly control: "id aria-describedby aria-invalid data-state disabled aria-disabled";
|
|
104
|
+
/** På feilmeldingen. */
|
|
105
|
+
readonly error: "hidden";
|
|
106
|
+
};
|
|
70
107
|
//# sourceMappingURL=field-core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-core.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/field/field-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGrE;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE;QACL,KAAK,EAAE,UAAU,CAAA;QACjB,GAAG,EAAE,MAAM,CAAA;QACX,eAAe,CAAC,EAAE,cAAc,CAAA;QAChC,eAAe,CAAC,EAAE,EAAE,CAAA;QACpB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAA;QACV,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,YAAY,CAAC,EAAE,SAAS,CAAA;QACxB,QAAQ,CAAC,EAAE,IAAI,CAAA;KAChB,CAAA;IACD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACpB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,CAAA;IACpC,gFAAgF;IAChF,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAID,mDAAmD;AACnD,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,GACrC,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,YAAiB,GACzB,eAAe,CA2CjB"}
|
|
1
|
+
{"version":3,"file":"field-core.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/field/field-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGrE;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE;QACL,KAAK,EAAE,UAAU,CAAA;QACjB,GAAG,EAAE,MAAM,CAAA;QACX,eAAe,CAAC,EAAE,cAAc,CAAA;QAChC,eAAe,CAAC,EAAE,EAAE,CAAA;QACpB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAA;QACV,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,YAAY,CAAC,EAAE,SAAS,CAAA;QACxB,QAAQ,CAAC,EAAE,IAAI,CAAA;KAChB,CAAA;IACD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACpB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,CAAA;IACpC,gFAAgF;IAChF,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAID,mDAAmD;AACnD,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,GACrC,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,YAAiB,GACzB,eAAe,CA2CjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,0BAA0B;IACrC,sBAAsB;;IAEtB,2BAA2B;;IAE3B,wBAAwB;;CAEhB,CAAA"}
|
|
@@ -57,4 +57,41 @@ export function computeFieldAttributes(options = {}) {
|
|
|
57
57
|
state: invalid ? "invalid" : "default",
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Attributtene `<fs-field>` setter, per element den rører.
|
|
62
|
+
*
|
|
63
|
+
* Lista trengs bare når to ting gjelder samtidig.
|
|
64
|
+
*
|
|
65
|
+
* Lages markupen med JavaScript, skal den kalle `computeFieldAttributes` og
|
|
66
|
+
* skrive attributtene selv. Da trengs verken komponenten eller denne lista.
|
|
67
|
+
* Blir markupen til uten JavaScript, i en Go-mal eller håndskrevet HTML, gjør
|
|
68
|
+
* `<fs-field>` koblingen i nettleseren, og på en side serveren sender én gang
|
|
69
|
+
* er det alt som skal til.
|
|
70
|
+
*
|
|
71
|
+
* Oppdaterer serveren det samme området mens brukeren holder på, som i en
|
|
72
|
+
* Datastar- eller htmx-app, må malen i tillegg skrive lista som
|
|
73
|
+
* `data-preserve-attr` på hvert av de tre elementene. Morfingen leser den fra
|
|
74
|
+
* serverens node, per element, så komponenten kan ikke beskytte seg selv.
|
|
75
|
+
*
|
|
76
|
+
* Det holder ikke å beskytte kontrollen alene. Komponenten legger også
|
|
77
|
+
* `fs-label` og markeringene på ledeteksten, og skjuler feilmeldingen. Uten
|
|
78
|
+
* lister på de to andre forsvinner klassen og feilmeldingen ved neste
|
|
79
|
+
* morfing, som er nøyaktig den feilen kontrakten skal hindre.
|
|
80
|
+
*
|
|
81
|
+
* ```html
|
|
82
|
+
* <label class="fs-label" for="epost"
|
|
83
|
+
* data-preserve-attr="class data-required data-optional aria-disabled">E-post</label>
|
|
84
|
+
* <input class="fs-input" id="epost"
|
|
85
|
+
* data-preserve-attr="id aria-describedby aria-invalid data-state disabled aria-disabled">
|
|
86
|
+
* <p class="fs-error-text" hidden data-preserve-attr="hidden">Skriv en gyldig adresse.</p>
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export const FIELD_PRESERVED_ATTRIBUTES = {
|
|
90
|
+
/** På ledeteksten. */
|
|
91
|
+
label: "class data-required data-optional aria-disabled",
|
|
92
|
+
/** På selve kontrollen. */
|
|
93
|
+
control: "id aria-describedby aria-invalid data-state disabled aria-disabled",
|
|
94
|
+
/** På feilmeldingen. */
|
|
95
|
+
error: "hidden",
|
|
96
|
+
};
|
|
60
97
|
//# sourceMappingURL=field-core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-core.js","sourceRoot":"","sources":["../../../../src/components/ramme/field/field-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAwDhD,IAAI,OAAO,GAAG,CAAC,CAAA;AAEf,mDAAmD;AACnD,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,CAAA;IACZ,OAAO,YAAY,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAsC;IAEtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE;YAAE,SAAQ;QACjB,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,UAAwB,EAAE;IAE1B,MAAM,EACJ,EAAE,GAAG,aAAa,EAAE,EACpB,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,KAAK,EACb,QAAQ,EACR,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,EAAE,EAChB,MAAM,GAAG,GAAG,EAAE,OAAO,EACrB,OAAO,GAAG,GAAG,EAAE,QAAQ,GACxB,GAAG,OAAO,CAAA;IAEX,OAAO;QACL,KAAK,EAAE,UAAU,CAAC;YAChB,KAAK,EAAE,UAAmB;YAC1B,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,QAAQ;YACzB,eAAe,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAY,CAAC,CAAC,CAAC,SAAS;YAClE,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,SAAS;SAC1D,CAAC;QACF,OAAO,EAAE,UAAU,CAAC;YAClB,EAAE;YACF,kBAAkB,EAAE,eAAe,CAAC;gBAClC,IAAI,IAAI,MAAM;gBACd,OAAO,IAAI,KAAK,IAAI,OAAO;gBAC3B,GAAG,WAAW;aACf,CAAC;YACF,cAAc,EAAE,OAAO,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,SAAS;YACvD,sEAAsE;YACtE,wEAAwE;YACxE,8DAA8D;YAC9D,YAAY,EAAE,OAAO,CAAC,CAAC,CAAE,SAAmB,CAAC,CAAC,CAAC,SAAS;YACxD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAE,IAAc,CAAC,CAAC,CAAC,SAAS;SACjD,CAAC;QACF,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;QACpB,KAAK,EAAE,UAAU,CAAC;YAChB,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAc;SAC9C,CAAC;QACF,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACvC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"field-core.js","sourceRoot":"","sources":["../../../../src/components/ramme/field/field-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAwDhD,IAAI,OAAO,GAAG,CAAC,CAAA;AAEf,mDAAmD;AACnD,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,CAAA;IACZ,OAAO,YAAY,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAsC;IAEtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE;YAAE,SAAQ;QACjB,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,UAAwB,EAAE;IAE1B,MAAM,EACJ,EAAE,GAAG,aAAa,EAAE,EACpB,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,KAAK,EACb,QAAQ,EACR,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,EAAE,EAChB,MAAM,GAAG,GAAG,EAAE,OAAO,EACrB,OAAO,GAAG,GAAG,EAAE,QAAQ,GACxB,GAAG,OAAO,CAAA;IAEX,OAAO;QACL,KAAK,EAAE,UAAU,CAAC;YAChB,KAAK,EAAE,UAAmB;YAC1B,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,QAAQ;YACzB,eAAe,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAY,CAAC,CAAC,CAAC,SAAS;YAClE,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,SAAS;SAC1D,CAAC;QACF,OAAO,EAAE,UAAU,CAAC;YAClB,EAAE;YACF,kBAAkB,EAAE,eAAe,CAAC;gBAClC,IAAI,IAAI,MAAM;gBACd,OAAO,IAAI,KAAK,IAAI,OAAO;gBAC3B,GAAG,WAAW;aACf,CAAC;YACF,cAAc,EAAE,OAAO,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,SAAS;YACvD,sEAAsE;YACtE,wEAAwE;YACxE,8DAA8D;YAC9D,YAAY,EAAE,OAAO,CAAC,CAAC,CAAE,SAAmB,CAAC,CAAC,CAAC,SAAS;YACxD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAE,IAAc,CAAC,CAAC,CAAC,SAAS;SACjD,CAAC;QACF,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;QACpB,KAAK,EAAE,UAAU,CAAC;YAChB,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAc;SAC9C,CAAC;QACF,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACvC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,sBAAsB;IACtB,KAAK,EAAE,iDAAiD;IACxD,2BAA2B;IAC3B,OAAO,EAAE,oEAAoE;IAC7E,wBAAwB;IACxB,KAAK,EAAE,QAAQ;CACP,CAAA"}
|
|
@@ -1,44 +1,43 @@
|
|
|
1
|
-
import { LitElement } from "lit";
|
|
2
1
|
export declare const FS_FIELD_TAG: "fs-field";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
requiredMarker: "none" | "symbol" | "text";
|
|
34
|
-
controlId
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
private
|
|
2
|
+
/**
|
|
3
|
+
* Kobler ledetekst, kontroll, hjelpetekst og feilmelding i vanlig DOM.
|
|
4
|
+
*
|
|
5
|
+
* Komponenten er for markup som blir til uten JavaScript: en Go-mal, en
|
|
6
|
+
* PHP-fil, en Razor-visning eller håndskrevet HTML. Lages markupen med
|
|
7
|
+
* JavaScript, uansett hvor koden kjører, skal `fs.field()` skrive
|
|
8
|
+
* attributtene i stedet, og da trengs ikke dette elementet.
|
|
9
|
+
*
|
|
10
|
+
* Komponenten rendrer ingenting. Den satte tidligere et `<slot>`-element inn i
|
|
11
|
+
* vanlig DOM, og siden serveren ikke visste om det, fjernet Datastars morfing
|
|
12
|
+
* det ved hver patch. Se `FIELD_PRESERVED_ATTRIBUTES` for hva serveren må
|
|
13
|
+
* skrive for at koblingen skal overleve en morfing.
|
|
14
|
+
*/
|
|
15
|
+
export declare class FsField extends HTMLElement {
|
|
16
|
+
static observedAttributes: string[];
|
|
17
|
+
private observer?;
|
|
18
|
+
/**
|
|
19
|
+
* Egenskapene speiler attributtene.
|
|
20
|
+
*
|
|
21
|
+
* Tilstanden bor i attributtet og ikke i et felt på klassen, slik at det
|
|
22
|
+
* serveren sendte og det komponenten mener alltid er det samme. En egen
|
|
23
|
+
* `invalid`-variabel ville kunne si noe annet enn markupen etter en morfing.
|
|
24
|
+
*/
|
|
25
|
+
get invalid(): boolean;
|
|
26
|
+
set invalid(value: boolean);
|
|
27
|
+
get disabled(): boolean;
|
|
28
|
+
set disabled(value: boolean);
|
|
29
|
+
get optional(): boolean;
|
|
30
|
+
set optional(value: boolean);
|
|
31
|
+
get requiredMarker(): "none" | "symbol" | "text";
|
|
32
|
+
set requiredMarker(value: "none" | "symbol" | "text");
|
|
33
|
+
get controlId(): string | undefined;
|
|
34
|
+
set controlId(value: string | undefined);
|
|
35
|
+
get describedBy(): string | undefined;
|
|
36
|
+
set describedBy(value: string | undefined);
|
|
37
|
+
connectedCallback(): void;
|
|
38
|
+
disconnectedCallback(): void;
|
|
39
|
+
attributeChangedCallback(): void;
|
|
40
|
+
private sync;
|
|
42
41
|
}
|
|
43
42
|
declare global {
|
|
44
43
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-field.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/field/fs-field.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fs-field.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/field/fs-field.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,EAAG,UAAmB,CAAA;AAkB/C;;;;;;;;;;;;GAYG;AACH,qBAAa,OAAQ,SAAQ,WAAW;IACtC,MAAM,CAAC,kBAAkB,WAOxB;IAED,OAAO,CAAC,QAAQ,CAAC,CAAkB;IAEnC;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,QAAQ,GAAG,MAAM,CAG/C;IAED,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,EAGnD;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAGtC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAGxC;IAED,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,IAAI,IAAI;IAIhC,OAAO,CAAC,IAAI;CAuGb;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAA;KACpB;CACF;AAED,wBAAgB,aAAa,CAAC,OAAO,aAAe,GAAG,IAAI,CAI1D"}
|