scb-wc-test 0.1.107 → 0.1.108

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/all.js CHANGED
@@ -15,6 +15,7 @@ import './mvc/components/scb-card/scb-card.js';
15
15
  import './mvc/components/scb-checkbox/scb-checkbox-group.js';
16
16
  import './mvc/components/scb-checkbox/scb-checkbox.js';
17
17
  import './mvc/components/scb-chip/scb-chip.js';
18
+ import './mvc/components/scb-datepicker/scb-datepicker.js';
18
19
  import './mvc/components/scb-dialog/scb-dialog.js';
19
20
  import './mvc/components/scb-divider/scb-divider.js';
20
21
  import './mvc/components/scb-drawer/scb-drawer-item.js';
@@ -86,6 +87,7 @@ import './scb-card/scb-card.js';
86
87
  import './scb-checkbox/scb-checkbox-group.js';
87
88
  import './scb-checkbox/scb-checkbox.js';
88
89
  import './scb-chip/scb-chip.js';
90
+ import './scb-datepicker/scb-datepicker.js';
89
91
  import './scb-dialog/scb-dialog.js';
90
92
  import './scb-divider/scb-divider.js';
91
93
  import './scb-drawer/scb-drawer-item.js';
package/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export * from './scb-card/scb-card';
11
11
  export * from './scb-checkbox/scb-checkbox-group';
12
12
  export * from './scb-checkbox/scb-checkbox';
13
13
  export * from './scb-chip/scb-chip';
14
+ export * from './scb-datepicker/scb-datepicker';
14
15
  export * from './scb-dialog/scb-dialog';
15
16
  export * from './scb-divider/scb-divider';
16
17
  export * from './scb-drawer/scb-drawer-item';
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ScbAccordionItem as e } from "./scb-accordion/scb-accordion-item.js";
2
2
  import { ScbAccordion as c } from "./scb-accordion/scb-accordion.js";
3
- import { ScbAppBar as m } from "./scb-app-bar/scb-app-bar.js";
3
+ import { ScbAppBar as p } from "./scb-app-bar/scb-app-bar.js";
4
4
  import { ScbAvatar as b } from "./scb-avatar/scb-avatar.js";
5
5
  import { ScbBadge as f } from "./scb-badge/scb-badge.js";
6
6
  import { SCBBreadcrumbItem as i } from "./scb-breadcrumb/scb-breadcrumb-item.js";
@@ -9,126 +9,128 @@ import { ScbButton as l } from "./scb-button/scb-button.js";
9
9
  import { ScbCalendarCard as I } from "./scb-calendar-card/scb-calendar-card.js";
10
10
  import { ScbCard as B } from "./scb-card/scb-card.js";
11
11
  import { ScbCheckboxGroup as D } from "./scb-checkbox/scb-checkbox-group.js";
12
- import { ScbCheckbox as w } from "./scb-checkbox/scb-checkbox.js";
12
+ import { ScbCheckbox as k } from "./scb-checkbox/scb-checkbox.js";
13
13
  import { ScbChip as F } from "./scb-chip/scb-chip.js";
