UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

3 lines (2 loc) • 31.4 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */ import{a as se}from"./32SZ6MKP.js";import{a as re,b as V,c as w}from"./FIBHCK3H.js";import{a as ie,b as D,c as o,d as R,g as ne,h as d,i as P}from"./ESIG7SRN.js";import{g as H,h as U,j as k}from"./ZTSGKD2X.js";import{a as te}from"./F7QQUXJL.js";import{a as ee}from"./2ZJL6VLF.js";import{a as ae}from"./PS3Y5JIN.js";import{c as J,d as Q,e as X}from"./UIUDRBYG.js";import{a as Y}from"./S5D4KC2T.js";import{a as _,c as S,d as j,e as K,f as G,g as x,h as Z}from"./D26KXFR4.js";import{a as q}from"./DCQRXTMY.js";import{a as M}from"./IJ3XVWSG.js";import"./AP2LDRUV.js";import{b as F}from"./YGX7CUXN.js";import{a as W}from"./LHBACKJ5.js";import{a as N}from"./D7Q3AXKP.js";import{a as C}from"./RH6ZIP65.js";import{e as L}from"./YJF4NBEX.js";import"./TQRVWHPS.js";import"./KDWR7M23.js";import{a as A}from"./OAOQ5BXS.js";import{E as I,F as g,G as z,H as l,L as E,S as B,g as T,h as v,l as h,p as f}from"./C4ZX7VYR.js";var ce=T`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host .menu-container[popover]{padding:0;margin:0;border:none;background-color:transparent;overflow:visible;display:none}:host .menu-container:popover-open{display:block}:host .menu-container .calcite-floating-ui-anim{position:relative;transition-duration:var(--calcite-floating-ui-transition);transition-property:inset-block-start,left,opacity,display;transition-behavior:allow-discrete;opacity:0;box-shadow:0 0 16px #00000029;z-index:var(--calcite-z-index);border-radius:.25rem}:host .menu-container[data-placement^=bottom] .calcite-floating-ui-anim{inset-block-start:-5px}:host .menu-container[data-placement^=top] .calcite-floating-ui-anim{inset-block-start:5px}:host .menu-container[data-placement^=left] .calcite-floating-ui-anim{left:5px}:host .menu-container[data-placement^=right] .calcite-floating-ui-anim{left:-5px}:host .menu-container[data-placement] .calcite-floating-ui-anim--active{opacity:1;inset-block-start:0;left:0}@starting-style{:host .menu-container[data-placement] .calcite-floating-ui-anim--active{opacity:0}}:host{position:relative;display:inline-block;width:100%;overflow:visible;vertical-align:top;box-shadow:var(--calcite-input-date-picker-shadow, var(--calcite-shadow-none))}:host .menu-container .calcite-floating-ui-anim{box-shadow:var(--calcite-input-date-picker-calendar-shadow, var(--calcite-shadow-sm))}:host([scale=s]){--calcite-internal-date-picker-toggle-spacing: var(--calcite-spacing-sm);--calcite-internal-input-text-input-padding-inline-end: calc(var(--calcite-internal-date-picker-toggle-spacing) + var(--calcite-spacing-lg))}:host([scale=m]){--calcite-internal-date-picker-toggle-spacing: var(--calcite-spacing-md);--calcite-internal-input-text-input-padding-inline-end: calc(var(--calcite-internal-date-picker-toggle-spacing) + var(--calcite-spacing-xxl))}:host([scale=l]){--calcite-internal-date-picker-toggle-spacing: var(--calcite-spacing-lg);--calcite-internal-input-text-input-padding-inline-end: calc(var(--calcite-internal-date-picker-toggle-spacing) + var(--calcite-spacing-xxxl))}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.calendar-wrapper{box-shadow:var(--calcite-input-date-picker-calendar-shadow, var(--calcite-shadow-none));transform:translateZ(0)}.input-wrapper{position:relative}.input-wrapper .chevron-icon{color:var(--calcite-input-date-picker-actions-icon-color, var(--calcite-color-text-3))}.input-wrapper:focus-within .chevron-icon,.input-wrapper:active .chevron-icon,.input-wrapper:hover .chevron-icon{color:var(--calcite-input-date-picker-actions-icon-color-hover, var(--calcite-color-text-1))}.input-wrapper:focus-within~.input-wrapper .chevron-icon,.input-wrapper:active~.input-wrapper .chevron-icon,.input-wrapper:hover~.input-wrapper .chevron-icon{color:var(--calcite-input-date-picker-actions-icon-color-hover, var(--calcite-color-text-1))}.toggle-icon{position:absolute;display:flex;cursor:pointer;align-items:center;inset-inline-end:0;inset-block:0;padding-inline:var(--calcite-internal-date-picker-toggle-spacing)}:host([range]) .container{display:flex}:host([range]) .input-container{display:flex;flex:1 1 auto}:host([range]) .input-wrapper{flex:1 1 auto}.divider-container{display:flex;align-items:stretch;border-width:1px;border-left-width:0px;border-right-width:0px;border-style:solid;background-color:var(--calcite-input-date-picker-background-color, var(--calcite-color-foreground-1));border-color:var(--calcite-input-date-picker-border-color, var(--calcite-color-border-input))}:host([layout=horizontal]) .divider-container{inline-size:var(--calcite-spacing-px)}.divider{display:inline-block;margin-block:var(--calcite-spacing-xxs);background-color:var(--calcite-input-date-picker-divider-color, var(--calcite-color-border-2));inline-size:var(--calcite-spacing-px)}:host([layout=vertical]) .divider-container{height:1px;width:100%;border-top-width:0px;border-bottom-width:0px;border-inline-start-width:var(--calcite-border-width-sm);border-inline-end-width:var(--calcite-border-width-none);padding-inline:var(--calcite-spacing-md)}:host([layout=vertical]) .divider-container .divider{margin-top:0;margin-bottom:0;height:1px;width:100%}:host([range][layout=vertical]) .input-wrapper{width:100%}:host([range][layout=vertical]) .input-container{flex-direction:column;align-items:flex-start}.menu-container{--calcite-floating-ui-z-index: var(--calcite-z-index-dropdown);inline-size:max-content;display:none;max-inline-size:100vw;max-block-size:100vh;inset-block-start:0;left:0;z-index:var(--calcite-floating-ui-z-index)}@starting-style{.menu-container{opacity:0;inset-block-start:0;left:0}}.menu-container[popover]{padding:0;margin:0;border:none;background-color:transparent;overflow:visible;display:none}.menu-container:popover-open{display:block}.menu-container .calcite-floating-ui-anim{position:relative;transition-duration:var(--calcite-floating-ui-transition);transition-property:inset-block-start,left,opacity,display;transition-behavior:allow-discrete;opacity:0;box-shadow:0 0 16px #00000029;z-index:var(--calcite-z-index);border-radius:.25rem}.menu-container[data-placement^=bottom] .calcite-floating-ui-anim{inset-block-start:-5px}.menu-container[data-placement^=top] .calcite-floating-ui-anim{inset-block-start:5px}.menu-container[data-placement^=left] .calcite-floating-ui-anim{left:5px}.menu-container[data-placement^=right] .calcite-floating-ui-anim{left:-5px}.menu-container[data-placement] .calcite-floating-ui-anim--active{opacity:1;inset-block-start:0;left:0}@starting-style{.menu-container[data-placement] .calcite-floating-ui-anim--active{opacity:0}}.input .calcite-input__wrapper{margin-top:0}.vertical-chevron-container{display:flex;align-items:center;border-width:1px;border-style:solid;padding-inline:var(--calcite-spacing-md);background-color:var(--calcite-input-date-picker-background-color, var(--calcite-color-foreground-1));border-color:var(--calcite-input-date-picker-border-color, var(--calcite-color-border-input));border-inline-start-width:0}.vertical-chevron-container calcite-icon{color:var(--calcite-input-date-picker-actions-icon-color, var(--calcite-color-text-3))}.vertical-chevron-container calcite-icon:hover{color:var(--calcite-input-date-picker-actions-icon-color-hover, var(--calcite-color-text-1))}:host([range][layout=vertical][scale=s]) .vertical-chevron-container,:host([range][layout=vertical][scale=s]) .divider-container{padding-inline:var(--calcite-spacing-sm)}:host([range][layout=vertical][scale=l]) .vertical-chevron-container,:host([range][layout=vertical][scale=l]) .divider-container{padding-inline:var(--calcite-spacing-lg)}.container:focus-within .vertical-chevron-container calcite-icon,.container:active .vertical-chevron-container calcite-icon,.container:hover .vertical-chevron-container calcite-icon{color:var(--calcite-input-date-picker-actions-icon-color-hover, var(--calcite-color-text-1))}.input{--calcite-input-text-background-color: var(--calcite-input-date-picker-background-color);--calcite-input-text-border-color: var(--calcite-input-date-picker-border-color);--calcite-input-text-corner-radius: var(--calcite-input-date-picker-corner-radius);--calcite-input-text-shadow: var(--calcite-input-date-picker-shadow);--calcite-input-text-icon-color: var(--calcite-input-date-picker-icon-color);--calcite-input-text-text-color: var(--calcite-input-date-picker-text-color);--calcite-input-text-placeholder-text-color: var(--calcite-input-date-picker-placeholder-text-color)}calcite-date-picker{--calcite-date-picker-border-color: var(--calcite-input-date-picker-calendar-border-color);--calcite-date-picker-corner-radius: var(--calcite-input-date-picker-calendar-corner-radius);--calcite-date-picker-range-calendar-divider-color: var(--calcite-input-date-picker-calendar-range-divider-color);--calcite-date-picker-week-header-text-color: var(--calcite-input-date-picker-calendar-text-color);--calcite-date-picker-header-action-background-color: var( --calcite-input-date-picker-calendar-actions-background-color );--calcite-date-picker-header-action-background-color-hover: var( --calcite-input-date-picker-calendar-actions-background-color-hover );--calcite-date-picker-header-action-background-color-press: var( --calcite-input-date-picker-calendar-actions-background-color-press );--calcite-date-picker-header-action-text-color: var(--calcite-input-date-picker-calendar-actions-text-color);--calcite-date-picker-header-action-text-color-press: var( --calcite-input-date-picker-calendar-actions-text-color-press );--calcite-date-picker-year-text-color: var(--calcite-input-date-picker-calendar-text-color);--calcite-date-picker-month-select-text-color: var(--calcite-input-date-picker-calendar-month-select-text-color);--calcite-date-picker-month-select-icon-color: var(--calcite-input-date-picker-calendar-icon-color);--calcite-date-picker-month-select-icon-color-hover: var(--calcite-input-date-picker-calendar-icon-color-hover);--calcite-date-picker-day-background-color: var(--calcite-input-date-picker-calendar-day-background-color);--calcite-date-picker-day-background-color-hover: var( --calcite-input-date-picker-calendar-day-background-color-hover );--calcite-date-picker-day-background-color-selected: var( --calcite-input-date-picker-calendar-selected-background-color );--calcite-date-picker-day-text-color: var(--calcite-input-date-picker-calendar-day-text-color);--calcite-date-picker-day-text-color-hover: var(--calcite-input-date-picker-calendar-day-text-color-hover);--calcite-date-picker-day-text-color-selected: var(--calcite-input-date-picker-calendar-day-text-color-selected);--calcite-date-picker-current-day-text-color: var( --calcite-input-date-picker-calendar-current-day-text-color, var(--calcite-input-date-picker-calendar-day-current-text-color) );--calcite-date-picker-day-range-text-color: var(--calcite-input-date-picker-calendar-day-range-text-color);--calcite-date-picker-day-range-background-color: var( --calcite-input-date-picker-calendar-day-range-background-color );--calcite-date-picker-day-outside-range-background-color-hover: var( --calcite-input-date-picker-calendar-day-outside-range-background-color-hover );--calcite-date-picker-day-outside-range-text-color-hover: var( --calcite-input-date-picker-calendar-day-outside-range-text-color-hover )}.assistive-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.validation-container{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}:host([scale=m]) .validation-container,:host([scale=l]) .validation-container{padding-block-start:.5rem}:host([scale=s]) .validation-container{padding-block-start:.25rem}::slotted(input[slot=hidden-form-input]){margin:0!important;opacity:0!important;outline:none!important;padding:0!important;position:absolute!important;inset:0!important;transform:none!important;-webkit-appearance:none!important;z-index:-1!important}.internal-label-alignment--center{align-items:center}.internal-label-alignment--end{align-items:end}.internal-label--container{display:flex;justify-content:space-between;color:var(--calcite-color-text-1)}.internal-label-required--indicator{font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-status-danger);padding-inline:var(--calcite-spacing-base)}.internal-label-required--indicator:hover{cursor:help}.internal-label--text{line-height:1}:host([scale=s]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-xxs)}:host([scale=s]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label--text{font-size:var(--calcite-font-size--2)}:host([scale=m]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label--text{font-size:var(--calcite-font-size--1)}:host([scale=l]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=l]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-md)}:host([scale=l]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-md)}:host([scale=l]) .internal-label--text{font-size:var(--calcite-font-size-0)}:host([hidden]){display:none}[hidden]{display:none}`,n={assistiveText:"assistive-text",calendarWrapper:"calendar-wrapper",container:"container",dividerContainer:"divider-container",divider:"divider",inputContainer:"input-container",inputNoBottomBorder:"input--no-bottom-border",inputNoRightBorder:"input--no-right-border",inputNoTopBorder:"input--no-top-border",inputNoLeftBorder:"input--no-left-border",inputWrapper:"input-wrapper",input:"input",menu:"menu-container",toggleIcon:"toggle-icon",verticalChevronContainer:"vertical-chevron-container",chevronIcon:"chevron-icon"},de="calcite-input-date-picker",$={validationMessage:"inputDatePickerValidationMessage",dialog:p=>`date-picker-dialog--${p}`,placeholder:p=>`${de}-placeholder-${p}`},le={start:"start",end:"end"},b={calendar:"calendar",chevronDown:"chevron-down",chevronUp:"chevron-up"};function pe(p){if(!p)return!1;let{year:e}=P(p);return Number(e)<100}function ue(p){let e=new Date().getFullYear();return Math.floor(e/100)*100+p}var O=class extends z{constructor(){super(),this.commonDateSeparators=[".","-","/"],this.dialogId=$.dialog(A()),this.direction=L(),this.endInputRef=I(),this.focusOnOpen=!1,this.focusTrap=se({triggerProp:"open",focusTrapOptions:{onActivate:()=>{this.focusOnOpen&&(this.datePickerEl?.setFocus(),this.focusOnOpen=!1)},allowOutsideClick:!0,clickOutsideDeactivates:!1,initialFocus:!1,setReturnFocus:!1,onDeactivate:()=>{this.open=!1}}})(this),this.formSupport=ae({inputType:"date"})(this),this.transitionProp="opacity",this.placeholderTextId=$.placeholder(A()),this.rangeStartValueChangedByUser=!1,this.startInputRef=I(),this.transitionRef=I(),this.userChangedValue=!1,this._value="",this.valueAsDateChangedExternally=!1,this.messages=W({blocking:!0}),this.focusSetter=N()(this),this.interactiveContainer=M(this),this.topLayer=Y({target:()=>this.floatingEl})(this),this.focusedInput="start",this.calendars=2,this.disabled=!1,this.focusTrapDisabled=!1,this.layout="horizontal",this.monthStyle="wide",this.open=!1,this.overlayPositioning="absolute",this.placement=_,this.proximitySelectionDisabled=!1,this.range=!1,this.readOnly=!1,this.required=!1,this.scale="m",this.status="idle",this.topLayerDisabled=!1,this.validity={valid:!1,badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1},this.calciteInputDatePickerBeforeClose=f({cancelable:!1}),this.calciteInputDatePickerBeforeOpen=f({cancelable:!1}),this.calciteInputDatePickerChange=f({cancelable:!1}),this.calciteInputDatePickerClose=f({cancelable:!1}),this.calciteInputDatePickerOpen=f({cancelable:!1}),this.listen("blur",this.blurHandler),this.listen("keydown",this.keyDownHandler),this.handleDateTimeFormatChange()}static{this.properties={datePickerActiveDate:[16,{},{state:!0}],focusedInput:[16,{},{state:!0}],localeData:[16,{},{state:!0}],calendars:[11,{},{type:Number,reflect:!0}],disabled:[7,{},{reflect:!0,type:Boolean}],flipPlacements:[0,{},{attribute:!1}],focusTrapDisabled:[7,{},{reflect:!0,type:Boolean}],form:[3,{},{reflect:!0}],headingLevel:[11,{},{type:Number,reflect:!0}],label:1,labelText:1,layout:[3,{},{reflect:!0}],max:[3,{},{reflect:!0}],maxAsDate:[0,{},{attribute:!1}],messageOverrides:[0,{},{attribute:!1}],min:[3,{},{reflect:!0}],minAsDate:[0,{},{attribute:!1}],monthStyle:1,name:[3,{},{reflect:!0}],numberingSystem:[3,{},{reflect:!0}],open:[7,{},{reflect:!0,type:Boolean}],overlayPositioning:[3,{},{reflect:!0}],placement:[3,{},{reflect:!0}],proximitySelectionDisabled:[5,{},{type:Boolean}],range:[7,{},{reflect:!0,type:Boolean}],readOnly:[7,{},{reflect:!0,type:Boolean}],required:[7,{},{reflect:!0,type:Boolean}],scale:[3,{},{reflect:!0}],status:[3,{},{reflect:!0}],topLayerDisabled:[7,{},{reflect:!0,type:Boolean}],validationIcon:[3,{converter:E,type:String},{reflect:!0}],validationMessage:1,validity:[0,{},{attribute:!1}],value:1,valueAsDate:[0,{},{attribute:!1}]}}static{this.formAssociated=!0}static{this.shadowRootOptions={mode:"open",delegatesFocus:!0}}static{this.styles=ce}get value(){return this._value}set value(e){let t=e!==this._value,a=e===""&&(this.startInputRef.value?.value!==""||this.endInputRef.value?.value!=="");(t||a)&&(this._value=e,this.valueWatcher(e))}async reposition(e=!1){let{floatingEl:t,referenceEl:a,placement:i,overlayPositioning:r,filteredFlipPlacements:s}=this;return K(this,{direction:this.direction,floatingEl:t,referenceEl:a,overlayPositioning:r,placement:i,flipPlacements:s,type:"menu"},e)}async setFocus(e){return this.focusSetter(()=>this.el,e)}connectedCallback(){super.connectedCallback();let{open:e}=this;if(e&&this.openHandler(),this.min&&(this.minAsDate=o(this.min)),this.max&&(this.maxAsDate=o(this.max)),Array.isArray(this.value))this.valueAsDate=w(this.value);else if(this.value)try{let t=o(this.value),a=D(t,this.minAsDate,this.maxAsDate);this.valueAsDate=a}catch{this.warnAboutInvalidValue(this.value),this.value=""}else this.valueAsDate&&(this.range&&Array.isArray(this.valueAsDate)?this.value=[d(this.valueAsDate[0]),d(this.valueAsDate[1])]:!this.range&&!Array.isArray(this.valueAsDate)&&(this.value=d(this.valueAsDate)));J(this),this.setFilteredPlacements(),x(this)}async load(){this.handleDateTimeFormatChange(),await this.loadLocaleData(),this.onMinChanged(this.min),this.onMaxChanged(this.max)}willUpdate(e){e.has("disabled")&&(this.hasUpdated||this.disabled!==!1)&&this.handleDisabledAndReadOnlyChange(this.disabled),e.has("readOnly")&&(this.hasUpdated||this.readOnly!==!1)&&this.handleDisabledAndReadOnlyChange(this.readOnly),e.has("valueAsDate")&&this.valueAsDateWatcher(this.valueAsDate),e.has("flipPlacements")&&this.flipPlacementsHandler(),e.has("min")&&this.onMinChanged(this.min),e.has("max")&&this.onMaxChanged(this.max),e.has("open")&&(this.hasUpdated||this.open!==!1)&&this.openHandler(),e.has("overlayPositioning")&&(this.hasUpdated||this.overlayPositioning!=="absolute")&&this.reposition(!0),(e.has("numberingSystem")||e.has("messages"))&&this.handleDateTimeFormatChange(),e.has("layout")&&(this.hasUpdated||this.layout!=="horizontal")&&this.setReferenceEl(),e.has("messages")&&this.loadLocaleData()}loaded(){this.localizeInputValues(),x(this)}disconnectedCallback(){super.disconnectedCallback(),Q(this),Z(this)}handleDisabledAndReadOnlyChange(e){e||(this.open=!1)}valueWatcher(e){if(!this.userChangedValue){let t;Array.isArray(e)?t=w(e):e?t=o(e):t=void 0,!this.valueAsDateChangedExternally&&t!==this.valueAsDate&&(this.valueAsDate=t),this.localizeInputValues()}this.userChangedValue=!1}valueAsDateWatcher(e){let t=Array.isArray(e)?[d(e[0]),d(e[1])]:d(e);this.datePickerActiveDate=Array.isArray(e)?e[0]:e,this.value!==t&&(this.valueAsDateChangedExternally=!0,this.value=t,this.valueAsDateChangedExternally=!1)}flipPlacementsHandler(){this.setFilteredPlacements(),this.reposition(!0)}onMinChanged(e){this.minAsDate=o(e)}onMaxChanged(e){this.maxAsDate=o(e)}openHandler(){this.disabled||this.readOnly||(q(this),this.reposition(!0))}calciteInternalInputInputHandler(e){let t=e.target,a=t.value,i=this.parseNumerals(a),r=this.formatNumerals(i);t.value=r;let{year:s}=ne(a,this.localeData);if(s&&s.length<4)return;let c=R(a,this.localeData);ie(c,this.min,this.max)&&(this.datePickerActiveDate=c)}calciteInternalInputBlurHandler(){this.commitValue()}handleDateTimeFormatChange(){let e={numberingSystem:H(this.numberingSystem)};this.dateTimeFormat=new Intl.DateTimeFormat(U(V(this.messages._lang)),e)}setReferenceEl(){let{focusedInput:e,layout:t,endWrapper:a,startWrapper:i}=this;this.referenceEl=e==="end"||t==="vertical"?a||i:i||a,requestAnimationFrame(()=>x(this))}onInputWrapperPointerDown(){this.currentOpenInput=this.focusedInput}onInputWrapperClick(e){let{range:t,endInputRef:a,startInputRef:i,currentOpenInput:r}=this,c=e.currentTarget.getAttribute("data-position");e.composedPath().find(y=>y.classList?.contains(n.toggleIcon))&&(c==="start"?i:a).value.setFocus(),(!t||!this.open||r===c)&&(this.open=!this.open)}setFilteredPlacements(){let{el:e,flipPlacements:t}=this;this.filteredFlipPlacements=t?j(t,e):null}onLabelClick(){this.setFocus()}onBeforeOpen(){this.calciteInputDatePickerBeforeOpen.emit(),this.topLayer.show()}onOpen(){this.focusTrap.activate(),this.calciteInputDatePickerOpen.emit()}onBeforeClose(){this.calciteInputDatePickerBeforeClose.emit()}onClose(){this.calciteInputDatePickerClose.emit(),G(this),this.focusTrap.deactivate(),this.focusOnOpen=!1,this.datePickerEl?.reset(),this.topLayer.hide()}blurHandler(){this.open=!1}commitValue(){let{focusedInput:e,value:t}=this,a=this.getInputRef(e),i=R(a.value.value,this.localeData),r=d(i),s=Array.isArray(t);if(this.range){let c=e==="start"?0:1;if(s){if(r===t[c])return;i?(this.setRangeValue([e==="start"?i:o(t[0]),e==="end"?i:o(t[1])]),this.localizeInputValues()):this.setRangeValue([e==="end"&&o(t[0]),e==="start"&&o(t[1])])}else i&&(this.setRangeValue([e==="start"?i:o(t[0]),e==="end"?i:o(t[1])]),this.localizeInputValues())}else{if(r===t)return;this.setValue(i),this.localizeInputValues()}}keyDownHandler(e){let{defaultPrevented:t,key:a}=e;if(t)return;let i=e.composedPath().some(r=>r.tagName==="CALCITE-SELECT");if(a==="Enter"){let r=this.value;this.commitValue();let s=this.shouldFocusRangeEnd(),c=!s&&this.shouldFocusRangeStart();if(s||c){e.preventDefault(),s?this.endInputRef.value?.setFocus():c&&this.startInputRef.value?.setFocus();return}if(this.open)this.restoreInputFocus(!0),e.preventDefault();else{let u=this.formSupport.active;(r!==this.value||u)&&e.preventDefault(),u&&this.formSupport.requestSubmit()}}else(a==="ArrowDown"||a==="ArrowUp")&&!i?(this.open=!0,this.focusOnOpen=!0,e.preventDefault()):this.open&&a==="Escape"&&(this.open=!1,e.preventDefault(),this.restoreInputFocus(!0))}startInputFocus(){this.focusedInput="start"}endInputFocus(){this.focusedInput="end"}setFloatingEl(e){this.floatingEl=e,x(this)}setStartWrapper(e){this.startWrapper=e,this.setReferenceEl()}setEndWrapper(e){this.endWrapper=e,this.setReferenceEl()}setDatePickerRef(e){this.datePickerEl=e,e&&this.focusTrap.overrideFocusTrapEl(e)}async loadLocaleData(){if(!1)return;let e=V(this.messages._lang);k.numberFormatOptions={numberingSystem:this.numberingSystem,locale:e,useGrouping:!1},this.localeData=await re(e),this.localizeInputValues()}handleDateChange(e){this.range||(e.stopPropagation(),this.setValue(e.target.valueAsDate),this.localizeInputValues(),this.restoreInputFocus())}shouldFocusRangeStart(){let e=this.value[0];return!!(this.value[1]&&!e&&this.focusedInput==="end"&&this.startInputRef)}shouldFocusRangeEnd(){let e=this.value[0],t=this.value[1];return!!(e&&!t&&this.focusedInput==="start"&&this.endInputRef)}handleDateRangeChange(e){if(!this.range)return;e.stopPropagation();let t=e.target.valueAsDate;this.setRangeValue(t),this.localizeInputValues(),this.restoreInputFocus()}restoreInputFocus(e=!1){if(!this.range){this.startInputRef.value.setFocus(),this.open=!1;return}if(e){this.focusInput();return}this.rangeStartValueChangedByUser=this.focusedInput==="start",this.focusedInput="end",!(this.shouldFocusRangeStart()||this.rangeStartValueChangedByUser)&&(this.proximitySelectionDisabled&&this.valueAsDate[1]===null||(this.open=!1,this.focusInput()))}localizeInputValues(){let e=D(this.range?Array.isArray(this.valueAsDate)&&this.valueAsDate[0]||void 0:this.valueAsDate,this.minAsDate,this.maxAsDate),t=this.range?D(Array.isArray(this.valueAsDate)&&this.valueAsDate[1]||void 0,this.minAsDate,this.maxAsDate):null;this.setInputValue((e&&this.dateTimeFormat.format(e))??"","start"),this.setInputValue((this.range&&t&&this.dateTimeFormat.format(t))??"","end")}getInputRef(e="start"){return e==="start"?this.startInputRef:this.endInputRef}setInputValue(e,t="start"){let a=this.getInputRef(t);a.value&&(a.value.value=e)}setRangeValue(e){if(!this.range)return;let{value:t}=this,a=Array.isArray(t),i=Array.isArray(e),r=i?e[0]:null,s=i?d(r):"";s&&(s=this.getNormalizedDate(s));let c=i?e[1]:null,u=i?d(c):"";u&&(u=this.getNormalizedDate(u));let m=s||u?[s,u]:"";if(m===t)return;this.userChangedValue=!0,this.value=m,this.valueAsDate=m?w(m):void 0;let y=this.calciteInputDatePickerChange.emit();y&&y.defaultPrevented&&(this.value=t,a?(this.setInputValue(t[0],"start"),this.setInputValue(t[1],"end")):(this.value=t,this.setInputValue(t)))}setValue(e){if(this.range)return;let t=this.value,a=d(e);if(a=this.getNormalizedDate(a),a===t)return;this.userChangedValue=!0,this.valueAsDate=a?o(a):void 0,this.value=a||"",this.calciteInputDatePickerChange.emit().defaultPrevented&&(this.value=t,this.setInputValue(t))}warnAboutInvalidValue(e){console.warn(`The specified value "${e}" does not conform to the required format, "YYYY-MM-DD".`)}formatNumerals(e){return e?e.split("").map(t=>this.commonDateSeparators?.includes(t)?this.localeData?.separator:F?.includes(t)?k?.numberFormatter?.format(Number(t)):t).join(""):""}parseNumerals(e){return e?e.split("").map(t=>F.includes(t)?k.delocalize(t):t).join(""):""}getNormalizedDate(e){if(!e)return"";if(!pe(e))return e;let{day:t,month:a,year:i}=P(e);return`${ue(Number(i))}-${a}-${t}`}focusInput(){(this.focusedInput==="start"?this.startInputRef:this.endInputRef).value.setFocus()}render(){let{disabled:e,messages:{_lang:t},messages:a,numberingSystem:i,readOnly:r}=this;return k.numberFormatOptions={numberingSystem:i,locale:t,useGrouping:!1},this.interactiveContainer({disabled:this.disabled,children:v`${this.labelText&&ee({labelText:this.labelText,onClick:this.onLabelClick,required:this.required,tooltipText:this.messages.required})||""}<div class=${l(n.container)}><div aria-label=${X(this)??h} .ariaRequired=${this.required} class=${l(n.inputContainer)} role=group><div class=${l(n.inputWrapper)} data-position=${le.start} @click=${this.onInputWrapperClick} @pointerdown=${this.onInputWrapperPointerDown} ${g(this.setStartWrapper)}><calcite-input-text aria-controls=${this.dialogId??h} aria-describedby=${this.placeholderTextId??h} aria-errormessage=${$.validationMessage} aria-autocomplete=none .ariaExpanded=${this.open} aria-haspopup=dialog .ariaInvalid=${this.status==="invalid"} class=${l({[n.input]:!0,[n.inputNoBottomBorder]:this.layout==="vertical"&&this.range,[n.inputNoRightBorder]:this.range})} .disabled=${e} .icon=${b.calendar} .label=${this.range?this.messages.startDate:this.messages.date} @calciteInputTextInput=${this.calciteInternalInputInputHandler} @calciteInternalInputTextBlur=${this.calciteInternalInputBlurHandler} @calciteInternalInputTextFocus=${this.startInputFocus} .placeholder=${this.localeData?.placeholder} .readOnly=${r} role=combobox .scale=${this.scale} .status=${this.status} ${g(this.startInputRef)}></calcite-input-text>${!this.readOnly&&!this.range&&this.renderToggleIcon(this.open&&this.focusedInput==="start")||""}<span aria-hidden=true class=${l(n.assistiveText)} id=${this.placeholderTextId??h}>${a.dateFormat.replace("{format}",this.localeData?.placeholder)}</span></div><div .ariaHidden=${!this.open} .ariaLabel=${a.chooseDate} aria-live=polite class=${l(n.menu)} id=${this.dialogId??h} popover=manual role=dialog ${g(this.setFloatingEl)}><div class=${l({[n.calendarWrapper]:!0,[S.animation]:!0,[S.animationActive]:this.open})} ${g(this.transitionRef)}><calcite-date-picker .activeDate=${this.datePickerActiveDate} .activeRange=${this.focusedInput} .calendars=${this.calendars} .headingLevel=${this.headingLevel} .layout=${this.layout} .max=${this.max} .maxAsDate=${this.maxAsDate} .messageOverrides=${this.messageOverrides} .min=${this.min} .minAsDate=${this.minAsDate} .monthStyle=${this.monthStyle} .numberingSystem=${i} @calciteDatePickerChange=${this.handleDateChange} @calciteDatePickerRangeChange=${this.handleDateRangeChange} .proximitySelectionDisabled=${this.proximitySelectionDisabled} .range=${this.range} .scale=${this.scale} tabindex=${(this.open?void 0:-1)??h} .valueAsDate=${this.valueAsDate} ${g(this.setDatePickerRef)}></calcite-date-picker></div></div>${this.range&&v`<div class=${l(n.dividerContainer)}><div class=${l(n.divider)}></div></div>`||""}${this.range&&v`<div class=${l(n.inputWrapper)} data-position=${le.end} @click=${this.onInputWrapperClick} @pointerdown=${this.onInputWrapperPointerDown} ${g(this.setEndWrapper)}><calcite-input-text aria-controls=${this.dialogId??h} aria-autocomplete=none .ariaExpanded=${this.open} aria-haspopup=dialog class=${l({[n.input]:!0,[n.inputNoTopBorder]:this.layout==="vertical"&&this.range,[n.inputNoLeftBorder]:this.layout==="horizontal"&&this.range,[n.inputNoRightBorder]:this.layout==="vertical"&&this.range})} .disabled=${e} .icon=${b.calendar} .label=${this.messages.endDate} @calciteInputTextInput=${this.calciteInternalInputInputHandler} @calciteInternalInputTextBlur=${this.calciteInternalInputBlurHandler} @calciteInternalInputTextFocus=${this.endInputFocus} .placeholder=${this.localeData?.placeholder} .readOnly=${r} role=combobox .scale=${this.scale} .status=${this.status} ${g(this.endInputRef)}></calcite-input-text>${!this.readOnly&&this.layout==="horizontal"&&this.renderToggleIcon(this.open)||""}</div>`||""}</div>${this.range&&this.layout==="vertical"&&v`<div class=${l(n.verticalChevronContainer)}><calcite-icon .icon=${this.open?b.chevronUp:b.chevronDown} .scale=${C(this.scale)}></calcite-icon></div>`||""}</div>${this.validationMessage&&this.status==="invalid"?te({icon:this.validationIcon,id:$.validationMessage,message:this.validationMessage,scale:this.scale,status:this.status}):null}`})}renderToggleIcon(e){return v`<span class=${l(n.toggleIcon)} tabindex=-1><calcite-icon class=${l(n.chevronIcon)} .icon=${e?b.chevronUp:b.chevronDown} .scale=${C(this.scale)}></calcite-icon></span>`}};B("calcite-input-date-picker",O);export{O as InputDatePicker};