UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

5 lines (4 loc) • 28.1 kB
/*! All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://github.com/Esri/calcite-design-system/blob/dev/LICENSE.md for details. v3.2.1 */ import{a as ie}from"./CQSTX4F7.js";import{a as K,b as f,c as _,d as R,e as q,k as r}from"./XDKVBD6O.js";import{a as te}from"./FN45KTPK.js";import{a as J,c as Q,e as X,g as E,h as ee}from"./ZAT242GT.js";import{c as G,d as Z,e as Y}from"./JSDTVKI3.js";import{a as j,b as M}from"./BVJFCLMH.js";import{a as T}from"./YXZ62PQO.js";import{b as U}from"./3FSOG4LN.js";import{b as A,d as W}from"./CKRTMNFR.js";import{a as N,b as k}from"./5RDOSP2E.js";import{e as P,p as V,x as $}from"./3ADX47DD.js";import{a as x,d as L}from"./HPN2C7M6.js";import"./JOSABGK6.js";import"./NNVH7JUI.js";import{D as C,E as D,F as s,J as z,K as F,R as O,c as H,d as c,h,q as y}from"./BJZTU5BQ.js";var n={loader:"loader",clearButton:"clear-button",clearable:"clearable",inputIcon:"icon",prefix:"prefix",suffix:"suffix",numberButtonWrapper:"number-button-wrapper",buttonItemHorizontal:"number-button-item--horizontal",wrapper:"element-wrapper",inputWrapper:"wrapper",actionWrapper:"action-wrapper",numberButtonItem:"number-button-item",hasSuffix:"has-suffix",hasPrefix:"has-prefix"},re={validationMessage:"inputNumberValidationMessage"},oe={action:"action"},le=H`: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{display:block}:host([scale=s]) input,:host([scale=s]) .prefix,:host([scale=s]) .suffix{padding-inline:.5rem;font-size:var(--calcite-font-size--2);line-height:1rem;block-size:var(--calcite-input-number-height, 1.5rem)}:host([scale=s]) .number-button-wrapper,:host([scale=s]) .action-wrapper calcite-button,:host([scale=s]) .action-wrapper calcite-button button{block-size:var(--calcite-input-number-height, 1.5rem)}:host([scale=s]) .clear-button{min-block-size:1.5rem;min-inline-size:1.5rem}:host([scale=m]) input,:host([scale=m]) .prefix,:host([scale=m]) .suffix{padding-inline:.75rem;font-size:var(--calcite-font-size--1);line-height:1rem;block-size:var(--calcite-input-number-height, 2rem)}:host([scale=m]) .number-button-wrapper,:host([scale=m]) .action-wrapper calcite-button,:host([scale=m]) .action-wrapper calcite-button button{block-size:var(--calcite-input-number-height, 2rem)}:host([scale=m]) .clear-button{min-block-size:2rem;min-inline-size:2rem}:host([scale=l]) input,:host([scale=l]) .prefix,:host([scale=l]) .suffix{padding-inline:1rem;font-size:var(--calcite-font-size-0);line-height:1.25rem;block-size:var(--calcite-input-number-height, 2.75rem)}:host([scale=l]) .number-button-wrapper,:host([scale=l]) .action-wrapper calcite-button,:host([scale=l]) .action-wrapper calcite-button button{block-size:var(--calcite-input-number-height, 2.75rem)}:host([scale=l]) .clear-button{min-block-size:2.75rem;min-inline-size:2.75rem}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}input{transition:var(--calcite-animation-timing),block-size 0,outline-offset 0s;-webkit-appearance:none;position:relative;margin:0;box-sizing:border-box;display:flex;max-block-size:100%;inline-size:100%;max-inline-size:100%;flex:1 1 0%;text-overflow:ellipsis;font-family:inherit;font-weight:var(--calcite-font-weight-normal);background-color:var(--calcite-input-number-background-color, var(--calcite-color-foreground-1));color:var(--calcite-input-number-text-color, var(--calcite-color-text-1));border-radius:var(--calcite-input-number-corner-radius, var(--calcite-corner-radius-sharp))}input:placeholder-shown{text-overflow:ellipsis}input{border-width:1px;border-style:solid;border-color:var(--calcite-input-number-border-color, var(--calcite-color-border-input))}input::placeholder,input:-ms-input-placeholder,input::-ms-input-placeholder{font-weight:var(--calcite-font-weight-normal);color:var(--calcite-input-number-placeholder-text-color, var(--calcite-color-text-3))}input:focus{border-color:var(--calcite-color-brand);color:var(--calcite-input-number-text-color-focus, var(--calcite-color-text-1))}input[readonly]{font-weight:var(--calcite-font-weight-medium);background-color:var(--calcite-input-number-background-color, var(--calcite-color-background))}input[readonly]:focus{color:var(--calcite-input-number-text-color-focus, var(--calcite-color-text-1))}calcite-icon{color:var(--calcite-input-actions-icon-color, var(--calcite-color-text-3))}input{outline-color:transparent}input:focus{outline:2px solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(-2px*(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}:host([status=invalid]) input{border-color:var(--calcite-color-status-danger)}:host([status=invalid]) input:focus{outline:2px solid var(--calcite-color-status-danger);outline-offset:calc(-2px*(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}:host([scale=s]) .icon{inset-inline-start:.5rem}:host([scale=m]) .icon{inset-inline-start:.75rem}:host([scale=l]) .icon{inset-inline-start:1rem}:host([icon][scale=s]) input{padding-inline-start:2rem}:host([icon][scale=m]) input{padding-inline-start:2.5rem}:host([icon][scale=l]) input{padding-inline-start:3.5rem}.element-wrapper{position:relative;order:3;display:inline-flex;flex:1 1 0%;align-items:center}.icon{pointer-events:none;position:absolute;z-index:var(--calcite-z-index);display:block;transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out}.clear-button{pointer-events:initial;order:4;margin:0;box-sizing:border-box;display:flex;min-block-size:100%;cursor:pointer;align-items:center;justify-content:center;align-self:stretch;border-width:1px;border-style:solid;outline-color:transparent;border-color:var(--calcite-input-number-border-color, var(--calcite-color-border-input));background-color:var(--calcite-input-actions-background-color, var(--calcite-color-foreground-1));border-inline-start-width:0px}.clear-button:hover{transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out;background-color:var(--calcite-input-actions-background-color-hover, var(--calcite-color-foreground-2))}.clear-button:hover calcite-icon{transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out;color:var(--calcite-input-actions-icon-color-hover, var(--calcite-color-text-1))}.clear-button:active{background-color:var(--calcite-input-actions-background-color-press, var(--calcite-color-foreground-3))}.clear-button:active calcite-icon{color:var(--calcite-input-actions-icon-color-press, var(--calcite-color-text-1))}.clear-button:focus{outline:2px solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(-2px*(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}.clear-button:disabled{opacity:var(--calcite-opacity-disabled)}.loader{inset-block-start:1px;inset-inline:1px;pointer-events:none;position:absolute;display:block}.loader calcite-progress{--calcite-progress-background-color: var(--calcite-input-loading-background-color);--calcite-progress-fill-color: var(--calcite-input-loading-fill-color)}.action-wrapper{order:7;display:flex}.prefix,.suffix{box-sizing:border-box;display:flex;block-size:auto;min-block-size:100%;-webkit-user-select:none;user-select:none;align-content:center;align-items:center;overflow-wrap:break-word;border-width:1px;border-style:solid;font-weight:var(--calcite-font-weight-medium);line-height:1;border-color:var(--calcite-input-number-border-color, var(--calcite-color-border-input))}.prefix{order:2;border-inline-end-width:0px;inline-size:var(--calcite-input-prefix-size, auto);background-color:var(--calcite-input-prefix-background-color, var(--calcite-color-background));color:var(--calcite-input-prefix-text-color, var(--calcite-color-text-2))}.suffix{order:5;border-inline-start-width:0px;inline-size:var(--calcite-input-suffix-size, auto);background-color:var(--calcite-input-suffix-background-color, var(--calcite-color-background));color:var(--calcite-input-suffix-text-color, var(--calcite-color-text-2))}:host([alignment=start]) input{text-align:start}:host([alignment=end]) input{text-align:end}.number-button-wrapper{pointer-events:none;order:6;box-sizing:border-box;display:flex;flex-direction:column;transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out}:host([number-button-type=vertical]) .wrapper{flex-direction:row;display:flex}:host([number-button-type=vertical]) input{order:2}:host([number-button-type=horizontal]) .calcite--rtl .number-button-item[data-adjustment=down] calcite-icon{transform:rotate(-90deg)}:host([number-button-type=horizontal]) .calcite--rtl .number-button-item[data-adjustment=up] calcite-icon{transform:rotate(-90deg)}.number-button-item.number-button-item--horizontal[data-adjustment=down],.number-button-item.number-button-item--horizontal[data-adjustment=up]{order:1;max-block-size:100%;min-block-size:100%;align-self:stretch}.number-button-item.number-button-item--horizontal[data-adjustment=down] calcite-icon,.number-button-item.number-button-item--horizontal[data-adjustment=up] calcite-icon{transform:rotate(90deg)}.number-button-item.number-button-item--horizontal[data-adjustment=down]{border-inline-start-width:1px;border-inline-end-width:0px}.number-button-item.number-button-item--horizontal[data-adjustment=up]{order:5}:host([number-button-type=vertical]) .number-button-item[data-adjustment=down]{border-block-start-width:0px}.number-button-item{max-block-size:50%;min-block-size:50%;pointer-events:initial;margin:0;box-sizing:border-box;display:flex;cursor:pointer;align-items:center;align-self:center;border-width:1px;border-style:solid;padding-block:0px;padding-inline:.5rem;transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out;border-inline-start-width:0px;border-color:var(--calcite-input-number-border-color, var(--calcite-color-border-input));background-color:var(--calcite-input-actions-background-color, var(--calcite-color-foreground-1))}.number-button-item calcite-icon{pointer-events:none;transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out}.number-button-item:disabled{pointer-events:none}.number-button-item:hover{background-color:var(--calcite-input-actions-background-color-hover, var(--calcite-color-foreground-2))}.number-button-item:hover calcite-icon{color:var(--calcite-input-actions-icon-color-hover, var(--calcite-color-text-1))}.number-button-item:active{background-color:var(--calcite-input-actions-background-color-press, var(--calcite-color-foreground-3))}.number-button-item:active calcite-icon{color:var(--calcite-input-actions-icon-color-press, var(--calcite-color-text-1))}.prefix,:host([number-button-type=horizontal]) .number-button-item[data-adjustment=down]{border-start-start-radius:var(--calcite-input-number-corner-radius, var(--calcite-corner-radius-sharp));border-end-start-radius:var(--calcite-input-number-corner-radius, var(--calcite-corner-radius-sharp))}:host([read-only]) .suffix,:host([read-only]) .wrapper:not(.has-suffix) .clear-button,:host([number-button-type=horizontal]) .number-button-item[data-adjustment=up]{border-end-end-radius:var(--calcite-input-number-corner-radius, var(--calcite-corner-radius-sharp));border-start-end-radius:var(--calcite-input-number-corner-radius, var(--calcite-corner-radius-sharp))}:host([number-button-type=vertical]) .number-button-item[data-adjustment=down]{border-block-start-width:0px;border-end-end-radius:var(--calcite-input-number-corner-radius, var(--calcite-corner-radius-sharp))}:host([number-button-type=vertical]) .number-button-item[data-adjustment=up]{border-start-end-radius:var(--calcite-input-number-corner-radius, var(--calcite-corner-radius-sharp))}:host(:not([read-only])[number-button-type=horizontal]) .prefix,:host(:not([read-only])[number-button-type=horizontal]) input,.has-prefix input{border-start-start-radius:0;border-end-start-radius:0}.has-suffix input,:host .clearable input,:host(:not([read-only])) input,:host .suffix,:host .clear-button{border-start-end-radius:0;border-end-end-radius:0}:host .wrapper{position:relative;display:flex;flex-direction:row;align-items:center}:host(.no-bottom-border) input{border-block-end-width:0px}:host(.border-top-color-one) input{border-block-start-color:var(--calcite-color-border-1)}input.inline-child{background-color:transparent;transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out}input.inline-child .editing-enabled{background-color:inherit}input.inline-child:not(.editing-enabled){display:flex;cursor:pointer;text-overflow:ellipsis;border-color:transparent;padding-inline-start: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}:host([hidden]){display:none}[hidden]{display:none}::placeholder{font-weight:var(--calcite-font-weight-normal);color:var(--calcite-input-placeholder-text-color, var(--calcite-color-text-3))}`,B=class extends D{constructor(){super(),this.actionWrapperEl=N(),this.attributeWatch=A(["autofocus","enterkeyhint","inputmode"],this.handleGlobalAttributesChanged),this.inputWrapperEl=N(),this.onHiddenFormInputInput=e=>{e.target.name===this.name&&this.setNumberValue({value:e.target.value,origin:"direct"}),this.setFocus(),e.stopPropagation()},this.previousValueOrigin="initial",this.userChangedValue=!1,this._value="",this.messages=W(),this.slottedActionElDisabledInternally=!1,this.alignment="start",this.clearable=!1,this.disabled=!1,this.editingEnabled=!1,this.groupSeparator=!1,this.iconFlipRtl=!1,this.integer=!1,this.loading=!1,this.localeFormat=!1,this.numberButtonType="vertical",this.readOnly=!1,this.required=!1,this.scale="m",this.status="idle",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.calciteInputNumberChange=y({cancelable:!1}),this.calciteInputNumberInput=y(),this.calciteInternalInputNumberBlur=y({cancelable:!1}),this.calciteInternalInputNumberFocus=y({cancelable:!1}),this.listen("click",this.clickHandler),this.listen("keydown",this.keyDownHandler)}static{this.properties={displayedValue:[16,{},{state:!0}],slottedActionElDisabledInternally:[16,{},{state:!0}],alignment:[3,{},{reflect:!0}],autocomplete:[0,{},{attribute:!1}],clearable:[7,{},{reflect:!0,type:Boolean}],disabled:[7,{},{reflect:!0,type:Boolean}],editingEnabled:[7,{},{reflect:!0,type:Boolean}],form:[3,{},{reflect:!0}],groupSeparator:[7,{},{reflect:!0,type:Boolean}],icon:[3,{converter:z},{reflect:!0}],iconFlipRtl:[7,{},{reflect:!0,type:Boolean}],integer:[5,{},{type:Boolean}],label:1,loading:[7,{},{reflect:!0,type:Boolean}],localeFormat:[5,{},{type:Boolean}],max:[11,{},{reflect:!0,type:Number}],maxLength:[11,{},{reflect:!0,type:Number}],messageOverrides:[0,{},{attribute:!1}],min:[11,{},{reflect:!0,type:Number}],minLength:[11,{},{reflect:!0,type:Number}],name:[3,{},{reflect:!0}],numberButtonType:[3,{},{reflect:!0}],numberingSystem:[3,{},{reflect:!0}],placeholder:1,prefixText:1,readOnly:[7,{},{reflect:!0,type:Boolean}],required:[7,{},{reflect:!0,type:Boolean}],scale:[3,{},{reflect:!0}],status:[3,{},{reflect:!0}],step:[3,{},{reflect:!0}],suffixText:1,validationIcon:[3,{converter:z},{reflect:!0}],validationMessage:1,validity:[0,{},{attribute:!1}],value:1}}static{this.styles=le}get value(){return this._value}set value(e){let t=this._value;e!==t&&(this._value=e,this.valueWatcher(e,t),e&&this._value===""&&this.setNumberValue({origin:"reset",value:t}))}async selectText(){this.childNumberEl?.select()}async setFocus(){await L(this),this.childNumberEl?.focus()}connectedCallback(){super.connectedCallback(),this.inlineEditableEl=this.el.closest("calcite-inline-editable"),this.inlineEditableEl&&(this.editingEnabled=this.inlineEditableEl.editingEnabled||!1),G(this),Q(this),this.el.addEventListener(E,this.onHiddenFormInputInput)}async load(){this.maxString=this.max?.toString(),this.minString=this.min?.toString(),this.requestedIcon=V({},this.icon,"number"),this.setPreviousEmittedNumberValue(this.value),this.setPreviousNumberValue(this.value),this.warnAboutInvalidNumberValue(this.value),this.value==="Infinity"||this.value==="-Infinity"?(this.displayedValue=this.value,this.previousEmittedNumberValue=this.value):this.setNumberValue({origin:"connected",value:f(this.value)?this.value:""})}willUpdate(e){e.has("max")&&(this.maxString=this.max?.toString()||null),e.has("min")&&(this.minString=this.min?.toString()||null),e.has("icon")&&(this.requestedIcon=V({},this.icon,"number")),e.has("messages")&&(r.numberFormatOptions={locale:this.messages._lang,numberingSystem:this.numberingSystem,useGrouping:!1})}updated(){j(this)}disconnectedCallback(){super.disconnectedCallback(),Z(this),X(this),this.el.removeEventListener(E,this.onHiddenFormInputInput)}get isClearable(){return this.clearable&&this.value.length>0}handleGlobalAttributesChanged(){this.requestUpdate()}valueWatcher(e,t){if(!this.userChangedValue){if(e==="Infinity"||e==="-Infinity"){this.displayedValue=e,this.previousEmittedNumberValue=e;return}this.setNumberValue({origin:"direct",previousValue:t,value:e==null||e==""?"":f(e)?e:this.previousValue||""}),this.warnAboutInvalidNumberValue(e)}this.userChangedValue=!1}keyDownHandler(e){this.readOnly||this.disabled||e.defaultPrevented||(this.isClearable&&e.key==="Escape"&&(this.clearInputValue(e),e.preventDefault()),e.key==="Enter"&&J(this)&&e.preventDefault())}onLabelClick(){this.setFocus()}incrementOrDecrementNumberValue(e,t,i,d){let{value:a}=this;if(a==="Infinity"||a==="-Infinity")return;let u=e==="up"?1:-1,o=this.integer&&this.step!=="any"?Math.round(this.step):this.step,b=o==="any"?1:Math.abs(o||1),p=new K(a!==""?a:"0").add(`${b*u}`),g=()=>typeof i=="number"&&!isNaN(i)&&p.subtract(`${i}`).isNegative,m=()=>typeof t=="number"&&!isNaN(t)&&!p.subtract(`${t}`).isNegative,l=g()?`${i}`:m()?`${t}`:p.toString();this.setNumberValue({committing:!0,nativeEvent:d,origin:"user",value:l})}clearInputValue(e){this.setNumberValue({committing:!0,nativeEvent:e,origin:"user",value:""})}emitChangeIfUserModified(){this.previousValueOrigin==="user"&&this.value!==this.previousEmittedNumberValue&&(this.calciteInputNumberChange.emit(),this.setPreviousEmittedNumberValue(this.value))}inputNumberBlurHandler(){window.clearInterval(this.nudgeNumberValueIntervalId),this.calciteInternalInputNumberBlur.emit(),this.emitChangeIfUserModified()}clickHandler(e){if(this.disabled)return;let t=e.composedPath();!t.includes(this.inputWrapperEl.value)||t.includes(this.actionWrapperEl.value)||this.setFocus()}inputNumberFocusHandler(){this.calciteInternalInputNumberFocus.emit()}inputNumberInputHandler(e){if(this.disabled||this.readOnly||this.value==="Infinity"||this.value==="-Infinity")return;let t=e.target.value;r.numberFormatOptions={locale:this.messages._lang,numberingSystem:this.numberingSystem,useGrouping:this.groupSeparator};let i=r.delocalize(t);e.inputType==="insertFromPaste"?((!f(i)||this.integer&&(i.includes("e")||i.includes(".")))&&e.preventDefault(),this.setNumberValue({nativeEvent:e,origin:"user",value:_(i)}),this.childNumberEl.value=this.displayedValue):this.setNumberValue({nativeEvent:e,origin:"user",value:i})}inputNumberKeyDownHandler(e){if(this.disabled||this.readOnly)return;if(this.value==="Infinity"||this.value==="-Infinity"){e.preventDefault(),(e.key==="Backspace"||e.key==="Delete")&&this.clearInputValue(e);return}if(e.key==="ArrowUp"){e.preventDefault(),this.nudgeNumberValue("up",e);return}if(e.key==="ArrowDown"){e.preventDefault(),this.nudgeNumberValue("down",e);return}let t=[...U,"ArrowLeft","ArrowRight","Backspace","Delete","Enter","Escape","Tab"];if(e.altKey||e.ctrlKey||e.metaKey)return;let i=e.shiftKey&&e.key==="Tab";if(t.includes(e.key)||i){e.key==="Enter"&&this.emitChangeIfUserModified();return}r.numberFormatOptions={locale:this.messages._lang,numberingSystem:this.numberingSystem,useGrouping:this.groupSeparator},!(e.key===r.decimal&&!this.integer&&(!this.value&&!this.childNumberEl.value||this.value&&this.childNumberEl.value.indexOf(r.decimal)===-1))&&(/[eE]/.test(e.key)&&!this.integer&&(!this.value&&!this.childNumberEl.value||this.value&&!/[eE]/.test(this.childNumberEl.value))||e.key==="-"&&(!this.value&&!this.childNumberEl.value||this.value&&this.childNumberEl.value.split("-").length<=2)||e.preventDefault())}nudgeNumberValue(e,t){if(t instanceof KeyboardEvent&&t.repeat)return;let i=this.maxString?parseFloat(this.maxString):null,d=this.minString?parseFloat(this.minString):null,a=150;this.incrementOrDecrementNumberValue(e,i,d,t),this.nudgeNumberValueIntervalId&&window.clearInterval(this.nudgeNumberValueIntervalId);let u=!0;this.nudgeNumberValueIntervalId=window.setInterval(()=>{if(u){u=!1;return}this.incrementOrDecrementNumberValue(e,i,d,t)},a)}nudgeButtonPointerUpHandler(e){$(e)&&window.clearInterval(this.nudgeNumberValueIntervalId)}nudgeButtonPointerOutHandler(){window.clearInterval(this.nudgeNumberValueIntervalId)}nudgeButtonPointerDownHandler(e){if(!$(e))return;e.preventDefault();let t=e.target.dataset.adjustment;this.disabled||this.nudgeNumberValue(t,e)}syncHiddenFormInput(e){ie("number",this,e)}setChildNumberElRef(e){this.childNumberEl=e}setInputNumberValue(e){this.childNumberEl&&(this.childNumberEl.value=e)}setPreviousEmittedNumberValue(e){this.previousEmittedNumberValue=this.normalizeValue(e)}normalizeValue(e){return f(e)?e:""}setPreviousNumberValue(e){this.previousValue=this.normalizeValue(e)}setNumberValue({committing:e=!1,nativeEvent:t,origin:i,previousValue:d,value:a}){r.numberFormatOptions={locale:this.messages._lang,numberingSystem:this.numberingSystem,useGrouping:this.groupSeparator};let u=this.previousValue?.length>a.length||this.value?.length>a.length,o=this.integer?a.replace(/[e.]/g,""):a,b=o.charAt(o.length-1)===".",v=o.charAt(0)==="-",p=o.match(/^-?(0+)\d/),g=b&&u?o:R(o),m=a&&!g?f(this.previousValue)?this.previousValue:"":g,l=r.localize(m);i!=="connected"&&!b&&(l=q(l,m,r)),b&&u&&(l=`${l}${r.decimal}`),p&&(l=`${v?l.charAt(0):""}${r.localize("0").repeat(p[1].length)}${v?l.slice(1):l}`),this.displayedValue=l,this.setPreviousNumberValue(d??this.value),this.previousValueOrigin=i,this.userChangedValue=i==="user"&&this.value!==m;let S=["-","."].includes(m)?"":m;this.value=S;let ne=new Set(["e","E",r.decimal,r.minusSign,r.group,...r.digits]),w=this.childNumberEl?.value;if(w){let I=Array.from(w).filter(ae=>ne.has(ae)).join("");I!==w&&this.setInputNumberValue(I)}i==="direct"&&(this.setInputNumberValue(l),this.setPreviousEmittedNumberValue(S)),t&&(this.calciteInputNumberInput.emit().defaultPrevented?(this.value=this.previousValue,this.displayedValue=r.localize(this.previousValue)):e&&this.emitChangeIfUserModified())}inputNumberKeyUpHandler(){window.clearInterval(this.nudgeNumberValueIntervalId)}warnAboutInvalidNumberValue(e){e&&!f(e)&&console.warn(`The specified value "${e}" cannot be parsed, or is out of range.`)}render(){let e=P(this.el),t=c`<div class=${s(n.loader)}><calcite-progress .label=${this.messages.loading} type=indeterminate></calcite-progress></div>`,i=c`<button .ariaLabel=${this.messages.clear} class=${s(n.clearButton)} .disabled=${this.disabled||this.readOnly} @click=${this.clearInputValue} tabindex=-1 type=button><calcite-icon icon=x .scale=${x(this.scale)}></calcite-icon></button>`,d=c`<calcite-icon class=${s(n.inputIcon)} .flipRtl=${this.iconFlipRtl} .icon=${this.requestedIcon} .scale=${x(this.scale)}></calcite-icon>`,a=this.numberButtonType==="horizontal",u=c`<button aria-hidden=true class=${s({[n.numberButtonItem]:!0,[n.buttonItemHorizontal]:a})} data-adjustment=up .disabled=${this.disabled||this.readOnly} @pointerdown=${this.nudgeButtonPointerDownHandler} @pointerout=${this.nudgeButtonPointerOutHandler} @pointerup=${this.nudgeButtonPointerUpHandler} tabindex=-1 type=button><calcite-icon icon=chevron-up .scale=${x(this.scale)}></calcite-icon></button>`,o=c`<button aria-hidden=true class=${s({[n.numberButtonItem]:!0,[n.buttonItemHorizontal]:a})} data-adjustment=down .disabled=${this.disabled||this.readOnly} @pointerdown=${this.nudgeButtonPointerDownHandler} @pointerout=${this.nudgeButtonPointerOutHandler} @pointerup=${this.nudgeButtonPointerUpHandler} tabindex=-1 type=button><calcite-icon icon=chevron-down .scale=${x(this.scale)}></calcite-icon></button>`,b=c`<div class=${s(n.numberButtonWrapper)}>${u}${o}</div>`,v=c`<div class=${s(n.prefix)}>${this.prefixText}</div>`,p=c`<div class=${s(n.suffix)}>${this.suffixText}</div>`,g=T("localized-input",c`<input aria-errormessage=${re.validationMessage} .ariaInvalid=${this.status==="invalid"} .ariaLabel=${Y(this)} autocomplete=${this.autocomplete??h} .autofocus=${this.el.autofocus} value=${this.defaultValue??h} .disabled=${this.disabled} enterkeyhint=${this.el.enterKeyHint??h} inputmode=${this.el.inputMode||"decimal"} maxlength=${this.maxLength??h} minlength=${this.minLength??h} name=${h} @blur=${this.inputNumberBlurHandler} @focus=${this.inputNumberFocusHandler} @input=${this.inputNumberInputHandler} @keydown=${this.inputNumberKeyDownHandler} @keyup=${this.inputNumberKeyUpHandler} placeholder=${(this.placeholder||"")??h} .readOnly=${this.readOnly} type=text .value=${C(this.displayedValue??"")} ${k(this.setChildNumberElRef)}>`);return M({disabled:this.disabled,children:c`<div class=${s({[n.inputWrapper]:!0,[F.rtl]:e==="rtl",[n.hasSuffix]:this.suffixText,[n.hasPrefix]:this.prefixText,[n.clearable]:this.isClearable})} ${k(this.inputWrapperEl)}>${this.numberButtonType==="horizontal"&&!this.readOnly?o:null}${this.prefixText?v:null}<div class=${s(n.wrapper)}>${g}${this.isClearable?i:null}${this.requestedIcon?d:null}${this.loading?t:null}</div><div class=${s(n.actionWrapper)} ${k(this.actionWrapperEl)}><slot name=${oe.action}></slot></div>${this.numberButtonType==="vertical"&&!this.readOnly?b:null}${this.suffixText?p:null}${this.numberButtonType==="horizontal"&&!this.readOnly?u:null}${ee({component:this})}</div>${this.validationMessage&&this.status==="invalid"?te({icon:this.validationIcon,id:re.validationMessage,message:this.validationMessage,scale:this.scale,status:this.status}):null}`})}};O("calcite-input-number",B);export{B as InputNumber};