UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

3 lines (2 loc) • 31.2 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */ import{a as ce}from"./MONAHAME.js";import{a as oe}from"./UKGEOJUZ.js";import{a as le,b as O,c as w}from"./NF2ZVYR4.js";import{a as re,b as D,c as l,d as S,g as se,h as c,i as P}from"./65U2OQ5M.js";import{g as Y,h as _,j as k}from"./4PBM4ZLG.js";import{a as ne}from"./VO26MCLG.js";import{a as ie}from"./MN4PER7E.js";import{c as ee,d as te,e as ae}from"./LCVNP3EO.js";import{a as G}from"./7IMDQ6AR.js";import{a as K,c as R,d as Z,e as J,f as Q,g as x,h as X}from"./VNGNPJ2I.js";import{a as j}from"./5LQLL6F3.js";import{a as W,c as M,e as H,h as U}from"./GTD2HZYS.js";import{a as q}from"./77EQHO2G.js";import"./M6OXKYRM.js";import{b as F}from"./K7LRDT5O.js";import{a as N}from"./SQ6RHDDF.js";import{a as L}from"./3XLPUKLV.js";import{a as C}from"./3YEM2IPT.js";import"./QUTTHRH3.js";import"./MNIRD7Q7.js";import"./ZQBZ5QPB.js";import{a as A}from"./CIYXQ5G6.js";import{C as I,D as h,E as z,F as s,J as E,Q as B,g as T,h as m,l as u,p as v}from"./G7AHLVJ5.js";var ue=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"},he="calcite-input-date-picker",$={validationMessage:"inputDatePickerValidationMessage",dialog:d=>`date-picker-dialog--${d}`,placeholder:d=>`${he}-placeholder-${d}`},de={start:"start",end:"end"},f={calendar:"calendar",chevronDown:"chevron-down",chevronUp:"chevron-up"};function ge(d){if(!d)return!1;let{year:e}=P(d);return Number(e)<100}function me(d){let e=new Date().getFullYear();return Math.floor(e/100)*100+d}var V=class extends z{constructor(){super(),this.commonDateSeparators=[".","-","/"],this.dialogId=$.dialog(A()),this.endInputRef=I(),this.focusOnOpen=!1,this.focusTrap=oe({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.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=N({blocking:!0}),this.focusSetter=L()(this),this.interactiveContainer=q(this),this.topLayer=G({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=K,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=v({cancelable:!1}),this.calciteInputDatePickerBeforeOpen=v({cancelable:!1}),this.calciteInputDatePickerChange=v({cancelable:!1}),this.calciteInputDatePickerClose=v({cancelable:!1}),this.calciteInputDatePickerOpen=v({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.shadowRootOptions={mode:"open",delegatesFocus:!0}}static{this.styles=ue}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:o}=this;return J(this,{floatingEl:t,referenceEl:a,overlayPositioning:r,placement:i,flipPlacements:o,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=l(this.min)),this.max&&(this.maxAsDate=l(this.max)),Array.isArray(this.value))this.valueAsDate=w(this.value);else if(this.value)try{let t=l(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=[c(this.valueAsDate[0]),c(this.valueAsDate[1])]:!this.range&&!Array.isArray(this.valueAsDate)&&(this.value=c(this.valueAsDate)));ee(this),M(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(),te(this),H(this),X(this)}handleDisabledAndReadOnlyChange(e){e||(this.open=!1)}valueWatcher(e){if(!this.userChangedValue){let t;Array.isArray(e)?t=w(e):e?t=l(e):t=void 0,!this.valueAsDateChangedExternally&&t!==this.valueAsDate&&(this.valueAsDate=t),this.localizeInputValues()}this.userChangedValue=!1}valueAsDateWatcher(e){let t=Array.isArray(e)?[c(e[0]),c(e[1])]:c(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=l(e)}onMaxChanged(e){this.maxAsDate=l(e)}openHandler(){this.disabled||this.readOnly||(j(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:o}=se(a,this.localeData);if(o&&o.length<4)return;let p=S(a,this.localeData);re(p,this.min,this.max)&&(this.datePickerActiveDate=p)}calciteInternalInputBlurHandler(){this.commitValue()}handleDateTimeFormatChange(){let e={numberingSystem:Y(this.numberingSystem)};this.dateTimeFormat=new Intl.DateTimeFormat(_(O(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,p=e.currentTarget.getAttribute("data-position");e.composedPath().find(y=>y.classList?.contains(n.toggleIcon))&&(p==="start"?i:a).value.setFocus(),(!t||!this.open||r===p)&&(this.open=!this.open)}setFilteredPlacements(){let{el:e,flipPlacements:t}=this;this.filteredFlipPlacements=t?Z(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(),Q(this),this.focusTrap.deactivate(),this.focusOnOpen=!1,this.datePickerEl?.reset(),this.topLayer.hide()}syncHiddenFormInput(e){ce("date",this,e)}blurHandler(){this.open=!1}commitValue(){let{focusedInput:e,value:t}=this,a=this.getInputRef(e),i=S(a.value.value,this.localeData),r=c(i),o=Array.isArray(t);if(this.range){let p=e==="start"?0:1;if(o){if(r===t[p])return;i?(this.setRangeValue([e==="start"?i:l(t[0]),e==="end"?i:l(t[1])]),this.localizeInputValues()):this.setRangeValue([e==="end"&&l(t[0]),e==="start"&&l(t[1])])}else i&&(this.setRangeValue([e==="start"?i:l(t[0]),e==="end"?i:l(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");a==="Enter"?(e.preventDefault(),this.commitValue(),this.shouldFocusRangeEnd()?this.endInputRef.value?.setFocus():this.shouldFocusRangeStart()&&this.startInputRef.value?.setFocus(),W(this)&&this.restoreInputFocus(!0)):(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=O(this.messages._lang);k.numberFormatOptions={numberingSystem:this.numberingSystem,locale:e,useGrouping:!1},this.localeData=await le(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,o=i?c(r):"";o&&(o=this.getNormalizedDate(o));let p=i?e[1]:null,g=i?c(p):"";g&&(g=this.getNormalizedDate(g));let b=o||g?[o,g]:"";if(b===t)return;this.userChangedValue=!0,this.value=b,this.valueAsDate=b?w(b):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=c(e);if(a=this.getNormalizedDate(a),a===t)return;this.userChangedValue=!0,this.valueAsDate=a?l(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(!ge(e))return e;let{day:t,month:a,year:i}=P(e);return`${me(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:m`${this.labelText&&ie({labelText:this.labelText,onClick:this.onLabelClick,required:this.required,tooltipText:this.messages.required})||""}<div class=${s(n.container)}><div aria-label=${ae(this)??u} .ariaRequired=${this.required} class=${s(n.inputContainer)} role=group><div class=${s(n.inputWrapper)} data-position=${de.start} @click=${this.onInputWrapperClick} @pointerdown=${this.onInputWrapperPointerDown} ${h(this.setStartWrapper)}><calcite-input-text aria-controls=${this.dialogId??u} aria-describedby=${this.placeholderTextId??u} aria-errormessage=${$.validationMessage} aria-autocomplete=none .ariaExpanded=${this.open} aria-haspopup=dialog .ariaInvalid=${this.status==="invalid"} class=${s({[n.input]:!0,[n.inputNoBottomBorder]:this.layout==="vertical"&&this.range,[n.inputNoRightBorder]:this.range})} .disabled=${e} .icon=${f.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} ${h(this.startInputRef)}></calcite-input-text>${!this.readOnly&&!this.range&&this.renderToggleIcon(this.open&&this.focusedInput==="start")||""}<span aria-hidden=true class=${s(n.assistiveText)} id=${this.placeholderTextId??u}>${a.dateFormat.replace("{format}",this.localeData?.placeholder)}</span></div><div .ariaHidden=${!this.open} .ariaLabel=${a.chooseDate} aria-live=polite class=${s(n.menu)} id=${this.dialogId??u} popover=manual role=dialog ${h(this.setFloatingEl)}><div class=${s({[n.calendarWrapper]:!0,[R.animation]:!0,[R.animationActive]:this.open})} ${h(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)??u} .valueAsDate=${this.valueAsDate} ${h(this.setDatePickerRef)}></calcite-date-picker></div></div>${this.range&&m`<div class=${s(n.dividerContainer)}><div class=${s(n.divider)}></div></div>`||""}${this.range&&m`<div class=${s(n.inputWrapper)} data-position=${de.end} @click=${this.onInputWrapperClick} @pointerdown=${this.onInputWrapperPointerDown} ${h(this.setEndWrapper)}><calcite-input-text aria-controls=${this.dialogId??u} aria-autocomplete=none .ariaExpanded=${this.open} aria-haspopup=dialog class=${s({[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=${f.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} ${h(this.endInputRef)}></calcite-input-text>${!this.readOnly&&this.layout==="horizontal"&&this.renderToggleIcon(this.open)||""}</div>`||""}</div>${this.range&&this.layout==="vertical"&&m`<div class=${s(n.verticalChevronContainer)}><calcite-icon .icon=${this.open?f.chevronUp:f.chevronDown} .scale=${C(this.scale)}></calcite-icon></div>`||""}</div>${U({component:this})}${this.validationMessage&&this.status==="invalid"?ne({icon:this.validationIcon,id:$.validationMessage,message:this.validationMessage,scale:this.scale,status:this.status}):null}`})}renderToggleIcon(e){return m`<span class=${s(n.toggleIcon)} tabindex=-1><calcite-icon class=${s(n.chevronIcon)} .icon=${e?f.chevronUp:f.chevronDown} .scale=${C(this.scale)}></calcite-icon></span>`}};B("calcite-input-date-picker",V);export{V as InputDatePicker};