14
- import { ScbDialog as P } from "./scb-dialog/scb-dialog.js";
15
- import { ScbDivider as G } from "./scb-divider/scb-divider.js";
16
- import { ScbDrawerItem as A } from "./scb-drawer/scb-drawer-item.js";
17
- import { ScbDrawerSection as M } from "./scb-drawer/scb-drawer-section.js";
18
- import { ScbDrawer as z } from "./scb-drawer/scb-drawer.js";
19
- import { ScbSubDrawer as K } from "./scb-drawer/scb-sub-drawer.js";
20
- import { ScbFactCardContent as O } from "./scb-fact-card/scb-fact-card-content.js";
21
- import { ScbFactCard as V } from "./scb-fact-card/scb-fact-card.js";
22
- import { ScbFooterSection as q } from "./scb-footer/scb-footer-section.js";
23
- import { ScbFooter as J } from "./scb-footer/scb-footer.js";
24
- import { ScbGridItem as W } from "./scb-grid/scb-grid-item.js";
25
- import { ScbGrid as Y } from "./scb-grid/scb-grid.js";
26
- import { ScbStack as _ } from "./scb-grid/scb-stack.js";
27
- import { ScbHeaderDrawerGroup as rr } from "./scb-header/scb-header-drawer-group.js";
28
- import { ScbHeaderDrawerItem as er } from "./scb-header/scb-header-drawer-item.js";
29
- import { ScbHeaderTab as cr } from "./scb-header/scb-header-tab.js";
30
- import { ScbHeaderUtility as mr } from "./scb-header/scb-header-utility.js";
31
- import { ScbHeader as br } from "./scb-header/scb-header.js";
32
- import { ScbHorizontalScroller as fr } from "./scb-horizontal-scroller/scb-horizontal-scroller.js";
33
- import { ScbIconButton as ir } from "./scb-icon-button/scb-icon-button.js";
34
- import { ScbKeyFigureCard as nr } from "./scb-keyfigure-card/scb-keyfigure-card.js";
35
- import { ScbLink as lr } from "./scb-link/scb-link.js";
36
- import { ScbListItem as Ir } from "./scb-list/scb-list-item.js";
37
- import { ScbList as Br } from "./scb-list/scb-list.js";
38
- import { ScbMenuItem as Dr } from "./scb-menu/scb-menu-item.js";
39
- import { ScbMenu as wr } from "./scb-menu/scb-menu.js";
40
- import { ScbSubMenu as Fr } from "./scb-menu/scb-sub-menu.js";
41
- import { ScbNotificationCard as Pr } from "./scb-notification-card/scb-notification-card.js";
42
- import { ScbPagination as Gr } from "./scb-pagination/scb-pagination.js";
43
- import { ScbProgressIndicator as Ar } from "./scb-progress-indicator/scb-progress-indicator.js";
44
- import { ScbProgressStep as Mr } from "./scb-progress-stepper/scb-progress-step.js";
45
- import { ScbProgressStepper as zr } from "./scb-progress-stepper/scb-progress-stepper.js";
46
- import { ScbRadioButton as Kr } from "./scb-radio-button/scb-radio-button.js";
47
- import { ScbRadioGroup as Or } from "./scb-radio-button/scb-radio-group.js";
48
- import { ScbSearch as Vr } from "./scb-search/scb-search.js";
49
- import { ScbSegmentedButton as qr } from "./scb-segmented-button/scb-segmented-button.js";
50
- import { ScbSegmentedItem as Jr } from "./scb-segmented-button/scb-segmented-item.js";
51
- import { ScbSelectOption as Wr } from "./scb-select/scb-select-option.js";
52
- import { ScbSelect as Yr } from "./scb-select/scb-select.js";
53
- import { ScbSkeleton as _r } from "./scb-skeleton/scb-skeleton.js";
54
- import { ScbSnackbar as ro } from "./scb-snackbar/scb-snackbar.js";
55
- import { ScbStatusPill as eo } from "./scb-status-pill/scb-status-pill.js";
56
- import { ScbStep as co } from "./scb-stepper/scb-step.js";
57
- import { ScbStepper as mo } from "./scb-stepper/scb-stepper.js";
58
- import { ScbSwitch as bo } from "./scb-switch/scb-switch.js";
59
- import { ScbPrimaryTab as fo } from "./scb-tabs/scb-primary-tab.js";
60
- import { ScbSecondaryTab as io } from "./scb-tabs/scb-secondary-tab.js";
61
- import { ScbTabs as uo } from "./scb-tabs/scb-tabs.js";
62
- import { ScbTextField as Co } from "./scb-textfield/scb-textfield.js";
63
- import { ScbTocItem as so } from "./scb-toc/scb-toc-item.js";
64
- import { ScbToc as go } from "./scb-toc/scb-toc.js";
65
- import { ScbTooltip as To } from "./scb-tooltip/scb-tooltip.js";
66
- import { ScbViz as ko } from "./scb-viz/scb-viz.js";
14
+ import { ScbDatepicker as P } from "./scb-datepicker/scb-datepicker.js";
15
+ import { ScbDialog as G } from "./scb-dialog/scb-dialog.js";
16
+ import { ScbDivider as A } from "./scb-divider/scb-divider.js";
17
+ import { ScbDrawerItem as M } from "./scb-drawer/scb-drawer-item.js";
18
+ import { ScbDrawerSection as z } from "./scb-drawer/scb-drawer-section.js";
19
+ import { ScbDrawer as K } from "./scb-drawer/scb-drawer.js";
20
+ import { ScbSubDrawer as O } from "./scb-drawer/scb-sub-drawer.js";
21
+ import { ScbFactCardContent as V } from "./scb-fact-card/scb-fact-card-content.js";
22
+ import { ScbFactCard as q } from "./scb-fact-card/scb-fact-card.js";
23
+ import { ScbFooterSection as J } from "./scb-footer/scb-footer-section.js";
24
+ import { ScbFooter as W } from "./scb-footer/scb-footer.js";
25
+ import { ScbGridItem as Y } from "./scb-grid/scb-grid-item.js";
26
+ import { ScbGrid as _ } from "./scb-grid/scb-grid.js";
27
+ import { ScbStack as rr } from "./scb-grid/scb-stack.js";
28
+ import { ScbHeaderDrawerGroup as er } from "./scb-header/scb-header-drawer-group.js";
29
+ import { ScbHeaderDrawerItem as cr } from "./scb-header/scb-header-drawer-item.js";
30
+ import { ScbHeaderTab as pr } from "./scb-header/scb-header-tab.js";
31
+ import { ScbHeaderUtility as br } from "./scb-header/scb-header-utility.js";
32
+ import { ScbHeader as fr } from "./scb-header/scb-header.js";
33
+ import { ScbHorizontalScroller as ir } from "./scb-horizontal-scroller/scb-horizontal-scroller.js";
34
+ import { ScbIconButton as nr } from "./scb-icon-button/scb-icon-button.js";
35
+ import { ScbKeyFigureCard as lr } from "./scb-keyfigure-card/scb-keyfigure-card.js";
36
+ import { ScbLink as Ir } from "./scb-link/scb-link.js";
37
+ import { ScbListItem as Br } from "./scb-list/scb-list-item.js";
38
+ import { ScbList as Dr } from "./scb-list/scb-list.js";
39
+ import { ScbMenuItem as kr } from "./scb-menu/scb-menu-item.js";
40
+ import { ScbMenu as Fr } from "./scb-menu/scb-menu.js";
41
+ import { ScbSubMenu as Pr } from "./scb-menu/scb-sub-menu.js";
42
+ import { ScbNotificationCard as Gr } from "./scb-notification-card/scb-notification-card.js";
43
+ import { ScbPagination as Ar } from "./scb-pagination/scb-pagination.js";
44
+ import { ScbProgressIndicator as Mr } from "./scb-progress-indicator/scb-progress-indicator.js";
45
+ import { ScbProgressStep as zr } from "./scb-progress-stepper/scb-progress-step.js";
46
+ import { ScbProgressStepper as Kr } from "./scb-progress-stepper/scb-progress-stepper.js";
47
+ import { ScbRadioButton as Or } from "./scb-radio-button/scb-radio-button.js";
48
+ import { ScbRadioGroup as Vr } from "./scb-radio-button/scb-radio-group.js";
49
+ import { ScbSearch as qr } from "./scb-search/scb-search.js";
50
+ import { ScbSegmentedButton as Jr } from "./scb-segmented-button/scb-segmented-button.js";
51
+ import { ScbSegmentedItem as Wr } from "./scb-segmented-button/scb-segmented-item.js";
52
+ import { ScbSelectOption as Yr } from "./scb-select/scb-select-option.js";
53
+ import { ScbSelect as _r } from "./scb-select/scb-select.js";
54
+ import { ScbSkeleton as ro } from "./scb-skeleton/scb-skeleton.js";
55
+ import { ScbSnackbar as eo } from "./scb-snackbar/scb-snackbar.js";
56
+ import { ScbStatusPill as co } from "./scb-status-pill/scb-status-pill.js";
57
+ import { ScbStep as po } from "./scb-stepper/scb-step.js";
58
+ import { ScbStepper as bo } from "./scb-stepper/scb-stepper.js";
59
+ import { ScbSwitch as fo } from "./scb-switch/scb-switch.js";
60
+ import { ScbPrimaryTab as io } from "./scb-tabs/scb-primary-tab.js";
61
+ import { ScbSecondaryTab as uo } from "./scb-tabs/scb-secondary-tab.js";
62
+ import { ScbTabs as Co } from "./scb-tabs/scb-tabs.js";
63
+ import { ScbTextField as so } from "./scb-textfield/scb-textfield.js";
64
+ import { ScbTocItem as go } from "./scb-toc/scb-toc-item.js";
65
+ import { ScbToc as To } from "./scb-toc/scb-toc.js";
66
+ import { ScbTooltip as wo } from "./scb-tooltip/scb-tooltip.js";
67
+ import { ScbViz as Ho } from "./scb-viz/scb-viz.js";
67
68
  export {
68
69
  n as SCBBreadcrumb,
69
70
  i as SCBBreadcrumbItem,
70
71
  c as ScbAccordion,
71
72
  e as ScbAccordionItem,
72
- m as ScbAppBar,
73
+ p as ScbAppBar,
73
74
  b as ScbAvatar,
74
75
  f as ScbBadge,
75
76
  l as ScbButton,
76
77
  I as ScbCalendarCard,
77
78
  B as ScbCard,
78
- w as ScbCheckbox,
79
+ k as ScbCheckbox,
79
80
  D as ScbCheckboxGroup,
80
81
  F as ScbChip,
81
- P as ScbDialog,
82
- G as ScbDivider,
83
- z as ScbDrawer,
84
- A as ScbDrawerItem,
85
- M as ScbDrawerSection,
86
- V as ScbFactCard,
87
- O as ScbFactCardContent,
88
- J as ScbFooter,
89
- q as ScbFooterSection,
90
- Y as ScbGrid,
91
- W as ScbGridItem,
92
- br as ScbHeader,
93
- rr as ScbHeaderDrawerGroup,
94
- er as ScbHeaderDrawerItem,
95
- cr as ScbHeaderTab,
96
- mr as ScbHeaderUtility,
97
- fr as ScbHorizontalScroller,
98
- ir as ScbIconButton,
99
- nr as ScbKeyFigureCard,
100
- lr as ScbLink,
101
- Br as ScbList,
102
- Ir as ScbListItem,
103
- wr as ScbMenu,
104
- Dr as ScbMenuItem,
105
- Pr as ScbNotificationCard,
106
- Gr as ScbPagination,
107
- fo as ScbPrimaryTab,
108
- Ar as ScbProgressIndicator,
109
- Mr as ScbProgressStep,
110
- zr as ScbProgressStepper,
111
- Kr as ScbRadioButton,
112
- Or as ScbRadioGroup,
113
- Vr as ScbSearch,
114
- io as ScbSecondaryTab,
115
- qr as ScbSegmentedButton,
116
- Jr as ScbSegmentedItem,
117
- Yr as ScbSelect,
118
- Wr as ScbSelectOption,
119
- _r as ScbSkeleton,
120
- ro as ScbSnackbar,
121
- _ as ScbStack,
122
- eo as ScbStatusPill,
123
- co as ScbStep,
124
- mo as ScbStepper,
125
- K as ScbSubDrawer,
126
- Fr as ScbSubMenu,
127
- bo as ScbSwitch,
128
- uo as ScbTabs,
129
- Co as ScbTextField,
130
- go as ScbToc,
131
- so as ScbTocItem,
132
- To as ScbTooltip,
133
- ko as ScbViz
82
+ P as ScbDatepicker,
83
+ G as ScbDialog,
84
+ A as ScbDivider,
85
+ K as ScbDrawer,
86
+ M as ScbDrawerItem,
87
+ z as ScbDrawerSection,
88
+ q as ScbFactCard,
89
+ V as ScbFactCardContent,
90
+ W as ScbFooter,
91
+ J as ScbFooterSection,
92
+ _ as ScbGrid,
93
+ Y as ScbGridItem,
94
+ fr as ScbHeader,
95
+ er as ScbHeaderDrawerGroup,
96
+ cr as ScbHeaderDrawerItem,
97
+ pr as ScbHeaderTab,
98
+ br as ScbHeaderUtility,
99
+ ir as ScbHorizontalScroller,
100
+ nr as ScbIconButton,
101
+ lr as ScbKeyFigureCard,
102
+ Ir as ScbLink,
103
+ Dr as ScbList,
104
+ Br as ScbListItem,
105
+ Fr as ScbMenu,
106
+ kr as ScbMenuItem,
107
+ Gr as ScbNotificationCard,
108
+ Ar as ScbPagination,
109
+ io as ScbPrimaryTab,
110
+ Mr as ScbProgressIndicator,
111
+ zr as ScbProgressStep,
112
+ Kr as ScbProgressStepper,
113
+ Or as ScbRadioButton,
114
+ Vr as ScbRadioGroup,
115
+ qr as ScbSearch,
116
+ uo as ScbSecondaryTab,
117
+ Jr as ScbSegmentedButton,
118
+ Wr as ScbSegmentedItem,
119
+ _r as ScbSelect,
120
+ Yr as ScbSelectOption,
121
+ ro as ScbSkeleton,
122
+ eo as ScbSnackbar,
123
+ rr as ScbStack,
124
+ co as ScbStatusPill,
125
+ po as ScbStep,
126
+ bo as ScbStepper,
127
+ O as ScbSubDrawer,
128
+ Pr as ScbSubMenu,
129
+ fo as ScbSwitch,
130
+ Co as ScbTabs,
131
+ so as ScbTextField,
132
+ To as ScbToc,
133
+ go as ScbTocItem,
134
+ wo as ScbTooltip,
135
+ Ho as ScbViz
134
136
  };
