@sbb-esta/lyne-elements-dev 5.1.0-dev.1782984019 → 5.1.0-dev.1783094101
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/custom-elements.json +20 -2
- package/date-input.pure.js +1 -1
- package/development/date-input.pure.js +15 -7
- package/development/time-input.pure.js +10 -6
- package/package.json +2 -2
- package/time-input.pure.js +1 -1
package/custom-elements.json
CHANGED
|
@@ -100784,7 +100784,16 @@
|
|
|
100784
100784
|
"type": {
|
|
100785
100785
|
"text": "void"
|
|
100786
100786
|
}
|
|
100787
|
-
}
|
|
100787
|
+
},
|
|
100788
|
+
"parameters": [
|
|
100789
|
+
{
|
|
100790
|
+
"name": "except",
|
|
100791
|
+
"optional": true,
|
|
100792
|
+
"type": {
|
|
100793
|
+
"text": "keyof ValidityStateFlags"
|
|
100794
|
+
}
|
|
100795
|
+
}
|
|
100796
|
+
]
|
|
100788
100797
|
},
|
|
100789
100798
|
{
|
|
100790
100799
|
"kind": "field",
|
|
@@ -157592,7 +157601,16 @@
|
|
|
157592
157601
|
"type": {
|
|
157593
157602
|
"text": "void"
|
|
157594
157603
|
}
|
|
157595
|
-
}
|
|
157604
|
+
},
|
|
157605
|
+
"parameters": [
|
|
157606
|
+
{
|
|
157607
|
+
"name": "except",
|
|
157608
|
+
"optional": true,
|
|
157609
|
+
"type": {
|
|
157610
|
+
"text": "keyof ValidityStateFlags"
|
|
157611
|
+
}
|
|
157612
|
+
}
|
|
157613
|
+
]
|
|
157596
157614
|
},
|
|
157597
157615
|
{
|
|
157598
157616
|
"kind": "method",
|
package/date-input.pure.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{__esDecorate as e,__runInitializers as t}from"tslib";import{isServer as n,unsafeCSS as r}from"lit";import{property as i}from"lit/decorators.js";import{SbbElement as a,SbbFormAssociatedInputMixin as o,defaultDateAdapter as s,i18nDateInvalid as c,i18nDateMax as l,i18nDateMin as u,i18nDatePickerPlaceholder as d,plainDate as f,plainDateConverter as p,readConfig as m}from"./core.js";var h=`:host{cursor:text;align-items:center;min-width:9.375rem;max-width:100%;font-weight:400;display:inline-flex}@media (forced-colors:active){:host{color:fieldtext}}:host(:disabled){cursor:var(--sbb-cursor-default)}:host(:focus){text-overflow:initial!important}:host(:empty):after{content:attr(placeholder);color:var(--sbb-color-5);-webkit-text-fill-color:var(--sbb-color-5);opacity:1}@media (forced-colors:active){:host(:empty):after{color:graytext}}
|
|
2
|
-
`;Object.assign(ValidityState.prototype,{get sbbDateFilter(){return!1}});let g=(()=>{let g=o(a),_=[],v,y,b=[],x=[],S,C=[],w=[],T,E,D=[],O=[];return class extends g{static{let t=typeof Symbol==`function`&&Symbol.metadata?Object.create(g[Symbol.metadata]??null):void 0;v=[i({attribute:!1})],y=[f(),i({converter:p,reflect:!0})],S=[f(),i({converter:p,reflect:!0})],T=[i({attribute:!1})],E=[i({attribute:`weekday-style`})],e(this,null,v,{kind:`setter`,name:`valueAsDate`,static:!1,private:!1,access:{has:e=>`valueAsDate`in e,set:(e,t)=>{e.valueAsDate=t}},metadata:t},null,_),e(this,null,y,{kind:`accessor`,name:`min`,static:!1,private:!1,access:{has:e=>`min`in e,get:e=>e.min,set:(e,t)=>{e.min=t}},metadata:t},b,x),e(this,null,S,{kind:`accessor`,name:`max`,static:!1,private:!1,access:{has:e=>`max`in e,get:e=>e.max,set:(e,t)=>{e.max=t}},metadata:t},C,w),e(this,null,T,{kind:`setter`,name:`dateFilter`,static:!1,private:!1,access:{has:e=>`dateFilter`in e,set:(e,t)=>{e.dateFilter=t}},metadata:t},null,_),e(this,null,E,{kind:`accessor`,name:`weekdayStyle`,static:!1,private:!1,access:{has:e=>`weekdayStyle`in e,get:e=>e.weekdayStyle,set:(e,t)=>{e.weekdayStyle=t}},metadata:t},D,O),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}static{this.elementName=`sbb-date-input`}static{this.styles=[r(h)]}set value(e){this._tryParseValue(e),!n&&!this.isSelected()&&this.valueAsDate!==null&&(e=this._formatDate()),super.value=e}get value(){return super.value??``}set valueAsDate(e){if(e=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),!(this.isSelected()&&(e===null||this._dateAdapter.sameDate(e,this._dateAdapter.parse(this.value))))){if(!e)this._valueAsDate=null,this._valueCache=[``,null],this.value=``;else if(!this._dateAdapter.isDateInstance(this._valueAsDate)||this._dateAdapter.compareDate(this._valueAsDate,e)!==0){this._valueAsDate=this._dateAdapter.createDate(this._dateAdapter.getYear(e),this._dateAdapter.getMonth(e),this._dateAdapter.getDate(e));let t=this._formatDate();this._valueCache=[t,this._valueAsDate],this.value=t}}}get valueAsDate(){return this._valueAsDate?this._dateAdapter.clone(this._valueAsDate):null}#e;get min(){return this.#e}set min(e){this.#e=e}#t;get max(){return this.#t}set max(e){this.#t=e}set dateFilter(e){this._dateFilter=e}get dateFilter(){return this._dateFilter}#n;get weekdayStyle(){return this.#n}set weekdayStyle(e){this.#n=e}get datepicker(){return this.parentElement.querySelector(`sbb-datepicker`)}constructor(){super(),this._valueAsDate=t(this,_),this.#e=t(this,b,null),this.#t=(t(this,x),t(this,C,null)),this.#n=(t(this,w),t(this,D,`short`)),this._valueCache=t(this,O),this._dateAdapter=m().datetime?.dateAdapter??s,this._placeholderMutable=!1,this._dateFilter=()=>!0,this.addEventListener?.(`change`,()=>this._updateValueDateFormat(),{capture:!0})}static resolveAssociation(e){if(e.hasAttribute(`input`)||e.input)return;let t=e.closest(`sbb-form-field`)?.querySelector(`sbb-date-input`);t&&(e.input=t)}connectedCallback(){super.connectedCallback(),this.placeholder||=(this._placeholderMutable=!0,d[this.language.current]);for(let e of Array.from(this.closest(`sbb-form-field`)?.children??[]))customElements.upgrade?.(e),e.constructor.sbbDateInputAssociated&&!e.hasAttribute(`input`)&&!e.input&&(e.input=this)}requestUpdate(e,t,n){super.requestUpdate(e,t,n),this.hasUpdated&&!e?(this._updateValueDateFormat(),this._placeholderMutable&&(this.placeholder=d[this.language.current])):e===`weekdayStyle`&&this._updateValueDateFormat(),this.isConnected&&this.dispatchEvent(new Event(`ɵchange`))}updateFormValue(){this._tryParseValue();let e=this.valueAsDate===null?null:this._dateAdapter.toIso8601(this.valueAsDate);this.internals.setFormValue(e,this.value)}_tryParseValue(e=this.value){this._valueCache?.[0]!==e&&(this._valueAsDate=this._dateAdapter.parse(e),this._valueCache=[e,this._valueAsDate])}_updateValueDateFormat(){if(this.valueAsDate){let e=this._formatDate();this.value!==e&&(super.value=e)}}_formatDate(){return this._dateAdapter.format(this.valueAsDate,{weekdayStyle:this.weekdayStyle})}shouldValidate(e){return super.shouldValidate(e)||[`valueAsDate`,`min`,`max`,`dateFilter`].includes(e)}validate(){super.validate(),this.value?this._dateAdapter.isValid(this.valueAsDate)?this._dateAdapter.isValid(this.min)&&this._dateAdapter.compareDate(this.min,this.valueAsDate)>0?this.setValidityFlag(`rangeUnderflow`,u(this._dateAdapter.format(this.min,{weekdayStyle:`none`}))[this.language.current]):this._dateAdapter.isValid(this.max)&&this._dateAdapter.compareDate(this.valueAsDate,this.max)>0?this.setValidityFlag(`rangeOverflow`,l(this._dateAdapter.format(this.max,{weekdayStyle:`none`}))[this.language.current]):this.dateFilter&&!this.dateFilter(this.valueAsDate)?this.setValidityFlag(`sbbDateFilter`,c[this.language.current]):this._removeValidityErrors():this.setValidityFlag(`badInput`,c[this.language.current]):this._removeValidityErrors()}_removeValidityErrors(){[`badInput`,`rangeUnderflow`,`rangeOverflow`,`sbbDateFilter`].forEach(e=>this.removeValidityFlag(e))}}})();export{g as SbbDateInputElement};
|
|
2
|
+
`;Object.assign(ValidityState.prototype,{get sbbDateFilter(){return!1}});let g=(()=>{let g=o(a),_=[],v,y,b=[],x=[],S,C=[],w=[],T,E,D=[],O=[];return class extends g{static{let t=typeof Symbol==`function`&&Symbol.metadata?Object.create(g[Symbol.metadata]??null):void 0;v=[i({attribute:!1})],y=[f(),i({converter:p,reflect:!0})],S=[f(),i({converter:p,reflect:!0})],T=[i({attribute:!1})],E=[i({attribute:`weekday-style`})],e(this,null,v,{kind:`setter`,name:`valueAsDate`,static:!1,private:!1,access:{has:e=>`valueAsDate`in e,set:(e,t)=>{e.valueAsDate=t}},metadata:t},null,_),e(this,null,y,{kind:`accessor`,name:`min`,static:!1,private:!1,access:{has:e=>`min`in e,get:e=>e.min,set:(e,t)=>{e.min=t}},metadata:t},b,x),e(this,null,S,{kind:`accessor`,name:`max`,static:!1,private:!1,access:{has:e=>`max`in e,get:e=>e.max,set:(e,t)=>{e.max=t}},metadata:t},C,w),e(this,null,T,{kind:`setter`,name:`dateFilter`,static:!1,private:!1,access:{has:e=>`dateFilter`in e,set:(e,t)=>{e.dateFilter=t}},metadata:t},null,_),e(this,null,E,{kind:`accessor`,name:`weekdayStyle`,static:!1,private:!1,access:{has:e=>`weekdayStyle`in e,get:e=>e.weekdayStyle,set:(e,t)=>{e.weekdayStyle=t}},metadata:t},D,O),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}static{this.elementName=`sbb-date-input`}static{this.styles=[r(h)]}set value(e){this._tryParseValue(e),!n&&!this.isSelected()&&this.valueAsDate!==null&&(e=this._formatDate()),super.value=e}get value(){return super.value??``}set valueAsDate(e){if(e=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),!(this.isSelected()&&(e===null||this._dateAdapter.sameDate(e,this._dateAdapter.parse(this.value))))){if(!e)this._valueAsDate=null,this._valueCache=[``,null],this.value=``;else if(!this._dateAdapter.isDateInstance(this._valueAsDate)||this._dateAdapter.compareDate(this._valueAsDate,e)!==0){this._valueAsDate=this._dateAdapter.createDate(this._dateAdapter.getYear(e),this._dateAdapter.getMonth(e),this._dateAdapter.getDate(e));let t=this._formatDate();this._valueCache=[t,this._valueAsDate],this.value=t}}}get valueAsDate(){return this._valueAsDate?this._dateAdapter.clone(this._valueAsDate):null}#e;get min(){return this.#e}set min(e){this.#e=e}#t;get max(){return this.#t}set max(e){this.#t=e}set dateFilter(e){this._dateFilter=e}get dateFilter(){return this._dateFilter}#n;get weekdayStyle(){return this.#n}set weekdayStyle(e){this.#n=e}get datepicker(){return this.parentElement.querySelector(`sbb-datepicker`)}constructor(){super(),this._valueAsDate=t(this,_),this.#e=t(this,b,null),this.#t=(t(this,x),t(this,C,null)),this.#n=(t(this,w),t(this,D,`short`)),this._valueCache=t(this,O),this._dateAdapter=m().datetime?.dateAdapter??s,this._placeholderMutable=!1,this._dateFilter=()=>!0,this.addEventListener?.(`change`,()=>this._updateValueDateFormat(),{capture:!0})}static resolveAssociation(e){if(e.hasAttribute(`input`)||e.input)return;let t=e.closest(`sbb-form-field`)?.querySelector(`sbb-date-input`);t&&(e.input=t)}connectedCallback(){super.connectedCallback(),this.placeholder||=(this._placeholderMutable=!0,d[this.language.current]);for(let e of Array.from(this.closest(`sbb-form-field`)?.children??[]))customElements.upgrade?.(e),e.constructor.sbbDateInputAssociated&&!e.hasAttribute(`input`)&&!e.input&&(e.input=this)}requestUpdate(e,t,n){super.requestUpdate(e,t,n),this.hasUpdated&&!e?(this._updateValueDateFormat(),this._placeholderMutable&&(this.placeholder=d[this.language.current])):e===`weekdayStyle`&&this._updateValueDateFormat(),this.isConnected&&this.dispatchEvent(new Event(`ɵchange`))}updateFormValue(){this._tryParseValue();let e=this.valueAsDate===null?null:this._dateAdapter.toIso8601(this.valueAsDate);this.internals.setFormValue(e,this.value)}_tryParseValue(e=this.value){this._valueCache?.[0]!==e&&(this._valueAsDate=this._dateAdapter.parse(e),this._valueCache=[e,this._valueAsDate])}_updateValueDateFormat(){if(this.valueAsDate){let e=this._formatDate();this.value!==e&&(super.value=e)}}_formatDate(){return this._dateAdapter.format(this.valueAsDate,{weekdayStyle:this.weekdayStyle})}shouldValidate(e){return super.shouldValidate(e)||[`valueAsDate`,`min`,`max`,`dateFilter`].includes(e)}validate(){super.validate(),this.value?this._dateAdapter.isValid(this.valueAsDate)?this._dateAdapter.isValid(this.min)&&this._dateAdapter.compareDate(this.min,this.valueAsDate)>0?(this._removeValidityErrors(`rangeUnderflow`),this.setValidityFlag(`rangeUnderflow`,u(this._dateAdapter.format(this.min,{weekdayStyle:`none`}))[this.language.current])):this._dateAdapter.isValid(this.max)&&this._dateAdapter.compareDate(this.valueAsDate,this.max)>0?(this._removeValidityErrors(`rangeOverflow`),this.setValidityFlag(`rangeOverflow`,l(this._dateAdapter.format(this.max,{weekdayStyle:`none`}))[this.language.current])):this.dateFilter&&!this.dateFilter(this.valueAsDate)?(this._removeValidityErrors(`sbbDateFilter`),this.setValidityFlag(`sbbDateFilter`,c[this.language.current])):this._removeValidityErrors():(this._removeValidityErrors(`badInput`),this.setValidityFlag(`badInput`,c[this.language.current])):this._removeValidityErrors()}_removeValidityErrors(e){[`badInput`,`rangeUnderflow`,`rangeOverflow`,`sbbDateFilter`].filter(t=>t!==e).forEach(e=>this.removeValidityFlag(e))}}})();export{g as SbbDateInputElement};
|
|
@@ -282,19 +282,27 @@ let SbbDateInputElement = (() => {
|
|
|
282
282
|
validate() {
|
|
283
283
|
super.validate();
|
|
284
284
|
if (!this.value) this._removeValidityErrors();
|
|
285
|
-
else if (!this._dateAdapter.isValid(this.valueAsDate))
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
else if (this.
|
|
289
|
-
|
|
285
|
+
else if (!this._dateAdapter.isValid(this.valueAsDate)) {
|
|
286
|
+
this._removeValidityErrors("badInput");
|
|
287
|
+
this.setValidityFlag("badInput", i18nDateInvalid[this.language.current]);
|
|
288
|
+
} else if (this._dateAdapter.isValid(this.min) && this._dateAdapter.compareDate(this.min, this.valueAsDate) > 0) {
|
|
289
|
+
this._removeValidityErrors("rangeUnderflow");
|
|
290
|
+
this.setValidityFlag("rangeUnderflow", i18nDateMin(this._dateAdapter.format(this.min, { weekdayStyle: "none" }))[this.language.current]);
|
|
291
|
+
} else if (this._dateAdapter.isValid(this.max) && this._dateAdapter.compareDate(this.valueAsDate, this.max) > 0) {
|
|
292
|
+
this._removeValidityErrors("rangeOverflow");
|
|
293
|
+
this.setValidityFlag("rangeOverflow", i18nDateMax(this._dateAdapter.format(this.max, { weekdayStyle: "none" }))[this.language.current]);
|
|
294
|
+
} else if (this.dateFilter && !this.dateFilter(this.valueAsDate)) {
|
|
295
|
+
this._removeValidityErrors("sbbDateFilter");
|
|
296
|
+
this.setValidityFlag("sbbDateFilter", i18nDateInvalid[this.language.current]);
|
|
297
|
+
} else this._removeValidityErrors();
|
|
290
298
|
}
|
|
291
|
-
_removeValidityErrors() {
|
|
299
|
+
_removeValidityErrors(except) {
|
|
292
300
|
[
|
|
293
301
|
"badInput",
|
|
294
302
|
"rangeUnderflow",
|
|
295
303
|
"rangeOverflow",
|
|
296
304
|
"sbbDateFilter"
|
|
297
|
-
].forEach((f) => this.removeValidityFlag(f));
|
|
305
|
+
].filter((v) => v !== except).forEach((f) => this.removeValidityFlag(f));
|
|
298
306
|
}
|
|
299
307
|
};
|
|
300
308
|
})();
|
|
@@ -154,12 +154,16 @@ let SbbTimeInputElement = (() => {
|
|
|
154
154
|
validate() {
|
|
155
155
|
super.validate();
|
|
156
156
|
if (!this.value) this._removeValidityErrors();
|
|
157
|
-
else if (!this._valueAsTime)
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
157
|
+
else if (!this._valueAsTime) {
|
|
158
|
+
this._removeValidityErrors("badInput");
|
|
159
|
+
this.setValidityFlag("badInput", i18nTimeInvalid[this.language.current]);
|
|
160
|
+
} else if (!this._isTimeValid(this._valueAsTime)) {
|
|
161
|
+
this._removeValidityErrors("rangeOverflow");
|
|
162
|
+
this.setValidityFlag("rangeOverflow", i18nTimeMax[this.language.current]);
|
|
163
|
+
} else this._removeValidityErrors();
|
|
164
|
+
}
|
|
165
|
+
_removeValidityErrors(except) {
|
|
166
|
+
["badInput", "rangeOverflow"].filter((v) => v !== except).forEach((f) => this.removeValidityFlag(f));
|
|
163
167
|
}
|
|
164
168
|
/** Checks if values of hours and minutes are possible, to avoid non-existent times. */
|
|
165
169
|
_isTimeValid(time) {
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sbb-esta/lyne-elements-dev",
|
|
3
|
-
"version": "5.1.0-dev.
|
|
3
|
+
"version": "5.1.0-dev.1783094101",
|
|
4
4
|
"description": "Lyne Design System",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"design system",
|
|
7
7
|
"web components",
|
|
8
8
|
"lit",
|
|
9
|
-
"https://github.com/sbb-design-systems/lyne-components/commit/
|
|
9
|
+
"https://github.com/sbb-design-systems/lyne-components/commit/fe4880376f36ed4e1e4fef760232f64775cb482a"
|
|
10
10
|
],
|
|
11
11
|
"type": "module",
|
|
12
12
|
"exports": {
|
package/time-input.pure.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{__esDecorate as e,__runInitializers as t}from"tslib";import{isServer as n,unsafeCSS as r}from"lit";import{property as i}from"lit/decorators.js";import{SbbElement as a,SbbFormAssociatedInputMixin as o,SbbLanguageController as s,i18nTimeInputChange as c,i18nTimeInvalid as l,i18nTimeMax as u,i18nTimeMaxLength as d,sbbLiveAnnouncer as f}from"./core.js";var p=`:host{min-width:var(--sbb-time-input-max-width);max-width:var(--sbb-time-input-max-width);cursor:text;align-items:center;font-weight:400;display:inline-flex}@media (forced-colors:active){:host{color:fieldtext}}:host(:disabled){cursor:var(--sbb-cursor-default)}:host(:focus){text-overflow:initial!important}:host(:empty):after{content:attr(placeholder);color:var(--sbb-color-5);-webkit-text-fill-color:var(--sbb-color-5);opacity:1}@media (forced-colors:active){:host(:empty):after{color:graytext}}
|
|
2
|
-
`;const m=/[0-9.:,\-;_hH]/,h=/[^0-9.:,\-;_hH]/g,g=/^([0-9]{1,2})([0-9]{2})$/,_=/^([0-9]{1,2})?[.:,\-;_hH]?([0-9]{1,2})?$/;let v=(()=>{let v=o(a),y=[],b;return class extends v{static{let t=typeof Symbol==`function`&&Symbol.metadata?Object.create(v[Symbol.metadata]??null):void 0;b=[i({attribute:!1})],e(this,null,b,{kind:`setter`,name:`valueAsDate`,static:!1,private:!1,access:{has:e=>`valueAsDate`in e,set:(e,t)=>{e.valueAsDate=t}},metadata:t},null,y),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}static{this.elementName=`sbb-time-input`}static{this.styles=[r(p)]}set value(e){e=typeof e==`string`?e.replace(h,``).substring(0,5):``,this._tryParseValue(e),!n&&!this.isSelected()&&this.valueAsDate!==null&&(e=this._formatTime()),super.value=e}get value(){return super.value??``}set valueAsDate(e){let t=this._toTime(e);if(!(this.isSelected()&&(t===null||this._isSameTime(t,this._parseValue(this.value)))))if(t){this._valueAsTime=t;let e=this._formatTime();this.value!==e&&(this.value=e)}else this._valueAsTime=null,this.value=``}get valueAsDate(){if(this._valueAsTime&&this._isTimeValid(this._valueAsTime)){let e=new Date(0);return e.setHours(this._valueAsTime.hours),e.setMinutes(this._valueAsTime.minutes),e}else return null}constructor(){super(),this._valueAsTime=t(this,y),this._language=new s(this),this.addEventListener?.(`change`,()=>this._updateValueDateFormat(),{capture:!0}),this.addEventListener?.(`change`,()=>f.announce(c(this.value)[this._language.current])),this.addEventListener?.(`keydown`,e=>this._preventCharInsert(e))}connectedCallback(){super.connectedCallback(),this.inputMode||=`numeric`,this.placeholder||=`HH:MM`}disconnectedCallback(){super.disconnectedCallback()}updateFormValue(){this._tryParseValue();let e=this.valueAsDate===null?null:this._formatTime();this.internals.setFormValue(e,this.value)}_tryParseValue(e=this.value){this._valueCache?.[0]!==e&&(this._valueAsTime=this._parseValue(e),this._valueCache=[e,this._valueAsTime??null])}_parseValue(e){let t=e?.trim();if(!t)return null;let n=t.match(g)??t.match(_);return n?{hours:+n[1]||0,minutes:+n[2]||0}:null}_toTime(e){return e instanceof Date&&!isNaN(e.valueOf())?{hours:e.getHours(),minutes:e.getMinutes()}:null}_isSameTime(e,t){return!!(e==t||e&&t&&e.hours===t.hours&&e.minutes===t.minutes)}_updateValueDateFormat(){if(this.valueAsDate){let e=this._formatTime();this.value!==e&&(super.value=e)}}_formatTime(){let e=this.valueAsDate;return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:``}preparePastedText(e){return e.replace(h,``).substring(0,5-(this.textContent?.length??0))}shouldValidate(e){return super.shouldValidate(e)||[`valueAsDate`,`min`,`max`,`dateFilter`].includes(e)}validate(){super.validate(),this.value?this._valueAsTime?this._isTimeValid(this._valueAsTime)?this._removeValidityErrors():this.setValidityFlag(`rangeOverflow`,u[this.language.current]):this.setValidityFlag(`badInput`,l[this.language.current]):this._removeValidityErrors()}_removeValidityErrors(){[`badInput`,`rangeOverflow`].forEach(e=>this.removeValidityFlag(e))}_isTimeValid(e){return e.hours<24&&e.minutes<60}_preventCharInsert(e){e.ctrlKey||e.altKey||e.metaKey||[`Backspace`,`Tab`,`Enter`,`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`Home`,`End`,`PageUp`,`PageDown`,`Delete`].includes(e.key)||m.test(e.key)&&(this.value.length<5||this._hasSelection())||(e.preventDefault(),this.value.length>=5&&f.announce(d[this._language.current]))}_hasSelection(){let e=window.getSelection()?.getRangeAt(0);return!!e&&e.startOffset!==e.endOffset}}})();export{v as SbbTimeInputElement};
|
|
2
|
+
`;const m=/[0-9.:,\-;_hH]/,h=/[^0-9.:,\-;_hH]/g,g=/^([0-9]{1,2})([0-9]{2})$/,_=/^([0-9]{1,2})?[.:,\-;_hH]?([0-9]{1,2})?$/;let v=(()=>{let v=o(a),y=[],b;return class extends v{static{let t=typeof Symbol==`function`&&Symbol.metadata?Object.create(v[Symbol.metadata]??null):void 0;b=[i({attribute:!1})],e(this,null,b,{kind:`setter`,name:`valueAsDate`,static:!1,private:!1,access:{has:e=>`valueAsDate`in e,set:(e,t)=>{e.valueAsDate=t}},metadata:t},null,y),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}static{this.elementName=`sbb-time-input`}static{this.styles=[r(p)]}set value(e){e=typeof e==`string`?e.replace(h,``).substring(0,5):``,this._tryParseValue(e),!n&&!this.isSelected()&&this.valueAsDate!==null&&(e=this._formatTime()),super.value=e}get value(){return super.value??``}set valueAsDate(e){let t=this._toTime(e);if(!(this.isSelected()&&(t===null||this._isSameTime(t,this._parseValue(this.value)))))if(t){this._valueAsTime=t;let e=this._formatTime();this.value!==e&&(this.value=e)}else this._valueAsTime=null,this.value=``}get valueAsDate(){if(this._valueAsTime&&this._isTimeValid(this._valueAsTime)){let e=new Date(0);return e.setHours(this._valueAsTime.hours),e.setMinutes(this._valueAsTime.minutes),e}else return null}constructor(){super(),this._valueAsTime=t(this,y),this._language=new s(this),this.addEventListener?.(`change`,()=>this._updateValueDateFormat(),{capture:!0}),this.addEventListener?.(`change`,()=>f.announce(c(this.value)[this._language.current])),this.addEventListener?.(`keydown`,e=>this._preventCharInsert(e))}connectedCallback(){super.connectedCallback(),this.inputMode||=`numeric`,this.placeholder||=`HH:MM`}disconnectedCallback(){super.disconnectedCallback()}updateFormValue(){this._tryParseValue();let e=this.valueAsDate===null?null:this._formatTime();this.internals.setFormValue(e,this.value)}_tryParseValue(e=this.value){this._valueCache?.[0]!==e&&(this._valueAsTime=this._parseValue(e),this._valueCache=[e,this._valueAsTime??null])}_parseValue(e){let t=e?.trim();if(!t)return null;let n=t.match(g)??t.match(_);return n?{hours:+n[1]||0,minutes:+n[2]||0}:null}_toTime(e){return e instanceof Date&&!isNaN(e.valueOf())?{hours:e.getHours(),minutes:e.getMinutes()}:null}_isSameTime(e,t){return!!(e==t||e&&t&&e.hours===t.hours&&e.minutes===t.minutes)}_updateValueDateFormat(){if(this.valueAsDate){let e=this._formatTime();this.value!==e&&(super.value=e)}}_formatTime(){let e=this.valueAsDate;return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:``}preparePastedText(e){return e.replace(h,``).substring(0,5-(this.textContent?.length??0))}shouldValidate(e){return super.shouldValidate(e)||[`valueAsDate`,`min`,`max`,`dateFilter`].includes(e)}validate(){super.validate(),this.value?this._valueAsTime?this._isTimeValid(this._valueAsTime)?this._removeValidityErrors():(this._removeValidityErrors(`rangeOverflow`),this.setValidityFlag(`rangeOverflow`,u[this.language.current])):(this._removeValidityErrors(`badInput`),this.setValidityFlag(`badInput`,l[this.language.current])):this._removeValidityErrors()}_removeValidityErrors(e){[`badInput`,`rangeOverflow`].filter(t=>t!==e).forEach(e=>this.removeValidityFlag(e))}_isTimeValid(e){return e.hours<24&&e.minutes<60}_preventCharInsert(e){e.ctrlKey||e.altKey||e.metaKey||[`Backspace`,`Tab`,`Enter`,`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`Home`,`End`,`PageUp`,`PageDown`,`Delete`].includes(e.key)||m.test(e.key)&&(this.value.length<5||this._hasSelection())||(e.preventDefault(),this.value.length>=5&&f.announce(d[this._language.current]))}_hasSelection(){let e=window.getSelection()?.getRangeAt(0);return!!e&&e.startOffset!==e.endOffset}}})();export{v as SbbTimeInputElement};
|