scb-wc-test 0.1.106 → 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 +2 -0
- package/index.d.ts +1 -0
- package/index.js +112 -110
- package/mvc/components/all.js +1 -0
- package/mvc/components/scb-datepicker/scb-datepicker.js +254 -0
- package/mvc/components/scb-dialog/scb-dialog.js +1 -1
- package/mvc/components/scb-icon-button/scb-icon-button.js +13 -12
- package/mvc/components/scb-segmented-button/scb-segmented-button.js +15 -14
- package/mvc/components/scb-textfield/scb-textfield.js +35 -2
- package/package.json +6 -2
- package/scb-datepicker/scb-datepicker.d.ts +28 -0
- package/scb-datepicker/scb-datepicker.js +404 -0
- package/scb-icon-button/scb-icon-button.d.ts +4 -0
- package/scb-icon-button/scb-icon-button.js +46 -39
- package/scb-segmented-button/scb-segmented-button.d.ts +4 -0
- package/scb-segmented-button/scb-segmented-button.js +61 -54
- package/scb-textfield/scb-textfield.d.ts +3 -0
- package/scb-textfield/scb-textfield.js +53 -6
- package/scb-wc-test.bundle.js +750 -462
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
|
|
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
|
|
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 {
|
|
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 {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
-
import {
|
|
49
|
-
import {
|
|
50
|
-
import {
|
|
51
|
-
import {
|
|
52
|
-
import {
|
|
53
|
-
import {
|
|
54
|
-
import {
|
|
55
|
-
import {
|
|
56
|
-
import {
|
|
57
|
-
import {
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
import {
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
79
|
+
k as ScbCheckbox,
|
|
79
80
|
D as ScbCheckboxGroup,
|
|
80
81
|
F as ScbChip,
|
|
81
|
-
P as
|
|
82
|
-
G as
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
M as
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
er as
|
|
95
|
-
cr as
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
ir as
|
|
99
|
-
nr as
|
|
100
|
-
lr as
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
Gr as
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
Mr as
|
|
110
|
-
zr as
|
|
111
|
-
Kr as
|
|
112
|
-
Or as
|
|
113
|
-
Vr as
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
Jr as
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
ro as
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
co as
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
Co as
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
};
|
package/mvc/components/all.js
CHANGED
|
@@ -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}
|