@scania/tegel
Version:
Tegel Design System
1 lines • 15.4 kB
JavaScript
import{r as t,c as e,h as d}from"./p-9xxNGlso.js";import{g as i}from"./p-Cn4f8w1e.js";const s=class{constructor(d){t(this,d),this.tdsChange=e(this,"tdsChange",6),this.tdsBlur=e(this,"tdsBlur",6),this.tdsFocus=e(this,"tdsFocus",6),this.tdsInput=e(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-${i()}`,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 new 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 i=navigator.userAgent.toLowerCase().includes("iphone");let s=" tds-datetime-input";"md"===this.size&&(s+=`${s}-md`),"sm"===this.size&&(s+=`${s}-sm`),i&&(s+=" iphone");const a={"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)};return d("div",{key:"a55d784701c35fda184c9e17fbe8466854f9140d",class:a,onKeyDown:t=>{"Enter"===t.key&&navigator.userAgent.toLowerCase().includes("chrome")&&this.textInput.showPicker()}},"outside"===this.labelPosition&&this.label&&d("label",{key:"ff47d44b79345c816cf9b22bd913b6a595299dce",htmlFor:this.name,class:"tds-datetime-label"},this.label),d("div",{key:"013669e9b4f3421e96b9239a187515967baf7619",onClick:t=>this.handleFocusClick(t),class:"tds-datetime-container"},d("div",{key:"f06de994b6b1c8fe1db77f914be22797db14018d",class:`tds-datetime-input-container type-${this.type}`},d("input",{key:"c003adf22a66a2a04f13abd636c924bd1ad1c6c9",ref:t=>{t&&(this.textInput=t)},class:s,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&&d("label",{key:"128a8b90a28b6c1c9c2eacc292603b3d1f8e5f10",class:"tds-datetime-label-inside",htmlFor:this.name},this.label),d("div",{key:"21331931956e4abf045a01a4af7f5fcf602990bd",class:"datetime-icon icon-datetime-local"},d("tds-icon",{key:"77c1f611eae6c6ff3d102681b28ce42e0709ff84",size:"20px",name:"calendar",svgTitle:"Calendar"})),d("div",{key:"36f01c633df5181ad6107aa158de499fafa2569f",class:"datetime-icon icon-time"},d("tds-icon",{key:"03bb2f56e70a68c8d882bdfdce747a15d1b4cfdc",size:"20px",name:"clock",svgTitle:"Clock"})))),"error"===this.state&&d("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)&&d("div",{key:"7f2990d54c62fbef3743662b944a09aab28a8a56",class:"tds-helper"},d("tds-icon",{key:"cdcb11a48a1d1fc3298711ed9f3b96b6a7ecef0d",name:"error",size:"16px",svgTitle:"error"})," ",this.helperError),this.textInput&&this.textInput.validity.badInput&&d("div",{key:"51489ac6f3dbcb31f8ff89c1544a6a17c19ab239",class:"tds-helper"},d("tds-icon",{key:"6fb19117b7f191564ed2b1c4071500a16ea40219",name:"error",size:"16px",svgTitle:"error"})," ",this.helperErrorInvalid)),this.helper&&"error"!==this.state&&d("div",{key:"a6766afd774a6219e783ec1b5e79c250b94bace2",class:"tds-datetime-helper"},d("div",{key:"bba762fea80aca3e14da8ac9f9f210234edd9c70",class:"tds-helper"},this.helper)))}static get watchers(){return{value:[{onValueChanged:0}]}}};s.style="@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}}";export{s as tds_datetime}