@@ -11,6 +11,7 @@ import './scb-card/scb-card.js';
11
11
  import './scb-checkbox/scb-checkbox.js';
12
12
  import './scb-checkbox/scb-checkbox-group.js';
13
13
  import './scb-chip/scb-chip.js';
14
+ import './scb-datepicker/scb-datepicker.js';
14
15
  import './scb-dialog/scb-dialog.js';
15
16
  import './scb-divider/scb-divider.js';
16
17
  import './scb-drawer/scb-drawer.js';
@@ -0,0 +1,254 @@
1
+ import{a as g,r as h,n as p,i as w,x as i,t as m}from"../../vendor/vendor.js";import"../scb-icon-button/scb-icon-button.js";import"../scb-button/scb-button.js";import"../../vendor/vendor-material.js";import"../scb-divider/scb-divider.js";import"../../vendor/preload-helper.js";(function(){try{var e=typeof globalThis<"u"?globalThis:window;if(!e.__scb_ce_guard_installed__){e.__scb_ce_guard_installed__=!0;var t=customElements.define.bind(customElements);customElements.define=function(a,c,s){try{customElements.get(a)||t(a,c,s)}catch(n){var o=String(n||"");if(o.indexOf("already been used")===-1&&o.indexOf("NotSupportedError")===-1)throw n}}}}catch{}})();var v=Object.defineProperty,_=Object.getOwnPropertyDescriptor,l=(e,t,a,c)=>{for(var s=c>1?void 0:c?_(t,a):t,o=e.length-1,n;o>=0;o--)(n=e[o])&&(s=(c?n(t,a,s):n(s))||s);return c&&s&&v(t,a,s),s};let d=class extends w{constructor(){super(...arguments),this._currentDate=new Date,this._selectedDate=null,this._showMonthDropdown=!1,this._showYearDropdown=!1,this.variant="static",this.lang="sv",this.selectedValue="",this.open=!0,this._monthNames=[this.lang=="sv"?"Januari":"January",this.lang=="sv"?"Februari":"February",this.lang=="sv"?"Mars":"March",(this.lang=="sv","April"),this.lang=="sv"?"Maj":"May",this.lang=="sv"?"Juni":"June",this.lang=="sv"?"Juli":"July",this.lang=="sv"?"Augusti":"August",(this.lang=="sv","September"),this.lang=="sv"?"Oktober":"October",(this.lang=="sv","November"),(this.lang=="sv","December")],this._prevYear=()=>{const e=this._currentDate.getFullYear(),t=this._currentDate.getMonth();this._currentDate=new Date(e-1,t,1)},this._nextYear=()=>{const e=this._currentDate.getFullYear(),t=this._currentDate.getMonth();this._currentDate=new Date(e+1,t,1)},this._prevMonth=()=>{const e=this._currentDate.getFullYear(),t=this._currentDate.getMonth();this._currentDate=new Date(e,t-1,1)},this._nextMonth=()=>{const e=this._currentDate.getFullYear(),t=this._currentDate.getMonth();this._currentDate=new Date(e,t+1,1)},this._close=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("datepicker-closed",{bubbles:!0,composed:!0}))}}updated(e){if(super.updated(e),e.has("selectedValue")&&this.selectedValue){const t=new Date(this.selectedValue);isNaN(t.getTime())||(this._selectedDate=t,this._currentDate=new Date(t.getFullYear(),t.getMonth(),1))}}_getMonthDays(e,t){const a=new Date(e,t,1),c=new Date(e,t+1,0),s=[];let o=[],n=(a.getDay()+6)%7;for(let r=0;r<n;r++)o.push(null);for(let r=1;r<=c.getDate();r++){const u=new Date(e,t,r);o.push(u),o.length===7&&(s.push(o),o=[])}if(o.length){for(;o.length<7;)o.push(null);s.push(o)}return s}render(){if(!this.open)return i``;const e=this._currentDate.getFullYear(),t=this._currentDate.getMonth(),a=new Date,c=this._getMonthDays(e,t),s=Array.from({length:101},(o,n)=>a.getFullYear()-50+n);return i`
2
+ <div class="datepicker-popup ${this.variant==="popup"?"popup":"static"}">
3
+ <div class="header">
4
+ <div class="month-selector ${this._showMonthDropdown?"open":""} ${this._showYearDropdown?"disable":""}">
5
+ <scb-icon-button icon="chevron_left" @click=${this._prevMonth} aria-label=${this.lang=="sv"?"Föregående månad":"Previous month"}></scb-icon-button>
6
+ <div class="custom-dropdown month-dropdown">
7
+ <div
8
+ @keydown=${o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),this._toggleMonthDropdown())}}
9
+ tabindex="0" class="dropdown-selected" @click=${()=>this._toggleMonthDropdown()}>
10
+ ${this._monthNames[t].slice(0,3)}
11
+ <md-icon>arrow_drop_down</md-icon>
12
+ <md-focus-ring></md-focus-ring>
13
+ <md-ripple></md-ripple>
14
+ </div>
15
+ </div>
16
+ <scb-icon-button icon="chevron_right" @click=${this._nextMonth} aria-label=${this.lang=="sv"?"Nästa månad":"Next month"}></scb-icon-button>
17
+ </div>
18
+ <div class="year-selector ${this._showMonthDropdown?"disable":""} ${this._showYearDropdown?"open":""}">
19
+ <scb-icon-button icon="chevron_left" @click=${this._prevYear} aria-label=${this.lang=="sv"?"Föregående år":"Previous year"}></scb-icon-button>
20
+ <div class="custom-dropdown year-dropdown">
21
+ <div
22
+ @keydown=${o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),this._toggleYearDropdown())}}
23
+ tabindex="0" class="dropdown-selected" @click=${()=>this._toggleYearDropdown()}>
24
+ ${e}
25
+ <md-icon>arrow_drop_down</md-icon>
26
+ <md-focus-ring></md-focus-ring>
27
+ <md-ripple></md-ripple>
28
+ </div>
29
+ </div>
30
+ <scb-icon-button icon="chevron_right" @click=${this._nextYear} aria-label=${this.lang=="sv"?"Nästa år":"Next year"}></scb-icon-button>
31
+ </div>
32
+ </div>
33
+ ${this._showMonthDropdown||this._showYearDropdown?i`<scb-divider></scb-divider>`:""}
34
+ <div class="datepicker-content" style="position:relative;">
35
+ ${this._showMonthDropdown?i`
36
+ <div class="dropdown-list">
37
+ ${this._monthNames.map((o,n)=>i`
38
+ <div
39
+ @keydown=${r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),this._onMonthChangeCustom(n))}}
40
+ tabindex="0"
41
+ class="dropdown-item${n===t?" selected":""}"
42
+ @click=${()=>this._onMonthChangeCustom(n)}
43
+ id=${n===t?"selected-month":""}
44
+ >
45
+ ${n===t?i`<md-icon>check</md-icon>`:""}
46
+ ${o}
47
+ <md-ripple></md-ripple><md-focus-ring inward></md-focus-ring>
48
+ </div>
49
+ `)}
50
+ </div>
51
+ `:""}
52
+ ${this._showYearDropdown?i`
53
+ <div class="dropdown-list">
54
+ ${s.map(o=>i`
55
+ <div
56
+ @keydown=${n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),this._onYearChangeCustom(o))}}
57
+ tabindex="0"
58
+ class="dropdown-item${o===e?" selected":""}"
59
+ @click=${()=>this._onYearChangeCustom(o)}
60
+ id=${o===e?"selected-year":""}
61
+ >
62
+ ${o===e?i`<md-icon>check</md-icon>`:""}
63
+ ${o}
64
+ <md-ripple></md-ripple><md-focus-ring inward></md-focus-ring>
65
+ </div>
66
+ `)}
67
+ </div>
68
+ `:""}
69
+ ${!this._showMonthDropdown&&!this._showYearDropdown?i`
70
+ <div class="datepicker-calendar">
71
+ <table>
72
+ <thead>
73
+ <tr>
74
+ <th>${this.lang=="sv"?"Må":"Mo"}</th><th>${this.lang=="sv"?"Ti":"Tu"}</th><th>${this.lang=="sv"?"On":"We"}</th><th>${this.lang=="sv"?"To":"Th"}</th><th>${this.lang=="sv","Fr"}</th><th>${this.lang=="sv"?"Lö":"Sa"}</th><th>${this.lang=="sv"?"Sö":"Su"}</th>
75
+ </tr>
76
+ </thead>
77
+ <tbody>
78
+ ${c.map(o=>i`
79
+ <tr>
80
+ ${o.map(n=>n?i`
81
+ <td>
82
+ <div
83
+ @keydown=${r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),this._selectDate(n))}}
84
+ role="button"
85
+ tabindex="0"
86
+ class="day${this._isToday(n,a)?" today":""}${this._isSelected(n)?" selected":""}"
87
+ @click=${()=>this._selectDate(n)}
88
+ >${n.getDate()}<md-ripple></md-ripple><md-focus-ring></md-focus-ring></div>
89
+ </td>
90
+ `:i`<td></td>`)}
91
+ </tr>
92
+ `)}
93
+ </tbody>
94
+ </table>
95
+ </div>
96
+ `:""}
97
+ </div>
98
+ <div class="datepicker-footer">
99
+ ${!this._showMonthDropdown&&!this._showYearDropdown?i`
100
+ <scb-button variant="text" label=${this.lang=="sv"?"Stäng":"Close"} @click=${this._close}></scb-button>
101
+ `:""}
102
+ </div>
103
+ </div>
104
+ `}_toggleMonthDropdown(){this._showMonthDropdown=!this._showMonthDropdown,this._showMonthDropdown&&(this._showYearDropdown=!1,setTimeout(()=>{const e=this.renderRoot.querySelector("#selected-month");e&&e.scrollIntoView({block:"center"})},0))}_toggleYearDropdown(){this._showYearDropdown=!this._showYearDropdown,this._showYearDropdown&&(this._showMonthDropdown=!1,setTimeout(()=>{const e=this.renderRoot.querySelector("#selected-year");e&&e.scrollIntoView({block:"center"})},0))}_onMonthChangeCustom(e){const t=this._currentDate.getFullYear();this._currentDate=new Date(t,e,1),this._showMonthDropdown=!1}_onYearChangeCustom(e){const t=this._currentDate.getMonth();this._currentDate=new Date(e,t,1),this._showYearDropdown=!1}_isToday(e,t){return e.getDate()===t.getDate()&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}_isSelected(e){return this._selectedDate&&e.getDate()===this._selectedDate.getDate()&&e.getMonth()===this._selectedDate.getMonth()&&e.getFullYear()===this._selectedDate.getFullYear()}_selectDate(e){this._selectedDate=e;const t=e.toISOString().slice(0,10);this.dispatchEvent(new CustomEvent("date-selected",{detail:{value:t},bubbles:!0,composed:!0}))}};d.styles=[g`
105
+ :host {
106
+ --scb-datepicker-width: 380px;
107
+ width: var(--scb-datepicker-width);
108
+ font-family: var(--brand-font);
109
+ color: var(--md-sys-color-on-surface);
110
+ }
111
+ .month-selector, .year-selector {
112
+ display: flex;
113
+ align-items: center;
114
+ &.disable{
115
+ pointer-events: none;
116
+ opacity: 0.3;
117
+ scb-icon-button{
118
+ visibility: hidden;
119
+ }
120
+ }
121
+ &.open{
122
+ scb-icon-button{
123
+ visibility: hidden;
124
+ }
125
+ .dropdown-selected{
126
+ background: var(--md-sys-color-secondary-container);
127
+ }
128
+ }
129
+ }
130
+ .dropdown-selected {
131
+ position: relative;
132
+ border-radius: 8px;
133
+ font-size: 16px;
134
+ cursor: pointer;
135
+ text-align: left;
136
+ display: flex;
137
+ gap: 8px;
138
+ align-items: center;
139
+ padding: 4px 8px;
140
+ }
141
+ .dropdown-selected:focus {
142
+ outline: none;
143
+ }
144
+ .dropdown-selected md-focus-ring {
145
+ border-radius: 8px;
146
+ }
147
+ .dropdown-list {
148
+ position: relative;
149
+ background: var(--md-sys-color-surface);
150
+ padding: 4px 0;
151
+ }
152
+ .dropdown-item {
153
+ display: flex;
154
+ position: relative;
155
+ cursor: pointer;
156
+ padding: var(--spacing-3) 56px;
157
+ min-height: 40px;
158
+ align-items: center;
159
+ }
160
+ .dropdown-item:focus-within {
161
+ outline: none;
162
+ }
163
+ .dropdown-item md-focus-ring {
164
+ border-radius: var(--md-sys-shape-corner-small);
165
+ }
166
+ .dropdown-item.selected {
167
+ background: var(--md-sys-color-secondary-container, #e3f2fd);
168
+ font-weight: 500;
169
+ padding-left: 16px;
170
+ gap: 16px;
171
+ }
172
+ .datepicker-popup {
173
+ background: var(--md-sys-color-surface);
174
+ border-radius: var(--md-sys-shape-corner-small);
175
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.30), 0 2px 6px 2px rgba(0, 0, 0, 0.15);
176
+ max-width: var(--scb-datepicker-width);
177
+ width: 100%;
178
+ font-family: var(--brand-font);
179
+ }
180
+ .datepicker-content{
181
+ overflow-y: auto;
182
+ max-height: 260px;
183
+ }
184
+ .popup {
185
+ position:absolute;
186
+ top:110%;
187
+ left:0;
188
+ z-index:10;
189
+ }
190
+ .header {
191
+ display: flex;
192
+ align-items: center;
193
+ justify-content: space-between;
194
+ margin-bottom: 12px;
195
+ padding: 16px 24px 0 16px;
196
+ flex-wrap: wrap;
197
+ }
198
+ .datepicker-footer{
199
+ padding: 8px 16px 24px 16px;
200
+ }
201
+ .month-label {
202
+ font-size: 18px;
203
+ font-weight: 500;
204
+ }
205
+ .datepicker-calendar{
206
+ padding: 0 16px;
207
+ }
208
+ table {
209
+ width: 100%;
210
+ border-collapse: collapse;
211
+ margin-bottom: 8px;
212
+ }
213
+ th {
214
+ color: var(--md-sys-color-on-surface-variant, #757575);
215
+ font-size: 16px;
216
+ font-weight: 600;
217
+ padding: 4px;
218
+ }
219
+ td {
220
+ text-align: center;
221
+ }
222
+
223
+ .day:focus-within{
224
+ outline: none;
225
+ }
226
+ .day {
227
+ position: relative;
228
+ width: 40px;
229
+ height: 40px;
230
+ border-radius: 50%;
231
+ border: none;
232
+ background: none;
233
+ font-size: 16px;
234
+ cursor: pointer;
235
+ font-family: 'Inter';
236
+ align-content: center;
237
+ }
238
+ .day.selected {
239
+ background: var(--md-sys-color-secondary-container);
240
+ }
241
+ .close-datepicker {
242
+ margin-top: 8px;
243
+ background: none;
244
+ border-color: none;
245
+ color: var(--md-sys-color-primary, #0057b8);
246
+ font-size: 16px;
247
+ cursor: pointer;
248
+ padding: 4px 12px;
249
+ border-radius: 8px;
250
+ }
251
+ .close-datepicker:hover {
252
+ background: var(--md-sys-color-primary-container, #e3f2fd);
253
+ }
254
+ `];l([h()],d.prototype,"_currentDate",2);l([h()],d.prototype,"_selectedDate",2);l([h()],d.prototype,"_showMonthDropdown",2);l([h()],d.prototype,"_showYearDropdown",2);l([p({type:String})],d.prototype,"variant",2);l([p({type:String})],d.prototype,"lang",2);l([p({type:String})],d.prototype,"selectedValue",2);l([p({type:Boolean})],d.prototype,"open",2);d=l([m("scb-datepicker")],d);
@@ -1,4 +1,4 @@
1
- import{a as u,n as s,i as h,E as p,x as r,t as m}from"../../vendor/vendor.js";import"../scb-button/scb-button.js";import"../scb-icon-button/scb-icon-button.js";import"../scb-textfield/scb-textfield.js";import"../scb-checkbox/scb-checkbox.js";import"../scb-radio-button/scb-radio-button.js";import"../scb-switch/scb-switch.js";import"../scb-chip/scb-chip.js";import"../../vendor/vendor-material.js";import"../../vendor/preload-helper.js";import"../scb-checkbox/scb-checkbox-group.js";import"../scb-radio-button/scb-radio-group.js";(function(){try{var t=typeof globalThis<"u"?globalThis:window;if(!t.__scb_ce_guard_installed__){t.__scb_ce_guard_installed__=!0;var e=customElements.define.bind(customElements);customElements.define=function(n,c,a){try{customElements.get(n)||e(n,c,a)}catch(d){var l=String(d||"");if(l.indexOf("already been used")===-1&&l.indexOf("NotSupportedError")===-1)throw d}}}}catch{}})();var b=Object.defineProperty,f=Object.getOwnPropertyDescriptor,o=(t,e,n,c)=>{for(var a=c>1?void 0:c?f(e,n):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(a=(c?d(e,n,a):d(a))||a);return c&&a&&b(e,n,a),a};let i=class extends h{constructor(){super(...arguments),this.open=!1,this.inSb=!1,this.scrimClose=!0,this.variant="basic",this.label="",this.icon="",this.supportingText="",this.okButton="OK",this.cancelButton="Avbryt",this.deleteButton="Delete",this.confirmButton="Ta bort",this.denyButton="Avbryt",this.resetButton="Återställ",this.submitButton="Spara",this.formId="",this.formAction="",this.formMethod="",this.__lastTriggerEl=null,this.__onDocumentClick=t=>{this.__getActionFromEvent(t)==="toggle"&&(this.__setOpen(!this.open),t.stopPropagation())},this.__onDocumentKeydown=t=>{this.open&&t.key==="Escape"&&(this.__fire("esc"),this.__setOpen(!1))},this.__onScrimClick=()=>{this.scrimClose&&(this.__fire("scrim"),this.__setOpen(!1))},this.__onOk=()=>{this.__fire("ok"),this.__setOpen(!1)},this.__onCancel=()=>{this.__fire("cancel"),this.__setOpen(!1)},this.__onConfirm=()=>{this.__fire("confirm"),this.__setOpen(!1)},this.__onDeny=()=>{this.__fire("deny"),this.__setOpen(!1)},this.__onReset=()=>{this.shadowRoot?.querySelector("form")?.reset(),(this.shadowRoot?.querySelector("slot")?.assignedElements({flatten:!0})??[]).forEach(e=>{const n=e.tagName;n==="SCB-TEXTFIELD"&&(e.value=""),n==="SCB-CHECKBOX"&&(e.checked=!1),n==="SCB-RADIO-BUTTON"&&(e.checked=!1),n==="SCB-SWITCH"&&(e.selected=!1),n==="SCB-CHIP"&&(e.selected=!1)}),this.__fire("reset")},this.__onSubmit=()=>{this.shadowRoot?.querySelector("form")?.requestSubmit(),this.__fire("submit"),this.__setOpen(!1)},this.__onKeydownTrap=t=>{if(!this.open||t.key!=="Tab")return;const e=Array.from(this.shadowRoot.querySelectorAll('button,[href],input,select,textarea,[tabindex]:not([tabindex="-1"])')).filter(a=>!a.hasAttribute("disabled"));if(!e.length)return;const n=e[0],c=e[e.length-1];t.shiftKey&&document.activeElement===n?(c.focus(),t.preventDefault()):!t.shiftKey&&document.activeElement===c&&(n.focus(),t.preventDefault())}}__getActionFromEvent(t){if(!this.id)return null;for(const e of t.composedPath())if(e instanceof Element){if(e.getAttribute("data-dialog-toggle")===this.id)return this.__lastTriggerEl=e,"toggle";if(e.getAttribute("aria-controls")===this.id)return this.__lastTriggerEl=e,"toggle"}return null}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.__onDocumentClick,!1),document.addEventListener("keydown",this.__onDocumentKeydown,!0),this.addEventListener("keydown",this.__onKeydownTrap)}disconnectedCallback(){document.removeEventListener("click",this.__onDocumentClick,!1),document.removeEventListener("keydown",this.__onDocumentKeydown,!0),this.removeEventListener("keydown",this.__onKeydownTrap),super.disconnectedCallback()}updated(t){if(t.has("open")){const e=t.get("open");this.__updateTriggersExpanded(),this.open&&!e?this.updateComplete.then(()=>{this.shadowRoot?.querySelector('button,[href],input,select,textarea,[tabindex]:not([tabindex="-1"])')?.focus?.()}):!this.open&&e&&this.__lastTriggerEl?.focus?.(),this.__toggleScrollLock(this.open)}}__updateTriggersExpanded(){this.id&&document.querySelectorAll(`[aria-controls="${this.id}"], [data-dialog-toggle="${this.id}"]`).forEach(t=>{t.hasAttribute("aria-controls")&&t.setAttribute("aria-expanded",String(this.open))})}__toggleScrollLock(t){if(this.inSb)return;const e=document.documentElement;e.style.overflow=t?"hidden":""}__setOpen(t){this.open=t,this.__fire(t?"open":"close")}__fire(t,e){this.dispatchEvent(new CustomEvent(t,{detail:e,bubbles:!0,composed:!0}))}__slotIsEmpty(){const t=this.shadowRoot?.querySelector("slot");return t?t.assignedElements({flatten:!0}).length===0:!0}renderHeader(t){const e=this.variant==="form"||this.variant==="floating";return r`
1
+ import{a as u,n as s,i as h,E as p,x as r,t as m}from"../../vendor/vendor.js";import"../scb-button/scb-button.js";import"../scb-icon-button/scb-icon-button.js";import"../scb-textfield/scb-textfield.js";import"../scb-checkbox/scb-checkbox.js";import"../scb-radio-button/scb-radio-button.js";import"../scb-switch/scb-switch.js";import"../scb-chip/scb-chip.js";import"../../vendor/vendor-material.js";import"../../vendor/preload-helper.js";import"../scb-datepicker/scb-datepicker.js";import"../scb-divider/scb-divider.js";import"../scb-checkbox/scb-checkbox-group.js";import"../scb-radio-button/scb-radio-group.js";(function(){try{var t=typeof globalThis<"u"?globalThis:window;if(!t.__scb_ce_guard_installed__){t.__scb_ce_guard_installed__=!0;var e=customElements.define.bind(customElements);customElements.define=function(n,c,a){try{customElements.get(n)||e(n,c,a)}catch(d){var l=String(d||"");if(l.indexOf("already been used")===-1&&l.indexOf("NotSupportedError")===-1)throw d}}}}catch{}})();var b=Object.defineProperty,f=Object.getOwnPropertyDescriptor,o=(t,e,n,c)=>{for(var a=c>1?void 0:c?f(e,n):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(a=(c?d(e,n,a):d(a))||a);return c&&a&&b(e,n,a),a};let i=class extends h{constructor(){super(...arguments),this.open=!1,this.inSb=!1,this.scrimClose=!0,this.variant="basic",this.label="",this.icon="",this.supportingText="",this.okButton="OK",this.cancelButton="Avbryt",this.deleteButton="Delete",this.confirmButton="Ta bort",this.denyButton="Avbryt",this.resetButton="Återställ",this.submitButton="Spara",this.formId="",this.formAction="",this.formMethod="",this.__lastTriggerEl=null,this.__onDocumentClick=t=>{this.__getActionFromEvent(t)==="toggle"&&(this.__setOpen(!this.open),t.stopPropagation())},this.__onDocumentKeydown=t=>{this.open&&t.key==="Escape"&&(this.__fire("esc"),this.__setOpen(!1))},this.__onScrimClick=()=>{this.scrimClose&&(this.__fire("scrim"),this.__setOpen(!1))},this.__onOk=()=>{this.__fire("ok"),this.__setOpen(!1)},this.__onCancel=()=>{this.__fire("cancel"),this.__setOpen(!1)},this.__onConfirm=()=>{this.__fire("confirm"),this.__setOpen(!1)},this.__onDeny=()=>{this.__fire("deny"),this.__setOpen(!1)},this.__onReset=()=>{this.shadowRoot?.querySelector("form")?.reset(),(this.shadowRoot?.querySelector("slot")?.assignedElements({flatten:!0})??[]).forEach(e=>{const n=e.tagName;n==="SCB-TEXTFIELD"&&(e.value=""),n==="SCB-CHECKBOX"&&(e.checked=!1),n==="SCB-RADIO-BUTTON"&&(e.checked=!1),n==="SCB-SWITCH"&&(e.selected=!1),n==="SCB-CHIP"&&(e.selected=!1)}),this.__fire("reset")},this.__onSubmit=()=>{this.shadowRoot?.querySelector("form")?.requestSubmit(),this.__fire("submit"),this.__setOpen(!1)},this.__onKeydownTrap=t=>{if(!this.open||t.key!=="Tab")return;const e=Array.from(this.shadowRoot.querySelectorAll('button,[href],input,select,textarea,[tabindex]:not([tabindex="-1"])')).filter(a=>!a.hasAttribute("disabled"));if(!e.length)return;const n=e[0],c=e[e.length-1];t.shiftKey&&document.activeElement===n?(c.focus(),t.preventDefault()):!t.shiftKey&&document.activeElement===c&&(n.focus(),t.preventDefault())}}__getActionFromEvent(t){if(!this.id)return null;for(const e of t.composedPath())if(e instanceof Element){if(e.getAttribute("data-dialog-toggle")===this.id)return this.__lastTriggerEl=e,"toggle";if(e.getAttribute("aria-controls")===this.id)return this.__lastTriggerEl=e,"toggle"}return null}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.__onDocumentClick,!1),document.addEventListener("keydown",this.__onDocumentKeydown,!0),this.addEventListener("keydown",this.__onKeydownTrap)}disconnectedCallback(){document.removeEventListener("click",this.__onDocumentClick,!1),document.removeEventListener("keydown",this.__onDocumentKeydown,!0),this.removeEventListener("keydown",this.__onKeydownTrap),super.disconnectedCallback()}updated(t){if(t.has("open")){const e=t.get("open");this.__updateTriggersExpanded(),this.open&&!e?this.updateComplete.then(()=>{this.shadowRoot?.querySelector('button,[href],input,select,textarea,[tabindex]:not([tabindex="-1"])')?.focus?.()}):!this.open&&e&&this.__lastTriggerEl?.focus?.(),this.__toggleScrollLock(this.open)}}__updateTriggersExpanded(){this.id&&document.querySelectorAll(`[aria-controls="${this.id}"], [data-dialog-toggle="${this.id}"]`).forEach(t=>{t.hasAttribute("aria-controls")&&t.setAttribute("aria-expanded",String(this.open))})}__toggleScrollLock(t){if(this.inSb)return;const e=document.documentElement;e.style.overflow=t?"hidden":""}__setOpen(t){this.open=t,this.__fire(t?"open":"close")}__fire(t,e){this.dispatchEvent(new CustomEvent(t,{detail:e,bubbles:!0,composed:!0}))}__slotIsEmpty(){const t=this.shadowRoot?.querySelector("slot");return t?t.assignedElements({flatten:!0}).length===0:!0}renderHeader(t){const e=this.variant==="form"||this.variant==="floating";return r`
2
2
  <div class="header">
3
3
  <div class="title">
4
4
  ${this.icon?r`<md-icon class="dialog-icon">${this.icon}</md-icon>`:p}