scb-wc 0.1.34 → 0.1.35
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 +22 -41
- package/all.js +2 -0
- package/index.js +90 -88
- package/mvc/components/all.js +2 -0
- package/mvc/components/scb-accordion/scb-accordion-item.js +1 -1
- package/mvc/{vendor → components/scb-chevron}/scb-chevron.js +1 -1
- package/mvc/components/scb-collapse/scb-collapse.js +6 -6
- package/mvc/components/scb-datepicker/scb-datepicker.js +296 -0
- package/mvc/components/scb-dropdown/scb-dropdown.js +1 -1
- package/mvc/components/scb-menu/scb-menu-item.js +1 -1
- package/mvc/components/scb-select/scb-select.js +1 -1
- package/mvc/components/scb-textfield/scb-textfield.js +24 -319
- package/mvc/components/scb-toc/scb-toc-item.js +1 -1
- package/package.json +2 -2
- package/scb-chevron/scb-chevron.js +1 -0
- package/scb-collapse/scb-collapse.js +28 -15
- package/scb-components/index.d.ts +94 -0
- package/scb-components/scb-chevron/scb-chevron.d.ts +11 -0
- package/scb-components/scb-datepicker/scb-datepicker.d.ts +39 -0
- package/scb-datepicker/scb-datepicker.js +1 -0
- package/scb-wc.bundle.js +216 -216
- package/scb-wc.d.ts +188 -184
- package/scb-wc-public-entry/index.d.ts +0 -92
package/README.md
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
# Om SCB Web Components
|
|
1
|
+
# Om SCB Web Components Preview
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> ⚠️ **Previewkanal**
|
|
4
|
+
> Installera `scb-wc` via `@next` för komponenter under utveckling. API, utseende och beteende kan ändras eller tas bort mellan versioner.
|
|
5
|
+
|
|
6
|
+
SCB Web Components(test) finns för att underlätta skapandet av enhetliga, tillgängliga och användbara webbapplikationer.
|
|
4
7
|
|
|
5
8
|
Komponenterna bygger på:
|
|
6
9
|
- [Lit](https://lit.dev/)
|
|
@@ -8,54 +11,32 @@ Komponenterna bygger på:
|
|
|
8
11
|
|
|
9
12
|
## Storybook och dokumentation (internt)
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
Previewkomponenterna dokumenteras och demonstreras i Storybook på SCB:s interna testadress:
|
|
12
15
|
|
|
13
|
-
-
|
|
16
|
+
- Test: <https://webcomponentstest.scb.intra>
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
Den publika/stabila Storybooken finns på:
|
|
16
19
|
|
|
17
|
-
-
|
|
20
|
+
- Prod: <https://webcomponents.scb.intra>
|
|
18
21
|
|
|
19
22
|
---
|
|
20
23
|
|
|
21
24
|
## Kom igång
|
|
22
25
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
```sh
|
|
26
|
-
npx scb-wc init html my-app
|
|
27
|
-
npx scb-wc init html-service my-service
|
|
28
|
-
npx scb-wc init react my-react-app
|
|
29
|
-
npx scb-wc init react-service my-react-service
|
|
30
|
-
npx scb-wc init blazor my-blazor-app
|
|
31
|
-
npx scb-wc init blazor-service my-blazor-service
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Webbplatsmallarna skapar en liten starterapp med:
|
|
35
|
-
- `scb-header`
|
|
36
|
-
- `scb-footer`
|
|
37
|
-
- `scb-grid`
|
|
38
|
-
- några vanliga komponenter
|
|
39
|
-
|
|
40
|
-
Webbtjänstmallarna skapar en starterapp med:
|
|
41
|
-
- `scb-app-bar`
|
|
42
|
-
- `scb-search`
|
|
43
|
-
- `scb-table-advanced`
|
|
44
|
-
- komponenter för actions och status
|
|
45
|
-
|
|
46
|
-
Välj sedan den starter som ligger närmast din app och kör `npm install` i den nya mappen.
|
|
26
|
+
> **Obs:** Kör alla kommandon i mappen där din `package.json` ligger.
|
|
27
|
+
> Har du ingen? Kör `npm init -y` i projektroten (eller annan lämplig mapp).
|
|
47
28
|
|
|
48
|
-
|
|
29
|
+
Installera previewkanalen:
|
|
49
30
|
|
|
50
31
|
```sh
|
|
51
|
-
npm install scb-wc
|
|
32
|
+
npm install scb-wc@next
|
|
52
33
|
```
|
|
53
34
|
|
|
54
35
|
---
|
|
55
36
|
|
|
56
37
|
## Alternativ 1: Använd som ES‑moduler (t.ex. i React, Vue, SPA)
|
|
57
38
|
|
|
58
|
-
Importera CSS och de
|
|
39
|
+
Importera CSS och de testkomponenter du använder (bäst för tree‑shaking):
|
|
59
40
|
|
|
60
41
|
```js
|
|
61
42
|
// Global CSS + tokens (måste bara importeras en gång)
|
|
@@ -91,7 +72,7 @@ Då används paketets egna fontfiler under `node_modules/scb-wc/fonts/`.
|
|
|
91
72
|
|
|
92
73
|
## Alternativ 2: Använd i MVC/MPA via `<script type="module">`
|
|
93
74
|
|
|
94
|
-
Det här läget använder den färdig‑
|
|
75
|
+
Det här läget använder den färdig‑splittade **MVC‑ESM**‑builden som följer med paketet under:
|
|
95
76
|
|
|
96
77
|
```text
|
|
97
78
|
node_modules/scb-wc/mvc/
|
|
@@ -104,7 +85,7 @@ Lägg till i din apps `package.json`:
|
|
|
104
85
|
```jsonc
|
|
105
86
|
{
|
|
106
87
|
"scripts": {
|
|
107
|
-
"ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\""
|
|
88
|
+
"ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc@next?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\""
|
|
108
89
|
}
|
|
109
90
|
}
|
|
110
91
|
```
|
|
@@ -151,7 +132,7 @@ Behöver du en annan webbrotsökväg (t.ex. om din `wwwroot` ligger någon annan
|
|
|
151
132
|
|
|
152
133
|
## Alternativ 3: Bundlad version (IIFE) för äldre miljöer
|
|
153
134
|
|
|
154
|
-
Om ESM inte stöds kan du använda den bundlade varianten från paketroten.
|
|
135
|
+
Om ESM inte stöds kan du använda den bundlade test‑varianten från paketroten.
|
|
155
136
|
Flytta följande tre filer från `node_modules/scb-wc` och använd dem i applikationen:
|
|
156
137
|
|
|
157
138
|
```text
|
|
@@ -174,7 +155,7 @@ node_modules/scb-wc/scb-typography.css
|
|
|
174
155
|
|
|
175
156
|
SCB Web Components fungerar även i Blazor‑appar när du vill använda samma komponenter i både MVC/MPA och Blazor.
|
|
176
157
|
|
|
177
|
-
Grundprincipen är
|
|
158
|
+
Grundprincipen är samma som för `scb-wc`:
|
|
178
159
|
|
|
179
160
|
1. Använd MVC‑ESM‑builden (`node_modules/scb-wc/mvc`) och kopiera den till `wwwroot/ui` med `ui:install`.
|
|
180
161
|
2. Ladda `scb-blazor-bridge.js` från `wwwroot/ui` i din Blazor‑layout.
|
|
@@ -187,8 +168,8 @@ Lägg till ett script som kopierar interop-filen från `node_modules` till ditt
|
|
|
187
168
|
```jsonc
|
|
188
169
|
{
|
|
189
170
|
"scripts": {
|
|
190
|
-
"ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\"",
|
|
191
|
-
"ui:blazor:interop": "node -e \"const fs=require('fs'),p=require('path');const start=process.env.INIT_CWD||process.cwd();const src=p.resolve('node_modules/scb-wc/blazor/ScbBlazorInteropBase.cs');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc?');process.exit(1);}const dst=p.resolve(start,'ScbBlazor/ScbBlazorInteropBase.cs');fs.mkdirSync(p.dirname(dst),{recursive:true});fs.copyFileSync(src,dst);console.log('Kopierade '+src+' → '+dst);\""
|
|
171
|
+
"ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc@next?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\"",
|
|
172
|
+
"ui:blazor:interop": "node -e \"const fs=require('fs'),p=require('path');const start=process.env.INIT_CWD||process.cwd();const src=p.resolve('node_modules/scb-wc/blazor/ScbBlazorInteropBase.cs');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc@next?');process.exit(1);}const dst=p.resolve(start,'ScbBlazor/ScbBlazorInteropBase.cs');fs.mkdirSync(p.dirname(dst),{recursive:true});fs.copyFileSync(src,dst);console.log('Kopierade '+src+' → '+dst);\""
|
|
192
173
|
}
|
|
193
174
|
}
|
|
194
175
|
```
|
|
@@ -202,13 +183,13 @@ Exempel på layout:
|
|
|
202
183
|
<script type="module" src="~/ui/scb-blazor-bridge.js"></script>
|
|
203
184
|
```
|
|
204
185
|
|
|
205
|
-
`ScbBlazorInteropBase` kan
|
|
186
|
+
`ScbBlazorInteropBase` är samma bas‑klass i preview- och public-kanalen. Du kan därför dela samma C#‑fil mellan projekt som använder `scb-wc@next` och `scb-wc@latest`.
|
|
206
187
|
|
|
207
188
|
---
|
|
208
189
|
|
|
209
190
|
## Viktigt
|
|
210
191
|
|
|
211
|
-
- `scb-wc@
|
|
192
|
+
- `scb-wc@next` är **previewkanalen**. Komponenter kan ändras eller tas bort mellan versioner. Använd `scb-wc@latest` i externa produktionsmiljöer.
|
|
212
193
|
- **Kör kommandon i mappen med din `package.json`.** Placeringen av `package.json` styr standardmål för `ui:install` (rot → `wwwroot/ui`, `ClientApp/` → använd `--ui_wwwroot=../wwwroot`).
|
|
213
194
|
- **Blanda inte MVC‑ESM och IIFE på samma sida.** Välj en distributionsform per sida/app.
|
|
214
195
|
- **Blazor:** Se till att `scb-blazor-bridge.js` laddas efter att komponent‑JS:et finns på sidan, och att `ScbBlazorInteropBase` inte dupliceras i flera namespaces i samma lösning.
|
package/all.js
CHANGED
|
@@ -17,9 +17,11 @@ import './scb-card/scb-list-card.js';
|
|
|
17
17
|
import './scb-card/scb-social-card.js';
|
|
18
18
|
import './scb-checkbox/scb-checkbox-group.js';
|
|
19
19
|
import './scb-checkbox/scb-checkbox.js';
|
|
20
|
+
import './scb-chevron/scb-chevron.js';
|
|
20
21
|
import './scb-chip/scb-chip.js';
|
|
21
22
|
import './scb-collapse/scb-collapse.js';
|
|
22
23
|
import './scb-cookies-consent/scb-cookies-consent.js';
|
|
24
|
+
import './scb-datepicker/scb-datepicker.js';
|
|
23
25
|
import './scb-dialog/scb-dialog.js';
|
|
24
26
|
import './scb-divider/scb-divider.js';
|
|
25
27
|
import './scb-drawer/scb-drawer.js';
|
package/index.js
CHANGED
|
@@ -1,93 +1,95 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
1
|
+
import { ScbChevron as e } from "./scb-chevron/scb-chevron.js";
|
|
2
|
+
import { ScbAccordionItem as t } from "./scb-accordion/scb-accordion-item.js";
|
|
3
|
+
import { ScbButton as n } from "./scb-button/scb-button.js";
|
|
4
|
+
import { ScbAccordion as r } from "./scb-accordion/scb-accordion.js";
|
|
5
|
+
import { ScbIconButton as i } from "./scb-icon-button/scb-icon-button.js";
|
|
6
|
+
import { ScbListItem as a } from "./scb-list/scb-list-item.js";
|
|
7
|
+
import { ScbList as o } from "./scb-list/scb-list.js";
|
|
8
|
+
import { ScbSearch as s } from "./scb-search/scb-search.js";
|
|
9
|
+
import { ScbAvatar as c } from "./scb-avatar/scb-avatar.js";
|
|
10
|
+
import { ScbAppBar as l } from "./scb-app-bar/scb-app-bar.js";
|
|
11
|
+
import { ScbBadge as u } from "./scb-badge/scb-badge.js";
|
|
12
|
+
import { ScbLink as d } from "./scb-link/scb-link.js";
|
|
13
|
+
import { SCBBreadcrumbItem as f } from "./scb-breadcrumb/scb-breadcrumb-item.js";
|
|
14
|
+
import { SCBBreadcrumb as p } from "./scb-breadcrumb/scb-breadcrumb.js";
|
|
15
|
+
import { ScbCalendarEvent as m } from "./scb-calendar/scb-calendar-event.js";
|
|
16
|
+
import { ScbDivider as h } from "./scb-divider/scb-divider.js";
|
|
17
|
+
import { ScbDatepicker as g } from "./scb-datepicker/scb-datepicker.js";
|
|
18
|
+
import { ScbTextField as _ } from "./scb-textfield/scb-textfield.js";
|
|
19
|
+
import { ScbCheckboxGroup as v } from "./scb-checkbox/scb-checkbox-group.js";
|
|
20
|
+
import { ScbCheckbox as y } from "./scb-checkbox/scb-checkbox.js";
|
|
21
|
+
import { ScbRadioGroup as b } from "./scb-radio-button/scb-radio-group.js";
|
|
22
|
+
import { ScbRadioButton as x } from "./scb-radio-button/scb-radio-button.js";
|
|
23
|
+
import { ScbSwitch as S } from "./scb-switch/scb-switch.js";
|
|
24
|
+
import { ScbChip as C } from "./scb-chip/scb-chip.js";
|
|
25
|
+
import { ScbDialog as w } from "./scb-dialog/scb-dialog.js";
|
|
26
|
+
import { ScbCalendar as T } from "./scb-calendar/scb-calendar.js";
|
|
27
|
+
import { ScbCalendarCard as E } from "./scb-calendar-card/scb-calendar-card.js";
|
|
28
|
+
import { ScbTooltip as D } from "./scb-tooltip/scb-tooltip.js";
|
|
29
|
+
import { ScbActionCard as O, ScbCard as k, ScbContainerCard as A, ScbLinkCard as j, ScbListCard as M, ScbSocialCard as N } from "./scb-card/scb-card.js";
|
|
28
30
|
import "./scb-card/scb-action-card.js";
|
|
29
31
|
import "./scb-card/scb-container-card.js";
|
|
30
32
|
import "./scb-card/scb-link-card.js";
|
|
31
33
|
import "./scb-card/scb-list-card.js";
|
|
32
34
|
import "./scb-card/scb-social-card.js";
|
|
33
|
-
import { ScbCollapse as
|
|
34
|
-
import { ScbCookiesConsent as
|
|
35
|
-
import { ScbDrawer as
|
|
36
|
-
import { ScbDropZone as
|
|
37
|
-
import { ScbOptionsMenuItem as
|
|
38
|
-
import { ScbOptionsSubMenu as
|
|
39
|
-
import { ScbOptionsMenu as
|
|
40
|
-
import { ScbDropdown as
|
|
41
|
-
import { ScbFab as
|
|
42
|
-
import { ScbFactCardContent as
|
|
43
|
-
import { ScbFactCard as
|
|
44
|
-
import { ScbFooterSection as
|
|
45
|
-
import { ScbGridItem as
|
|
46
|
-
import { ScbStack as
|
|
47
|
-
import { ScbGrid as
|
|
48
|
-
import { ScbFooter as
|
|
49
|
-
import { ScbHorizontalScroller as
|
|
50
|
-
import { ScbOverlay as
|
|
51
|
-
import { ScbGalleryGrid as
|
|
52
|
-
import { ScbHeaderMenuGroup as
|
|
53
|
-
import { ScbHeaderMenuItem as
|
|
54
|
-
import { ScbHeaderTab as
|
|
55
|
-
import { ScbHeaderUtility as
|
|
56
|
-
import { ScbMenuItem as
|
|
57
|
-
import { ScbmenuSection as
|
|
58
|
-
import { ScbSubmenu as
|
|
59
|
-
import { ScbMenu as
|
|
60
|
-
import { ScbSkeleton as
|
|
61
|
-
import { ScbHeader as
|
|
62
|
-
import { ScbKeyFigureCard as
|
|
63
|
-
import { ScbNavItem as
|
|
64
|
-
import { ScbNav as
|
|
65
|
-
import { ScbNotificationCard as
|
|
66
|
-
import { ScbPagination as
|
|
67
|
-
import { ScbProgressIndicator as
|
|
68
|
-
import { ScbProgressStep as
|
|
69
|
-
import { ScbProgressStepper as
|
|
70
|
-
import { ScbScrollspy as
|
|
71
|
-
import { ScbSegmentedItem as
|
|
72
|
-
import { ScbSegmentedButton as
|
|
73
|
-
import { ScbSelectOption as
|
|
74
|
-
import { ScbSelect as
|
|
75
|
-
import { ScbSlider as
|
|
76
|
-
import { ScbSnackbar as
|
|
77
|
-
import { ScbStatusPill as
|
|
78
|
-
import { ScbStep as
|
|
79
|
-
import { ScbStepper as
|
|
80
|
-
import { ScbTable as
|
|
81
|
-
import { ScbTableAdvanced as
|
|
82
|
-
import { ScbPrimaryTab as
|
|
83
|
-
import { ScbSecondaryTab as
|
|
84
|
-
import { ScbTabs as
|
|
85
|
-
import { ScbTocItem as
|
|
86
|
-
import { ScbToc as
|
|
87
|
-
import { buildScbVizExportFileName as
|
|
88
|
-
import { buildScbVizPrintDocumentHtml as
|
|
89
|
-
import { appendScbVizSeriesDifferentiationPatternMarks as
|
|
90
|
-
import { clearScbVizSeriesDifferentiationColorClass as
|
|
91
|
-
import { buildScbVizResolvedTableView as
|
|
92
|
-
import { ScbViz as
|
|
93
|
-
export {
|
|
35
|
+
import { ScbCollapse as P } from "./scb-collapse/scb-collapse.js";
|
|
36
|
+
import { ScbCookiesConsent as F } from "./scb-cookies-consent/scb-cookies-consent.js";
|
|
37
|
+
import { ScbDrawer as I } from "./scb-drawer/scb-drawer.js";
|
|
38
|
+
import { ScbDropZone as L } from "./scb-drop-zone/scb-drop-zone.js";
|
|
39
|
+
import { ScbOptionsMenuItem as R } from "./scb-options-menu/scb-options-menu-item.js";
|
|
40
|
+
import { ScbOptionsSubMenu as z } from "./scb-options-menu/scb-options-sub-menu.js";
|
|
41
|
+
import { ScbOptionsMenu as B } from "./scb-options-menu/scb-options-menu.js";
|
|
42
|
+
import { ScbDropdown as V } from "./scb-dropdown/scb-dropdown.js";
|
|
43
|
+
import { ScbFab as H } from "./scb-fab/scb-fab.js";
|
|
44
|
+
import { ScbFactCardContent as U } from "./scb-fact-card/scb-fact-card-content.js";
|
|
45
|
+
import { ScbFactCard as W } from "./scb-fact-card/scb-fact-card.js";
|
|
46
|
+
import { ScbFooterSection as G } from "./scb-footer/scb-footer-section.js";
|
|
47
|
+
import { ScbGridItem as K } from "./scb-grid/scb-grid-item.js";
|
|
48
|
+
import { ScbStack as q } from "./scb-grid/scb-stack.js";
|
|
49
|
+
import { ScbGrid as J } from "./scb-grid/scb-grid.js";
|
|
50
|
+
import { ScbFooter as Y } from "./scb-footer/scb-footer.js";
|
|
51
|
+
import { ScbHorizontalScroller as X } from "./scb-horizontal-scroller/scb-horizontal-scroller.js";
|
|
52
|
+
import { ScbOverlay as Z } from "./scb-overlay/scb-overlay.js";
|
|
53
|
+
import { ScbGalleryGrid as Q } from "./scb-gallery-grid/scb-gallery-grid.js";
|
|
54
|
+
import { ScbHeaderMenuGroup as $ } from "./scb-header/scb-header-menu-group.js";
|
|
55
|
+
import { ScbHeaderMenuItem as ee } from "./scb-header/scb-header-menu-item.js";
|
|
56
|
+
import { ScbHeaderTab as te } from "./scb-header/scb-header-tab.js";
|
|
57
|
+
import { ScbHeaderUtility as ne } from "./scb-header/scb-header-utility.js";
|
|
58
|
+
import { ScbMenuItem as re } from "./scb-menu/scb-menu-item.js";
|
|
59
|
+
import { ScbmenuSection as ie } from "./scb-menu/scb-menu-section.js";
|
|
60
|
+
import { ScbSubmenu as ae } from "./scb-menu/scb-sub-menu.js";
|
|
61
|
+
import { ScbMenu as oe } from "./scb-menu/scb-menu.js";
|
|
62
|
+
import { ScbSkeleton as se } from "./scb-skeleton/scb-skeleton.js";
|
|
63
|
+
import { ScbHeader as ce } from "./scb-header/scb-header.js";
|
|
64
|
+
import { ScbKeyFigureCard as le } from "./scb-keyfigure-card/scb-keyfigure-card.js";
|
|
65
|
+
import { ScbNavItem as ue } from "./scb-nav/scb-nav-item.js";
|
|
66
|
+
import { ScbNav as de } from "./scb-nav/scb-nav.js";
|
|
67
|
+
import { ScbNotificationCard as fe } from "./scb-notification-card/scb-notification-card.js";
|
|
68
|
+
import { ScbPagination as pe } from "./scb-pagination/scb-pagination.js";
|
|
69
|
+
import { ScbProgressIndicator as me } from "./scb-progress-indicator/scb-progress-indicator.js";
|
|
70
|
+
import { ScbProgressStep as he } from "./scb-progress-stepper/scb-progress-step.js";
|
|
71
|
+
import { ScbProgressStepper as ge } from "./scb-progress-stepper/scb-progress-stepper.js";
|
|
72
|
+
import { ScbScrollspy as _e } from "./scb-scrollspy/scb-scrollspy.js";
|
|
73
|
+
import { ScbSegmentedItem as ve } from "./scb-segmented-button/scb-segmented-item.js";
|
|
74
|
+
import { ScbSegmentedButton as ye } from "./scb-segmented-button/scb-segmented-button.js";
|
|
75
|
+
import { ScbSelectOption as be } from "./scb-select/scb-select-option.js";
|
|
76
|
+
import { ScbSelect as xe } from "./scb-select/scb-select.js";
|
|
77
|
+
import { ScbSlider as Se } from "./scb-slider/scb-slider.js";
|
|
78
|
+
import { ScbSnackbar as Ce } from "./scb-snackbar/scb-snackbar.js";
|
|
79
|
+
import { ScbStatusPill as we } from "./scb-status-pill/scb-status-pill.js";
|
|
80
|
+
import { ScbStep as Te } from "./scb-stepper/scb-step.js";
|
|
81
|
+
import { ScbStepper as Ee } from "./scb-stepper/scb-stepper.js";
|
|
82
|
+
import { ScbTable as De } from "./scb-table/scb-table.js";
|
|
83
|
+
import { ScbTableAdvanced as Oe } from "./scb-table-advanced/scb-table-advanced.js";
|
|
84
|
+
import { ScbPrimaryTab as ke } from "./scb-tabs/scb-primary-tab.js";
|
|
85
|
+
import { ScbSecondaryTab as Ae } from "./scb-tabs/scb-secondary-tab.js";
|
|
86
|
+
import { ScbTabs as je } from "./scb-tabs/scb-tabs.js";
|
|
87
|
+
import { ScbTocItem as Me } from "./scb-toc/scb-toc-item.js";
|
|
88
|
+
import { ScbToc as Ne } from "./scb-toc/scb-toc.js";
|
|
89
|
+
import { buildScbVizExportFileName as Pe, createScbVizCsvBlob as Fe, createScbVizRasterBlobFromElement as Ie, createScbVizRasterDataUrlFromElement as Le, downloadScbVizBlob as Re, getScbVizCurrentFullscreenElement as ze, getScbVizExportBaseFileName as Be, getScbVizFullscreenDocument as Ve, isScbVizFullscreenSupported as He, openScbVizPrintFrame as Ue, runWithScbVizForcedPrintLightMode as We, toggleScbVizFullscreen as Ge } from "./scb-viz/scb-viz-actions-runtime.js";
|
|
90
|
+
import { buildScbVizPrintDocumentHtml as Ke, buildScbVizPrintableFooterHtml as qe, buildScbVizPrintableTableHtml as Je } from "./scb-viz/scb-viz-print-runtime.js";
|
|
91
|
+
import { appendScbVizSeriesDifferentiationPatternMarks as Ye, getScbVizSeriesDifferentiationPatternDefinition as Xe, getScbVizSeriesDifferentiationPatternKinds as Ze, getScbVizSeriesDifferentiationRegistry as Qe, getScbVizSeriesDifferentiationVariant as $e, scbVizSeriesDifferentiationRegistry as et } from "./scb-viz/scb-viz-series-differentiation-registry.js";
|
|
92
|
+
import { clearScbVizSeriesDifferentiationColorClass as tt, clearScbVizSeriesDifferentiationMetadata as nt, ensureScbVizGroupedSeriesDifferentiationStore as rt, ensureScbVizStyledModeSeriesPattern as it, getScbVizGroupedSeriesDifferentiationKey as at, getScbVizGroupedSeriesDifferentiationVariant as ot, getScbVizGroupedSeriesDifferentiationVariantIndex as st, getScbVizHighchartsColorClassName as ct, getScbVizHighchartsSvgElement as lt, getScbVizHighchartsSvgRoot as ut, getScbVizLegendSeriesDifferentiationTargets as dt, getScbVizSeriesDifferentiationColorIndex as ft, getScbVizSeriesDifferentiationVariantByIndex as pt, isScbVizGroupedSeriesDifferentiationChart as mt, isScbVizHighchartsStyledMode as ht, setScbVizSeriesDifferentiationColorClass as gt, setScbVizSeriesDifferentiationMetadata as _t, shouldShowScbVizSeriesDifferentiationAction as vt, usesScbVizGroupedPointDifferentiation as yt } from "./scb-viz/scb-viz-series-differentiation-runtime.js";
|
|
93
|
+
import { buildScbVizResolvedTableView as bt, createScbVizCsvRows as xt, inferScbVizTableAlignments as St, normalizeScbVizRenderableCell as Ct, readScbVizTableDataFromSlot as wt } from "./scb-viz/scb-viz-table-runtime.js";
|
|
94
|
+
import { ScbViz as Tt } from "./scb-viz/scb-viz.js";
|
|
95
|
+
export { p as SCBBreadcrumb, f as SCBBreadcrumbItem, r as ScbAccordion, t as ScbAccordionItem, O as ScbActionCard, l as ScbAppBar, c as ScbAvatar, u as ScbBadge, n as ScbButton, T as ScbCalendar, E as ScbCalendarCard, m as ScbCalendarEvent, k as ScbCard, y as ScbCheckbox, v as ScbCheckboxGroup, e as ScbChevron, C as ScbChip, P as ScbCollapse, A as ScbContainerCard, F as ScbCookiesConsent, g as ScbDatepicker, w as ScbDialog, h as ScbDivider, I as ScbDrawer, L as ScbDropZone, V as ScbDropdown, H as ScbFab, W as ScbFactCard, U as ScbFactCardContent, Y as ScbFooter, G as ScbFooterSection, Q as ScbGalleryGrid, J as ScbGrid, K as ScbGridItem, ce as ScbHeader, $ as ScbHeaderMenuGroup, ee as ScbHeaderMenuItem, te as ScbHeaderTab, ne as ScbHeaderUtility, X as ScbHorizontalScroller, i as ScbIconButton, le as ScbKeyFigureCard, d as ScbLink, j as ScbLinkCard, o as ScbList, M as ScbListCard, a as ScbListItem, oe as ScbMenu, re as ScbMenuItem, de as ScbNav, ue as ScbNavItem, fe as ScbNotificationCard, B as ScbOptionsMenu, R as ScbOptionsMenuItem, z as ScbOptionsSubMenu, Z as ScbOverlay, pe as ScbPagination, ke as ScbPrimaryTab, me as ScbProgressIndicator, he as ScbProgressStep, ge as ScbProgressStepper, x as ScbRadioButton, b as ScbRadioGroup, _e as ScbScrollspy, s as ScbSearch, Ae as ScbSecondaryTab, ye as ScbSegmentedButton, ve as ScbSegmentedItem, xe as ScbSelect, be as ScbSelectOption, se as ScbSkeleton, Se as ScbSlider, Ce as ScbSnackbar, N as ScbSocialCard, q as ScbStack, we as ScbStatusPill, Te as ScbStep, Ee as ScbStepper, ae as ScbSubmenu, S as ScbSwitch, De as ScbTable, Oe as ScbTableAdvanced, je as ScbTabs, _ as ScbTextField, Ne as ScbToc, Me as ScbTocItem, D as ScbTooltip, Tt as ScbViz, ie as ScbmenuSection, Ye as appendScbVizSeriesDifferentiationPatternMarks, Pe as buildScbVizExportFileName, Ke as buildScbVizPrintDocumentHtml, qe as buildScbVizPrintableFooterHtml, Je as buildScbVizPrintableTableHtml, bt as buildScbVizResolvedTableView, tt as clearScbVizSeriesDifferentiationColorClass, nt as clearScbVizSeriesDifferentiationMetadata, Fe as createScbVizCsvBlob, xt as createScbVizCsvRows, Ie as createScbVizRasterBlobFromElement, Le as createScbVizRasterDataUrlFromElement, Re as downloadScbVizBlob, rt as ensureScbVizGroupedSeriesDifferentiationStore, it as ensureScbVizStyledModeSeriesPattern, ze as getScbVizCurrentFullscreenElement, Be as getScbVizExportBaseFileName, Ve as getScbVizFullscreenDocument, at as getScbVizGroupedSeriesDifferentiationKey, ot as getScbVizGroupedSeriesDifferentiationVariant, st as getScbVizGroupedSeriesDifferentiationVariantIndex, ct as getScbVizHighchartsColorClassName, lt as getScbVizHighchartsSvgElement, ut as getScbVizHighchartsSvgRoot, dt as getScbVizLegendSeriesDifferentiationTargets, ft as getScbVizSeriesDifferentiationColorIndex, Xe as getScbVizSeriesDifferentiationPatternDefinition, Ze as getScbVizSeriesDifferentiationPatternKinds, Qe as getScbVizSeriesDifferentiationRegistry, $e as getScbVizSeriesDifferentiationVariant, pt as getScbVizSeriesDifferentiationVariantByIndex, St as inferScbVizTableAlignments, He as isScbVizFullscreenSupported, mt as isScbVizGroupedSeriesDifferentiationChart, ht as isScbVizHighchartsStyledMode, Ct as normalizeScbVizRenderableCell, Ue as openScbVizPrintFrame, wt as readScbVizTableDataFromSlot, We as runWithScbVizForcedPrintLightMode, et as scbVizSeriesDifferentiationRegistry, gt as setScbVizSeriesDifferentiationColorClass, _t as setScbVizSeriesDifferentiationMetadata, vt as shouldShowScbVizSeriesDifferentiationAction, Ge as toggleScbVizFullscreen, yt as usesScbVizGroupedPointDifferentiation };
|
package/mvc/components/all.js
CHANGED
|
@@ -17,9 +17,11 @@ import './scb-card/scb-list-card.js';
|
|
|
17
17
|
import './scb-card/scb-social-card.js';
|
|
18
18
|
import './scb-checkbox/scb-checkbox.js';
|
|
19
19
|
import './scb-checkbox/scb-checkbox-group.js';
|
|
20
|
+
import './scb-chevron/scb-chevron.js';
|
|
20
21
|
import './scb-chip/scb-chip.js';
|
|
21
22
|
import './scb-collapse/scb-collapse.js';
|
|
22
23
|
import './scb-cookies-consent/scb-cookies-consent.js';
|
|
24
|
+
import './scb-datepicker/scb-datepicker.js';
|
|
23
25
|
import './scb-dialog/scb-dialog.js';
|
|
24
26
|
import './scb-divider/scb-divider.js';
|
|
25
27
|
import './scb-drawer/scb-drawer.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../../vendor/vendor-material.js";import{_ as b,b as m,g as h,h as o,v as l,y as s}from"../../vendor/vendor.js";import"../../vendor/vendor-lit.js";import{t as r}from"../../vendor/decorate.js";import"
|
|
1
|
+
import"../../vendor/vendor-material.js";import{_ as b,b as m,g as h,h as o,v as l,y as s}from"../../vendor/vendor.js";import"../../vendor/vendor-lit.js";import{t as r}from"../../vendor/decorate.js";import"../scb-chevron/scb-chevron.js";(function(){try{var g=typeof globalThis<"u"?globalThis:window;if(!g.__scb_ce_guard_installed__){g.__scb_ce_guard_installed__=!0;var i=customElements.define.bind(customElements);customElements.define=function(t,e,v){try{customElements.get(t)||i(t,e,v)}catch(c){var n=String(c||"");if(n.indexOf("already been used")===-1&&n.indexOf("NotSupportedError")===-1)throw c}}}}catch{}})();var d,p,a=(d=class extends b{constructor(...i){super(...i),this.open=!1,this.title="",this.content="",this.overline="",this.supportingText="",this.leading=!1,this.leadingVariant="",this.leadingIcon="",this.imgHrefImage="",this.avatarLabel="",this.avatarAlt="",this.avatarVariant="icon",this.avatarSrc="",this.density=0,this._unique=p._uid(),this._ignoreNextNativeTitleAttrChange=!1,this._onSummaryClick=t=>{t.preventDefault();const e=!this.open;this.closest("scb-accordion")?.onItemToggled?.(this,e),this.setOpen(e)},this._onToggle=t=>{const e=t.currentTarget;e.open||(e.open=!0),this._applyInertByOpen()}}static _uid(){return globalThis.crypto?.randomUUID?.()??`${p._uidPrefix}-${++p._uidSeq}`}static get observedAttributes(){const i=super.observedAttributes||[];return i.includes("title")?i:[...i,"title"]}attributeChangedCallback(i,t,e){if(i==="title"&&this._ignoreNextNativeTitleAttrChange){this._ignoreNextNativeTitleAttrChange=!1;return}super.attributeChangedCallback(i,t,e),i==="title"&&e!==null&&(this._ignoreNextNativeTitleAttrChange=!0,this.removeAttribute("title"))}firstUpdated(){this._applyInertByOpen()}_applyInertByOpen(){const i=this.renderRoot.querySelector(".scb-accordion-bottom");i&&(this.open?(i.removeAttribute("inert"),i.setAttribute("aria-hidden","false")):(i.setAttribute("inert",""),i.setAttribute("aria-hidden","true")))}_onKeyDown(i){const t=this.closest("scb-accordion"),e=Array.from(t?.querySelectorAll("scb-accordion-item")||[]).map(c=>c.renderRoot.querySelector("details")?.querySelector(".scb-accordion-top")||null).filter(c=>!!c),v=i.currentTarget,n=e.indexOf(v);switch(i.key){case"ArrowDown":i.preventDefault(),n<e.length-1&&e[n+1].focus();break;case"ArrowUp":i.preventDefault(),n>0&&e[n-1].focus();break;case"Home":i.preventDefault(),e.length&&e[0].focus();break;case"End":i.preventDefault(),e.length&&e[e.length-1].focus();break}}setOpen(i){this.open=!!i;const t=this.renderRoot.querySelector("details");t&&!t.open&&(t.open=!0),this._applyInertByOpen()}updated(i){if(i.has("open")){const t=this.renderRoot.querySelector("details");t&&!t.open&&(t.open=!0),this._applyInertByOpen(),this.dispatchEvent(new CustomEvent("open-changed",{detail:{open:this.open,title:this.title},bubbles:!0,composed:!0}))}}render(){const i=`bottom-${this._unique}`,t=`header-${this._unique}`,e=this.leading?this.leadingVariant==="image"&&this.imgHrefImage?s`<img part="leading-image" class="img" src="${this.imgHrefImage}" alt="" />`:this.leadingVariant==="avatar"?s`
|
|
2
2
|
<scb-avatar
|
|
3
3
|
label=${this.avatarLabel}
|
|
4
4
|
alt=${this.avatarAlt}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as h,b as v,g as d,h as p,y as f}from"
|
|
1
|
+
import{_ as h,b as v,g as d,h as p,y as f}from"../../vendor/vendor.js";import"../../vendor/vendor-lit.js";import{t as c}from"../../vendor/decorate.js";(function(){try{var e=typeof globalThis<"u"?globalThis:window;if(!e.__scb_ce_guard_installed__){e.__scb_ce_guard_installed__=!0;var r=customElements.define.bind(customElements);customElements.define=function(o,a,l){try{customElements.get(o)||r(o,a,l)}catch(i){var s=String(i||"");if(s.indexOf("already been used")===-1&&s.indexOf("NotSupportedError")===-1)throw i}}}}catch{}})();var n,t=(n=class extends h{constructor(...r){super(...r),this.open=!1}render(){return f`
|
|
2
2
|
<svg
|
|
3
3
|
class="chevron-icon"
|
|
4
4
|
viewBox="0 0 24 24"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as
|
|
1
|
+
import{_ as A,b as E,g as S,h,y as g}from"../../vendor/vendor.js";import"../../vendor/vendor-lit.js";import{t as d}from"../../vendor/decorate.js";import{n as T,t as c}from"../../vendor/assertClassBrand.js";import"../scb-button/scb-button.js";(function(){try{var i=typeof globalThis<"u"?globalThis:window;if(!i.__scb_ce_guard_installed__){i.__scb_ce_guard_installed__=!0;var e=customElements.define.bind(customElements);customElements.define=function(t,o,a){try{customElements.get(t)||e(t,o,a)}catch(p){var b=String(p||"");if(b.indexOf("already been used")===-1&&b.indexOf("NotSupportedError")===-1)throw p}}}}catch{}})();var r,u,n,l=(r=new WeakSet,u=class extends A{constructor(...e){super(...e),T(this,r),this._contentId=`scb-collapse-content-${Math.random().toString(36).substr(2,9)}`,this.variant="elements",this.collapsedHeight=40,this.visibleElements=1,this.expanded=!1,this._elementCount=0,this.expandButtonLabel="Mer",this.collapseButtonLabel="Mindre",this.spacing=void 0,this.spacingTop=void 0,this.spacingBottom=void 0,this.spacingLeft=void 0,this.spacingRight=void 0,this.itemsGap=void 0,this._contentHeight=0}get _regionLabel(){return`${this.expanded?this.collapseButtonLabel:this.expandButtonLabel} – ${this._contentId}`}toggle(){this.expanded=!this.expanded}mapSpacingToken(e){if(!e)return;const t=String(e).trim();if(t)return/^\d+$/.test(t)?`var(--spacing-${Math.max(0,Math.min(14,parseInt(t,10)))})`:t}willUpdate(e){e.has("variant")&&(this._measureContent(!1),this._countElements(!1),c(r,this,m).call(this))}firstUpdated(){requestAnimationFrame(()=>{this._measureContent(),this._countElements(),c(r,this,m).call(this)});const e=this.shadowRoot?.querySelector("slot");e&&e.addEventListener("slotchange",()=>{requestAnimationFrame(()=>{this._measureContent(),this._countElements(),c(r,this,f).call(this),c(r,this,m).call(this)})}),c(r,this,_).call(this),c(r,this,f).call(this)}updated(e){(e.has("spacing")||e.has("spacingTop")||e.has("spacingBottom")||e.has("spacingLeft")||e.has("spacingRight"))&&c(r,this,_).call(this),e.has("itemsGap")&&(c(r,this,f).call(this),this._measureContent()),e.has("visibleElements")&&c(r,this,m).call(this),e.has("expanded")&&(c(r,this,f).call(this),c(r,this,m).call(this),this.dispatchEvent(new CustomEvent("expandedchange",{detail:{expanded:this.expanded},bubbles:!0,composed:!0})))}_measureContent(e=!0){if(this.variant==="height"){const t=this.shadowRoot?.querySelector("slot");if(t){const o=t.assignedNodes({flatten:!0});let a=0;o.forEach(p=>{if(p.nodeType===Node.ELEMENT_NODE){const s=p;a+=s.offsetHeight||s.scrollHeight||0}});const b=a;b!==this._contentHeight&&(this._contentHeight=b,e&&this.requestUpdate())}}}_countElements(e=!0){if(this.variant==="elements"){const t=this.shadowRoot?.querySelector("slot");if(t){const o=t.assignedNodes({flatten:!0}).filter(a=>a.nodeType===Node.ELEMENT_NODE).length;o!==this._elementCount&&(this._elementCount=o,e&&this.requestUpdate())}}}render(){if(this.variant==="height"){const e=this.expanded?`${this._contentHeight}px`:`${this.collapsedHeight}px`,t=this._contentHeight>this.collapsedHeight;return g`
|
|
2
2
|
<div
|
|
3
3
|
class="collapse-content ${this.expanded?"expanded":""}"
|
|
4
4
|
id="${this._contentId}"
|
|
@@ -8,7 +8,7 @@ import{_ as y,b as _,g as E,h as c,y as u}from"../../vendor/vendor.js";import"..
|
|
|
8
8
|
>
|
|
9
9
|
<slot></slot>
|
|
10
10
|
</div>
|
|
11
|
-
${t?
|
|
11
|
+
${t?g`
|
|
12
12
|
<scb-button
|
|
13
13
|
id="${this._contentId}-button"
|
|
14
14
|
@click="${this.toggle}"
|
|
@@ -20,7 +20,7 @@ import{_ as y,b as _,g as E,h as c,y as u}from"../../vendor/vendor.js";import"..
|
|
|
20
20
|
>
|
|
21
21
|
</scb-button>
|
|
22
22
|
`:""}
|
|
23
|
-
`}else{const e=typeof this.visibleElements=="string"?parseInt(this.visibleElements,10):this.visibleElements,t=this._elementCount>e;return
|
|
23
|
+
`}else{const e=typeof this.visibleElements=="string"?parseInt(this.visibleElements,10):this.visibleElements,t=this._elementCount>e;return g`
|
|
24
24
|
<div
|
|
25
25
|
class="collapse-content ${this.expanded?"expanded":""}"
|
|
26
26
|
id="${this._contentId}"
|
|
@@ -29,7 +29,7 @@ import{_ as y,b as _,g as E,h as c,y as u}from"../../vendor/vendor.js";import"..
|
|
|
29
29
|
>
|
|
30
30
|
<slot></slot>
|
|
31
31
|
</div>
|
|
32
|
-
${t?
|
|
32
|
+
${t?g`
|
|
33
33
|
<scb-button
|
|
34
34
|
id="${this._contentId}-button"
|
|
35
35
|
@click="${this.toggle}"
|
|
@@ -41,7 +41,7 @@ import{_ as y,b as _,g as E,h as c,y as u}from"../../vendor/vendor.js";import"..
|
|
|
41
41
|
>
|
|
42
42
|
</scb-button>
|
|
43
43
|
`:""}
|
|
44
|
-
`}}},
|
|
44
|
+
`}}},n=u,u._focusableSelector="a[href], area[href], button, input, select, textarea, iframe, object, embed, [contenteditable], [tabindex]",u._savedTabindexAttr="data-scb-collapse-prev-tabindex",u.styles=E`
|
|
45
45
|
:host {
|
|
46
46
|
display: block;
|
|
47
47
|
box-sizing: border-box;
|
|
@@ -78,4 +78,4 @@ import{_ as y,b as _,g as E,h as c,y as u}from"../../vendor/vendor.js";import"..
|
|
|
78
78
|
overflow: visible;
|
|
79
79
|
display: block;
|
|
80
80
|
}
|
|
81
|
-
`,
|
|
81
|
+
`,u);function _(){const i=this.mapSpacingToken(this.spacing),e=this.mapSpacingToken(this.spacingTop)??i,t=this.mapSpacingToken(this.spacingBottom)??i,o=this.mapSpacingToken(this.spacingLeft),a=this.mapSpacingToken(this.spacingRight);e?this.style.setProperty("--scb-collapse-spacing-block-start",e):this.style.removeProperty("--scb-collapse-spacing-block-start"),t?this.style.setProperty("--scb-collapse-spacing-block-end",t):this.style.removeProperty("--scb-collapse-spacing-block-end"),o?this.style.setProperty("--scb-collapse-spacing-inline-start",o):this.style.removeProperty("--scb-collapse-spacing-inline-start"),a?this.style.setProperty("--scb-collapse-spacing-inline-end",a):this.style.removeProperty("--scb-collapse-spacing-inline-end")}function f(){const i=this.mapSpacingToken(this.itemsGap);i?this.style.setProperty("--scb-collapse-items-gap",i):this.style.removeProperty("--scb-collapse-items-gap");const e=this.shadowRoot?.querySelector("slot");e&&e.assignedNodes({flatten:!0}).filter(t=>t.nodeType===Node.ELEMENT_NODE).forEach((t,o)=>{const a=t;o===0||!i?a.style.removeProperty("margin-block-start"):a.style.setProperty("margin-block-start","var(--scb-collapse-items-gap)")})}function y(i,e){if(e)i.setAttribute("aria-hidden","true"),i.setAttribute("inert",""),i.hasAttribute("tabindex")&&i.setAttribute(n._savedTabindexAttr,i.getAttribute("tabindex")??""),i.setAttribute("tabindex","-1");else if(i.removeAttribute("aria-hidden"),i.removeAttribute("inert"),i.hasAttribute(n._savedTabindexAttr)){const t=i.getAttribute(n._savedTabindexAttr)??"";t===""?i.removeAttribute("tabindex"):i.setAttribute("tabindex",t),i.removeAttribute(n._savedTabindexAttr)}else i.getAttribute("tabindex")==="-1"&&i.removeAttribute("tabindex");Array.from(i.querySelectorAll(n._focusableSelector)).forEach(t=>{if(e)t.hasAttribute("tabindex")&&t.setAttribute(n._savedTabindexAttr,t.getAttribute("tabindex")??""),t.setAttribute("tabindex","-1");else if(t.hasAttribute(n._savedTabindexAttr)){const o=t.getAttribute(n._savedTabindexAttr)??"";o===""?t.removeAttribute("tabindex"):t.setAttribute("tabindex",o),t.removeAttribute(n._savedTabindexAttr)}else t.getAttribute("tabindex")==="-1"&&t.removeAttribute("tabindex")})}function m(){const i=this.shadowRoot?.querySelector(".collapse-content"),e=this.shadowRoot?.querySelector("slot");if(!i||!e)return;const t=e.assignedNodes({flatten:!0}).filter(a=>a.nodeType===Node.ELEMENT_NODE);if(this.variant==="height"){i.removeAttribute("aria-hidden");const a=Math.max(0,this.collapsedHeight),b=i.getBoundingClientRect().top;t.forEach(s=>{s.classList.remove("scb-collapsed-hidden"),c(r,this,y).call(this,s,!1)});const p=[];t.forEach(s=>{s.matches(n._focusableSelector)&&p.push(s);const v=Array.from(s.querySelectorAll(n._focusableSelector));p.push(...v)}),p.forEach(s=>{const v=s.getBoundingClientRect().top-b;if(!this.expanded&&v>=a)s.hasAttribute("tabindex")&&s.setAttribute(n._savedTabindexAttr,s.getAttribute("tabindex")??""),s.setAttribute("tabindex","-1");else if(s.hasAttribute(n._savedTabindexAttr)){const x=s.getAttribute(n._savedTabindexAttr)??"";x===""?s.removeAttribute("tabindex"):s.setAttribute("tabindex",x),s.removeAttribute(n._savedTabindexAttr)}else s.getAttribute("tabindex")==="-1"&&s.removeAttribute("tabindex")});return}const o=typeof this.visibleElements=="string"?parseInt(this.visibleElements,10):this.visibleElements;t.forEach((a,b)=>{const p=!this.expanded&&b>=o;p?a.classList.add("scb-collapsed-hidden"):a.classList.remove("scb-collapsed-hidden"),c(r,this,y).call(this,a,p)})}d([h({type:String})],l.prototype,"variant",void 0);d([h({type:Number,attribute:"collapsed-height",reflect:!0})],l.prototype,"collapsedHeight",void 0);d([h({type:Number,attribute:"visible-elements",reflect:!0})],l.prototype,"visibleElements",void 0);d([h({type:Boolean,reflect:!0})],l.prototype,"expanded",void 0);d([h({type:String,attribute:"expand-button-label",reflect:!0})],l.prototype,"expandButtonLabel",void 0);d([h({type:String,attribute:"collapse-button-label",reflect:!0})],l.prototype,"collapseButtonLabel",void 0);d([h({type:String,reflect:!0})],l.prototype,"spacing",void 0);d([h({type:String,attribute:"spacing-top",reflect:!0})],l.prototype,"spacingTop",void 0);d([h({type:String,attribute:"spacing-bottom",reflect:!0})],l.prototype,"spacingBottom",void 0);d([h({type:String,attribute:"spacing-left",reflect:!0})],l.prototype,"spacingLeft",void 0);d([h({type:String,attribute:"spacing-right",reflect:!0})],l.prototype,"spacingRight",void 0);d([h({type:String,attribute:"items-gap",reflect:!0})],l.prototype,"itemsGap",void 0);l=n=d([S("scb-collapse")],l);
|