scb-wc-test 0.1.107 → 0.1.109

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,276 @@
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,r){try{customElements.get(a)||t(a,c,r)}catch(s){var o=String(s||"");if(o.indexOf("already been used")===-1&&o.indexOf("NotSupportedError")===-1)throw s}}}}catch{}})();var v=Object.defineProperty,_=Object.getOwnPropertyDescriptor,l=(e,t,a,c)=>{for(var r=c>1?void 0:c?_(t,a):t,o=e.length-1,s;o>=0;o--)(s=e[o])&&(r=(c?s(t,a,r):s(r))||r);return c&&r&&v(t,a,r),r};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._outsideClickHandler=e=>{this.variant!=="static"&&this.open&&(e.composedPath().includes(this)||this._close())},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})),window.removeEventListener("mousedown",this._outsideClickHandler)}}updated(e){if(super.updated(e),this.variant!=="static"&&this.open?window.addEventListener("mousedown",this._outsideClickHandler):window.removeEventListener("mousedown",this._outsideClickHandler),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),r=[];let o=[],s=(a.getDay()+6)%7;for(let n=0;n<s;n++)o.push(null);for(let n=1;n<=c.getDate();n++){const u=new Date(e,t,n);o.push(u),o.length===7&&(r.push(o),o=[])}if(o.length){for(;o.length<7;)o.push(null);r.push(o)}return r}render(){if(!this.open)return i``;const e=this._currentDate.getFullYear(),t=this._currentDate.getMonth(),a=new Date,c=this._getMonthDays(e,t),r=Array.from({length:101},(o,s)=>a.getFullYear()-50+s);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
+ tabindex=${this._showYearDropdown?-1:0}
9
+ class="dropdown-selected"
10
+ @click=${()=>this._toggleMonthDropdown()}
11
+ @keydown=${o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),this._toggleMonthDropdown())}}
12
+ >
13
+ ${this._monthNames[t].slice(0,3)}
14
+ <md-icon>arrow_drop_down</md-icon>
15
+ <md-focus-ring></md-focus-ring>
16
+ <md-ripple></md-ripple>
17
+ </div>
18
+ </div>
19
+ <scb-icon-button icon="chevron_right" @click=${this._nextMonth} aria-label=${this.lang=="sv"?"Nästa månad":"Next month"}></scb-icon-button>
20
+ </div>
21
+ <div class="year-selector ${this._showMonthDropdown?"disable":""} ${this._showYearDropdown?"open":""}">
22
+ <scb-icon-button icon="chevron_left" @click=${this._prevYear} aria-label=${this.lang=="sv"?"Föregående år":"Previous year"}></scb-icon-button>
23
+ <div class="custom-dropdown year-dropdown">
24
+ <div
25
+ tabindex=${this._showMonthDropdown?-1:0}
26
+ class="dropdown-selected"
27
+ @click=${()=>this._toggleYearDropdown()}
28
+ @keydown=${o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),this._toggleYearDropdown())}}
29
+ >
30
+ ${e}
31
+ <md-icon>arrow_drop_down</md-icon>
32
+ <md-focus-ring></md-focus-ring>
33
+ <md-ripple></md-ripple>
34
+ </div>
35
+ </div>
36
+ <scb-icon-button icon="chevron_right" @click=${this._nextYear} aria-label=${this.lang=="sv"?"Nästa år":"Next year"}></scb-icon-button>
37
+ </div>
38
+ </div>
39
+ ${this._showMonthDropdown||this._showYearDropdown?i`<scb-divider></scb-divider>`:""}
40
+ <div class="datepicker-content" style="position:relative;">
41
+ ${this._showMonthDropdown?i`
42
+ <div class="dropdown-list">
43
+ ${this._monthNames.map((o,s)=>i`
44
+ <div
45
+ @keydown=${n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),this._onMonthChangeCustom(s))}}
46
+ tabindex="0"
47
+ class="dropdown-item${s===t?" selected":""}"
48
+ @click=${()=>this._onMonthChangeCustom(s)}
49
+ id=${s===t?"selected-month":""}
50
+ >
51
+ ${s===t?i`<md-icon>check</md-icon>`:""}
52
+ ${o}
53
+ <md-ripple></md-ripple><md-focus-ring inward></md-focus-ring>
54
+ </div>
55
+ `)}
56
+ </div>
57
+ `:""}
58
+ ${this._showYearDropdown?i`
59
+ <div class="dropdown-list">
60
+ ${r.map(o=>i`
61
+ <div
62
+ @keydown=${s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),this._onYearChangeCustom(o))}}
63
+ tabindex="0"
64
+ class="dropdown-item${o===e?" selected":""}"
65
+ @click=${()=>this._onYearChangeCustom(o)}
66
+ id=${o===e?"selected-year":""}
67
+ >
68
+ ${o===e?i`<md-icon>check</md-icon>`:""}
69
+ ${o}
70
+ <md-ripple></md-ripple><md-focus-ring inward></md-focus-ring>
71
+ </div>
72
+ `)}
73
+ </div>
74
+ `:""}
75
+ ${!this._showMonthDropdown&&!this._showYearDropdown?i`
76
+ <div class="datepicker-calendar">
77
+ <table>
78
+ <thead>
79
+ <tr>
80
+ <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>
81
+ </tr>
82
+ </thead>
83
+ <tbody>
84
+ ${c.map(o=>i`
85
+ <tr>
86
+ ${o.map(s=>s?i`
87
+ <td>
88
+ <div
89
+ @keydown=${n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),this._selectDate(s))}}
90
+ role="button"
91
+ tabindex="0"
92
+ class="day${this._isToday(s,a)?" today":""}${this._isSelected(s)?" selected":""}"
93
+ @click=${()=>this._selectDate(s)}
94
+ >${s.getDate()}<md-ripple></md-ripple><md-focus-ring></md-focus-ring></div>
95
+ </td>
96
+ `:i`<td></td>`)}
97
+ </tr>
98
+ `)}
99
+ </tbody>
100
+ </table>
101
+ </div>
102
+ `:""}
103
+ </div>
104
+ <div class="datepicker-footer">
105
+ ${!this._showMonthDropdown&&!this._showYearDropdown&&this.variant=="popup"?i`
106
+ <scb-button variant="text" label=${this.lang=="sv"?"Stäng":"Close"} @click=${this._close}></scb-button>
107
+ `:""}
108
+ </div>
109
+ </div>
110
+ `}_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`
111
+ :host {
112
+ --scb-datepicker-width: 380px;
113
+ max-width: var(--scb-datepicker-width);
114
+ font-family: var(--brand-font);
115
+ color: var(--md-sys-color-on-surface);
116
+ display: block;
117
+ }
118
+ .month-selector, .year-selector {
119
+ display: flex;
120
+ align-items: center;
121
+ &.disable{
122
+ pointer-events: none;
123
+ opacity: 0.3;
124
+ scb-icon-button{
125
+ visibility: hidden;
126
+ }
127
+ }
128
+ &.open{
129
+ scb-icon-button{
130
+ visibility: hidden;
131
+ }
132
+ .dropdown-selected{
133
+ background: var(--md-sys-color-secondary-container);
134
+ }
135
+ }
136
+ }
137
+ .dropdown-selected {
138
+ position: relative;
139
+ border-radius: 8px;
140
+ font-size: 16px;
141
+ cursor: pointer;
142
+ text-align: left;
143
+ display: flex;
144
+ gap: 8px;
145
+ align-items: center;
146
+ padding: 4px 8px;
147
+ }
148
+ .dropdown-selected:focus {
149
+ outline: none;
150
+ }
151
+ .dropdown-selected md-focus-ring {
152
+ border-radius: 8px;
153
+ }
154
+ .dropdown-list {
155
+ position: relative;
156
+ background: var(--md-sys-color-surface);
157
+ padding: 4px 0;
158
+ }
159
+ .dropdown-item {
160
+ display: flex;
161
+ position: relative;
162
+ cursor: pointer;
163
+ padding: var(--spacing-3) 56px;
164
+ min-height: 40px;
165
+ align-items: center;
166
+ }
167
+ .dropdown-item:focus-within {
168
+ outline: none;
169
+ }
170
+ .dropdown-item md-focus-ring {
171
+ border-radius: var(--md-sys-shape-corner-small);
172
+ }
173
+ .dropdown-item.selected {
174
+ background: var(--md-sys-color-secondary-container, #e3f2fd);
175
+ font-weight: 500;
176
+ padding-left: 16px;
177
+ gap: 16px;
178
+ }
179
+ .datepicker-popup {
180
+ background: var(--md-sys-color-surface);
181
+ border-radius: var(--md-sys-shape-corner-small);
182
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.30), 0 2px 6px 2px rgba(0, 0, 0, 0.15);
183
+ max-width: var(--scb-datepicker-width);
184
+ width: 100%;
185
+ font-family: var(--brand-font);
186
+ }
187
+ .datepicker-content{
188
+ overflow-y: auto;
189
+ max-height: 290px;
190
+ }
191
+ .datepicker-content::-webkit-scrollbar {
192
+ width: 12px;
193
+ background: var(--md-sys-color-surface);
194
+ border-radius: var(--md-sys-shape-corner-small);
195
+ }
196
+ .datepicker-content::-webkit-scrollbar-thumb {
197
+ background: var(--md-sys-color-outline);
198
+ border-radius: var(--md-sys-shape-corner-small);
199
+ border: 4px solid var(--md-sys-color-surface);
200
+
201
+ }
202
+ .datepicker-content::-webkit-scrollbar-track {
203
+ background: var(--md-sys-color-surface);
204
+ border-radius: var(--md-sys-shape-corner-small);
205
+ }
206
+ .popup {
207
+ position:absolute;
208
+ top:110%;
209
+ left:0;
210
+ z-index:10;
211
+ }
212
+ .header {
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: space-between;
216
+ margin-bottom: 30px;
217
+ padding: 20px 16px 0px 16px;
218
+ flex-wrap: wrap;
219
+ }
220
+ .datepicker-footer{
221
+ padding: 8px 16px 24px 16px;
222
+ }
223
+ .month-label {
224
+ font-size: 18px;
225
+ font-weight: 500;
226
+ }
227
+ .datepicker-calendar{
228
+ padding: 0 16px;
229
+ }
230
+ table {
231
+ width: 100%;
232
+ border-collapse: collapse;
233
+ margin-bottom: 8px;
234
+ }
235
+ th {
236
+ color: var(--md-sys-color-on-surface-variant, #757575);
237
+ font-size: 16px;
238
+ font-weight: 600;
239
+ padding-bottom: 20px;
240
+ }
241
+ td {
242
+ text-align: center;
243
+ }
244
+
245
+ .day:focus-within{
246
+ outline: none;
247
+ }
248
+ .day {
249
+ position: relative;
250
+ width: 40px;
251
+ height: 40px;
252
+ border-radius: 50%;
253
+ border: none;
254
+ background: none;
255
+ font-size: 16px;
256
+ cursor: pointer;
257
+ font-family: 'Inter';
258
+ align-content: center;
259
+ }
260
+ .day.selected {
261
+ background: var(--md-sys-color-secondary-container);
262
+ }
263
+ .close-datepicker {
264
+ margin-top: 8px;
265
+ background: none;
266
+ border-color: none;
267
+ color: var(--md-sys-color-primary, #0057b8);
268
+ font-size: 16px;
269
+ cursor: pointer;
270
+ padding: 4px 12px;
271
+ border-radius: 8px;
272
+ }
273
+ .close-datepicker:hover {
274
+ background: var(--md-sys-color-primary-container, #e3f2fd);
275
+ }
276
+ `];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}