UNPKG

@scania/tegel

Version:
1 lines 16.3 kB
import{t,p as e,H as d,c as i,h as s}from"./index.js";import{g as a}from"./p-Cn4f8w1e.js";import{d as m}from"./p-CIt4YhvL.js";const o=e(class extends d{constructor(t){super(),!1!==t&&this.__registerHost(),this.tdsChange=i(this,"tdsChange",6),this.tdsBlur=i(this,"tdsBlur",6),this.tdsFocus=i(this,"tdsFocus",6),this.tdsInput=i(this,"tdsInput",6),this.shouldValidate=!1,this.type="datetime-local",this.value="",this.defaultValue="none",this.disabled=!1,this.size="lg",this.noMinWidth=!1,this.modeVariant=null,this.name="datetime-"+a(),this.autofocus=!1,this.label="",this.labelPosition="no-label",this.helper="",this.helperErrorInvalid="Invalid input",this.focusInput=!1,this.nativeValidation=()=>!(this.min&&this.textInput.validity.rangeUnderflow||this.max&&this.textInput.validity.rangeOverflow||this.textInput.validity.badInput),this.getDefaultValue=()=>{const t=this.defaultValue.slice(0,4),e=this.defaultValue.slice(5,7),d=this.defaultValue.slice(6,8),i=this.defaultValue.slice(8,10),s=this.defaultValue.slice(11,13),a=this.defaultValue.slice(14,16);switch(this.type){case"datetime-local":return`${t}-${e}-${i}T${s}:${a}`;case"date":return`${t}-${e}-${i}`;case"month":return`${t}-${e}`;case"week":return`${t}-W${d}`;case"time":return`${this.defaultValue.slice(0,2)}:${this.defaultValue.slice(3,5)}`;default:throw Error("Invalid type.")}}}async reset(){this.internalReset(),this.tdsChange.emit({name:this.name,value:this.value})}async setValue(t){this.value=t}async focusElement(){this.textInput&&(this.textInput.focus(),this.focusInput=!0)}componentWillLoad(){"none"!==this.defaultValue&&(this.value=this.getDefaultValue())}componentDidRender(){this.shouldValidate&&(this.shouldValidate=!1,this.validateDate())}handleFocusIn(){this.focusInput=!0}handleFocusOut(){this.validateDate(),this.focusInput=!1}onValueChanged(){this.shouldValidate=!0}validateDate(){this.state="none",!this.nativeValidation()||this.customValidator&&!this.customValidator(this.textInput.value)?this.state="error":this.textInput.value&&(this.state="success")}handleInput(t){this.value=t.target.value,this.tdsInput.emit(t)}handleChange(t){this.tdsChange.emit(t)}handleFocusClick(t){this.textInput.focus(),this.tdsFocus.emit(t)}handleBlur(t){this.textInput.blur(),this.tdsBlur.emit(t)}internalReset(){"none"!==this.defaultValue&&(this.value=this.getDefaultValue()),this.value=""}render(){var t,e;const d=navigator.userAgent.toLowerCase().includes("iphone");let i=" tds-datetime-input";return"md"===this.size&&(i+=i+"-md"),"sm"===this.size&&(i+=i+"-sm"),d&&(i+=" iphone"),s("div",{key:"a55d784701c35fda184c9e17fbe8466854f9140d",class:{"tds-form-datetime-nomin":this.noMinWidth,"tds-form-datetime":!0,"tds-datetime-focus":this.focusInput,"tds-datetime-data":this.value.length>0,"tds-form-datetime-disabled":this.disabled,["tds-form-datetime-"+this.size]:["md","sm"].includes(this.size),["tds-form-datetime-"+this.state]:["error","success"].includes(""+this.state),["tds-mode-variant-"+this.modeVariant]:null!==this.modeVariant,"tds-datetime-container-label-inside":!(!this.label||"inside"!==this.labelPosition||"sm"===this.size)},onKeyDown:t=>{"Enter"===t.key&&navigator.userAgent.toLowerCase().includes("chrome")&&this.textInput.showPicker()}},"outside"===this.labelPosition&&this.label&&s("label",{key:"ff47d44b79345c816cf9b22bd913b6a595299dce",htmlFor:this.name,class:"tds-datetime-label"},this.label),s("div",{key:"013669e9b4f3421e96b9239a187515967baf7619",onClick:t=>this.handleFocusClick(t),class:"tds-datetime-container"},s("div",{key:"f06de994b6b1c8fe1db77f914be22797db14018d",class:"tds-datetime-input-container type-"+this.type},s("input",{key:"c003adf22a66a2a04f13abd636c924bd1ad1c6c9",ref:t=>{t&&(this.textInput=t)},class:i,type:this.type,disabled:this.disabled,value:this.value,min:this.min,max:this.max,autofocus:this.autofocus,name:this.name,id:this.name,onInput:t=>this.handleInput(t),onBlur:t=>this.handleBlur(t),onChange:t=>this.handleChange(t),"aria-label":this.tdsAriaLabel?this.tdsAriaLabel:this.label}),"inside"===this.labelPosition&&"sm"!==this.size&&this.label&&s("label",{key:"128a8b90a28b6c1c9c2eacc292603b3d1f8e5f10",class:"tds-datetime-label-inside",htmlFor:this.name},this.label),s("div",{key:"21331931956e4abf045a01a4af7f5fcf602990bd",class:"datetime-icon icon-datetime-local"},s("tds-icon",{key:"77c1f611eae6c6ff3d102681b28ce42e0709ff84",size:"20px",name:"calendar",svgTitle:"Calendar"})),s("div",{key:"36f01c633df5181ad6107aa158de499fafa2569f",class:"datetime-icon icon-time"},s("tds-icon",{key:"03bb2f56e70a68c8d882bdfdce747a15d1b4cfdc",size:"20px",name:"clock",svgTitle:"Clock"})))),"error"===this.state&&s("div",{key:"40fbf2006d5709b84468e0e05b5b51804c141923",class:"tds-datetime-helper"},!(null===(e=null===(t=this.textInput)||void 0===t?void 0:t.validity)||void 0===e?void 0:e.badInput)&&s("div",{key:"7f2990d54c62fbef3743662b944a09aab28a8a56",class:"tds-helper"},s("tds-icon",{key:"cdcb11a48a1d1fc3298711ed9f3b96b6a7ecef0d",name:"error",size:"16px",svgTitle:"error"})," ",this.helperError),this.textInput&&this.textInput.validity.badInput&&s("div",{key:"51489ac6f3dbcb31f8ff89c1544a6a17c19ab239",class:"tds-helper"},s("tds-icon",{key:"6fb19117b7f191564ed2b1c4071500a16ea40219",name:"error",size:"16px",svgTitle:"error"})," ",this.helperErrorInvalid)),this.helper&&"error"!==this.state&&s("div",{key:"a6766afd774a6219e783ec1b5e79c250b94bace2",class:"tds-datetime-helper"},s("div",{key:"bba762fea80aca3e14da8ac9f9f210234edd9c70",class:"tds-helper"},this.helper)))}static get watchers(){return{value:[{onValueChanged:0}]}}static get style(){return"@supports selector(input::-webkit-datetime-edit){.tds-datetime-input.sc-tds-datetime:not(:focus)::-webkit-datetime-edit,.tds-datetime-input-md.sc-tds-datetime:not(:focus)::-webkit-datetime-edit,.tds-datetime-input-sm.sc-tds-datetime:not(:focus)::-webkit-datetime-edit{color:var(--tds-datetime-placeholder-color)}}.tds-datetime-input[type=datetime-local].sc-tds-datetime~.icon-time.sc-tds-datetime,.tds-datetime-input-md[type=datetime-local].sc-tds-datetime~.icon-time.sc-tds-datetime,.tds-datetime-input-sm[type=datetime-local].sc-tds-datetime~.icon-time.sc-tds-datetime{display:none}.tds-datetime-input[type=date].sc-tds-datetime~.icon-time.sc-tds-datetime,.tds-datetime-input-md[type=date].sc-tds-datetime~.icon-time.sc-tds-datetime,.tds-datetime-input-sm[type=date].sc-tds-datetime~.icon-time.sc-tds-datetime{display:none}.tds-datetime-input[type=month].sc-tds-datetime~.icon-time.sc-tds-datetime,.tds-datetime-input-md[type=month].sc-tds-datetime~.icon-time.sc-tds-datetime,.tds-datetime-input-sm[type=month].sc-tds-datetime~.icon-time.sc-tds-datetime{display:none}.tds-datetime-input[type=week].sc-tds-datetime~.icon-time.sc-tds-datetime,.tds-datetime-input-md[type=week].sc-tds-datetime~.icon-time.sc-tds-datetime,.tds-datetime-input-sm[type=week].sc-tds-datetime~.icon-time.sc-tds-datetime{display:none}.tds-datetime-input[type=time].sc-tds-datetime~.icon-datetime-local.sc-tds-datetime,.tds-datetime-input-md[type=time].sc-tds-datetime~.icon-datetime-local.sc-tds-datetime,.tds-datetime-input-sm[type=time].sc-tds-datetime~.icon-datetime-local.sc-tds-datetime{display:none}.tds-datetime-input.sc-tds-datetime{box-sizing:border-box;border-radius:4px 4px 0 0;width:100%;box-sizing:border-box;margin:0;border:none;outline:none;height:100%;color:var(--tds-datetime-color);background-color:var(--tds-datetime-background);font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);padding:var(--tds-spacing-element-20) var(--tds-spacing-element-16)}.tds-datetime-input.sc-tds-datetime *.sc-tds-datetime{box-sizing:border-box}.tds-datetime-input.sc-tds-datetime:disabled{background-color:var(--tds-datetime-background-disabled);color:var(--tds-datetime-color-disabled);cursor:not-allowed}.tds-datetime-input.sc-tds-datetime:disabled~.tds-datetime-label-inside.sc-tds-datetime{color:var(--tds-datetime-label-disabled)}.tds-datetime-input.iphone.sc-tds-datetime{padding:0}.tds-datetime-input-md.sc-tds-datetime,.tds-datetime-input-sm.sc-tds-datetime{box-sizing:border-box;border-radius:4px 4px 0 0;width:100%;box-sizing:border-box;margin:0;border:none;outline:none;height:100%;color:var(--tds-datetime-color);background-color:var(--tds-datetime-background);font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);padding:var(--tds-spacing-element-16)}.tds-datetime-input-md.sc-tds-datetime *.sc-tds-datetime,.tds-datetime-input-sm.sc-tds-datetime *.sc-tds-datetime{box-sizing:border-box}.tds-datetime-input-md.sc-tds-datetime:disabled,.tds-datetime-input-sm.sc-tds-datetime:disabled{background-color:var(--tds-datetime-background-disabled);color:var(--tds-datetime-color-disabled);cursor:not-allowed}.tds-datetime-input-md.sc-tds-datetime:disabled~.tds-datetime-label-inside.sc-tds-datetime,.tds-datetime-input-sm.sc-tds-datetime:disabled~.tds-datetime-label-inside.sc-tds-datetime{color:var(--tds-datetime-label-disabled)}.tds-datetime-input-md.iphone.sc-tds-datetime,.tds-datetime-input-sm.iphone.sc-tds-datetime{padding:0}.tds-datetime-container.sc-tds-datetime{border-radius:4px 4px 0 0;display:flex;position:relative;height:56px;box-sizing:border-box;background-color:var(--tds-datetime-background);border-bottom:1px solid var(--tds-datetime-border-bottom);transition:border-bottom-color 200ms ease}.tds-datetime-container.sc-tds-datetime:hover{border-bottom-color:var(--tds-datetime-border-bottom-hover)}.tds-form-datetime-md.sc-tds-datetime .tds-datetime-container.sc-tds-datetime{height:48px}.tds-form-datetime-sm.sc-tds-datetime .tds-datetime-container.sc-tds-datetime{height:40px}.tds-datetime-input-container.sc-tds-datetime{position:relative;width:100%}.tds-datetime-input-container.sc-tds-datetime .datetime-icon.sc-tds-datetime{height:20px;width:20px;position:absolute;top:50%;transform:translateY(-50%);right:18px;pointer-events:none;color:var(--tds-datetime-icon)}.tds-datetime-label.sc-tds-datetime{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);display:block;margin-bottom:var(--tds-spacing-element-8);color:var(--tds-datetime-label-color)}.tds-datetime-label-inside.sc-tds-datetime{font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);position:absolute;pointer-events:none;color:var(--tds-datetime-label-inside-color);left:16px}.tds-form-datetime.sc-tds-datetime{display:block;min-width:208px;background:unset}.tds-form-datetime-nomin.sc-tds-datetime{min-width:auto}.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input.sc-tds-datetime{padding-top:var(--tds-spacing-element-24);padding-bottom:15px}.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input.sc-tds-datetime~.tds-datetime-label-inside.sc-tds-datetime{top:20px}.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input.iphone.sc-tds-datetime{padding:0}.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input-md.sc-tds-datetime,.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input-sm.sc-tds-datetime{padding-top:var(--tds-spacing-element-20);padding-bottom:11px}.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input-md.sc-tds-datetime~.tds-datetime-label-inside.sc-tds-datetime,.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input-sm.sc-tds-datetime~.tds-datetime-label-inside.sc-tds-datetime{top:16px}.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input-md.iphone.sc-tds-datetime,.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input-sm.iphone.sc-tds-datetime{padding:0}.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input-sm.sc-tds-datetime~.tds-datetime-label-inside.sc-tds-datetime,.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input-md.sc-tds-datetime~.tds-datetime-label-inside.sc-tds-datetime{font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:0.1s ease all;top:8px}.tds-form-datetime.tds-datetime-container-label-inside.sc-tds-datetime .tds-datetime-input.sc-tds-datetime~.tds-datetime-label-inside.sc-tds-datetime{font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:0.1s ease all;top:12px}.tds-datetime-focus.sc-tds-datetime .tds-datetime-input.sc-tds-datetime,.tds-datetime-focus.sc-tds-datetime .tds-datetime-input-md.sc-tds-datetime,.tds-datetime-focus.sc-tds-datetime .tds-datetime-input-sm.sc-tds-datetime{border-radius:0;outline:2px solid var(--tds-focus-outline-color);box-shadow:inset 0 0 0 3px var(--tds-white);outline-offset:-2px;z-index:1}.tds-datetime-focus.sc-tds-datetime .tds-datetime-container.sc-tds-datetime{border-bottom:none}.tds-datetime-helper.sc-tds-datetime{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);display:block;flex-basis:100%;padding:var(--tds-spacing-element-4) 0;color:var(--tds-datetime-helper)}.tds-datetime-helper.sc-tds-datetime .tds-helper.sc-tds-datetime{display:inline-flex;gap:8px}.tds-form-datetime-disabled.sc-tds-datetime .tds-datetime-container.sc-tds-datetime{border-bottom-color:transparent}.tds-form-datetime-disabled.sc-tds-datetime .datetime-icon.sc-tds-datetime tds-icon.sc-tds-datetime{color:var(--tds-datetime-icon-disabled)}.tds-form-datetime-disabled.sc-tds-datetime .tds-datetime-label.sc-tds-datetime{color:var(--tds-datetime-label-disabled);cursor:not-allowed}.tds-form-datetime-disabled.sc-tds-datetime .tds-datetime-helper.sc-tds-datetime{color:var(--tds-datetime-helper-disabled)}.tds-form-datetime-success.sc-tds-datetime .tds-datetime-container.sc-tds-datetime{border-bottom-color:var(--tds-datetime-border-bottom-success);color:var(--tds-datetime-color-success)}.tds-form-datetime-error.sc-tds-datetime .tds-datetime-helper.sc-tds-datetime{color:var(--tds-datetime-helper-error)}.tds-form-datetime-error.sc-tds-datetime .tds-datetime-helper.sc-tds-datetime .tds-helper.sc-tds-datetime{display:flex;gap:var(--tds-spacing-element-8);flex-wrap:nowrap}.tds-form-datetime-error.sc-tds-datetime .tds-datetime-container.sc-tds-datetime{border-bottom-color:var(--tds-datetime-border-bottom-error)}.tds-datetime-textcounter.sc-tds-datetime{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);color:var(--tds-datetime-textcounter);float:right}.tds-datetime-textcounter.sc-tds-datetime .tds-datetime-textcounter-divider.sc-tds-datetime{letter-spacing:var(--tds-detail-05-ls);color:var(--tds-datetime-textcounter-divider)}input[type=datetime-local].sc-tds-datetime::-webkit-inner-spin-button,input[type=datetime-local].sc-tds-datetime::-webkit-calendar-picker-indicator{opacity:0}input[type=date].sc-tds-datetime::-webkit-inner-spin-button,input[type=date].sc-tds-datetime::-webkit-calendar-picker-indicator{opacity:0}input[type=month].sc-tds-datetime::-webkit-inner-spin-button,input[type=month].sc-tds-datetime::-webkit-calendar-picker-indicator{opacity:0}input[type=week].sc-tds-datetime::-webkit-inner-spin-button,input[type=week].sc-tds-datetime::-webkit-calendar-picker-indicator{opacity:0}input[type=time].sc-tds-datetime::-webkit-inner-spin-button,input[type=time].sc-tds-datetime::-webkit-calendar-picker-indicator{opacity:0}@supports (-moz-appearance: none){.type-datetime-local.sc-tds-datetime .icon-datetime-local.sc-tds-datetime,.type-date.sc-tds-datetime .icon-datetime-local.sc-tds-datetime{display:none}}"}},[2,"tds-datetime",{type:[513],value:[1537],min:[1],max:[1],defaultValue:[1,"default-value"],disabled:[4],size:[1],noMinWidth:[4,"no-min-width"],modeVariant:[1,"mode-variant"],name:[1],state:[1025],autofocus:[4],label:[1],labelPosition:[1,"label-position"],helper:[1],helperError:[1,"helper-error"],helperErrorInvalid:[1,"helper-error-invalid"],tdsAriaLabel:[1,"tds-aria-label"],customValidator:[16],focusInput:[32],reset:[64],setValue:[64],focusElement:[64]},[[0,"focusin","handleFocusIn"],[0,"focusout","handleFocusOut"]],{value:[{onValueChanged:0}]}]);function n(){"undefined"!=typeof customElements&&["tds-datetime","tds-icon"].forEach((e=>{switch(e){case"tds-datetime":customElements.get(t(e))||customElements.define(t(e),o);break;case"tds-icon":customElements.get(t(e))||m()}}))}n();const c=o,r=n;export{c as TdsDatetime,r as defineCustomElement}