@mescius/wijmo.input 5.20261.45-nightly.d20251218.t163151 → 5.20261.45-nightly.d20260105.t014601

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es2015-esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20261.45-nightly.d20251218.t163151
3
+ * Wijmo Library 5.20261.45-nightly.d20260105.t014601
4
4
  * https://developer.mescius.com/wijmo
5
5
  *
6
6
  * Copyright(c) MESCIUS inc. All rights reserved.
@@ -11,4 +11,4 @@
11
11
  *
12
12
  */
13
13
 
14
- import{_getModule,_addCultureInfo,culture,setAriaLabel,disableAutoComplete,isIE,isIE9,asBoolean,asString,asEnum,setSelectionRange,contains,getActiveElement,setAttribute,showPopup,hidePopup,hasClass,addClass,removeClass,toggleClass,removeChild,Control,Key,Event,EventArgs,CancelEventArgs,ControlStateClsNames,GlyphClsNames,ControlClsNames,InputFormElementsClsNames,isNullOrUndefined,tryCast,createElement,hasItems,isObject,isString,asArray,asFunction,asNumber,asType,asCollectionView,closest,escapeHtml,toPlainText,setCss,Binding,Rect,DateTime,assert,isFirefox,_CLS_STATE_DISABLED,UtilitesClsNames,_setAriaLabelBy,setInnerHTMLSafe,getUniqueId,isNumber,enable,isFunction,escapeRegExp,isSafari,setText,isDate,isBoolean,asDate,asInt,Globalize,_ClickRepeater,CollectionView,format,uidGenerator,moveFocus,_isMacOS,clamp,Color,roundTo,_getFocusableElements,_MaskProvider,getSpecialCharsRegex,isEmpty,isEdge,isMobile,setChecked,Point,isArray,getElementRect,getSafeUniqueId,PopupPosition,getElement,isUndefined,isiOS,_registerModule}from"@mescius/wijmo";import*as selfModule from"@mescius/wijmo.input";export const AutoCompleteClsNames={hostElement:"wj-autocomplete"};export const CalendarClsNames={buttonsOutside:"wj-btns-outside",calendarHeader:"wj-calendar-header",calendarMonth:"wj-calendar-month",calendarMultiMonth:"wj-calendar-multimonth",calendarOuter:"wj-calendar-outer",calendarYear:"wj-calendar-year",dayOtherMonth:"wj-day-othermonth",dayToday:"wj-day-today",dayWeekend:"wj-day-weekend",header:"wj-header",hostElement:"wj-calendar",monthSelect:"wj-month-select",weekAfter:"wj-week-after",weekBefore:"wj-week-before",yearPicker:"wj-yearpicker",focused:"wj-state-focus",selectedYear:"wj-select-year",confirmationButtonContainer:"wj-calendar-confirmation-button-container",button:"wj-calendar-button"};export const CollectionViewNavigatorClsNames={hostElement:"wj-collectionview-navigator",pager:"wj-pager"};export const ColorPickerClsNames={colorBox:"wj-colorbox",hostElement:"wj-colorpicker"};export const ComboBoxClsNames={hostElement:"wj-combobox",stateMatch:"wj-state-match"};export const DropDownClsNames={dropDownPanel:"wj-dropdown-panel",hostElement:"wj-dropdown"};export const InputClsNames={input:"wj-input",inputBtnVisible:"wj-input-btn-visible",inputGroup:"wj-input-group",inputGroupBtn:"wj-input-group-btn"};export const InputColorClsNames={hostElement:"wj-inputcolor",inputColorBox:"wj-inputcolorbox"};export const InputDateClsNames={hostElement:"wj-inputdate",inputDateDropDown:"wj-inputdate-dropdown",inputDateDropDownContainer:"wj-inputdate-dropdown-container"};export const InputDateRangeClsNames={hostElement:"wj-inputdaterange"};export const InputDateTimeClsNames={hostElement:"wj-inputdatetime",showDropDownButton:"wj-show-dropdown-button"};export const InputMaskClsNames={hostElement:"wj-inputmask"};export const InputNumberClsNames={hostElement:"wj-inputnumber",numeric:"wj-numeric",showSpinner:"wj-input-show-spinner"};export const InputTimeClsNames={hostElement:"wj-inputtime"};export const ListBoxClsNames={header:"wj-header",hostElement:"wj-listbox",listBoxItem:"wj-listbox-item"};export const MenuClsNames={hostElement:"wj-menu",menuItems:"wj-menu-items",subItems:"wj-subitems"};export const MultiAutoCompleteClsNames={hostElement:"wj-multi-autocomplete",token:"wj-token",tokenActive:"wj-token-active",tokenClose:"wj-token-close",tokenHelper:"wj-token-helper",tokenLabel:"wj-token-label",screenReaderOnly:"wj-sr-only"};export const MultiSelectClsNames={hostElement:"wj-multiselect"};export const MultiSelectListBoxClsNames={header:"wj-header",hostElement:"wj-multiselectlistbox",selectAll:"wj-select-all"};export const PopupClsNames={dialogHeader:"wj-dialog-header",hostElement:"wj-popup",popupBackDrop:"wj-popup-backdrop",dialogBody:"wj-dialog-body",dialogFooter:"wj-dialog-footer"};_addCultureInfo("InputNumber",{ariaLabels:{incVal:"Increase Value",decVal:"Decrease Value",inputNumberInput:"InputNumber Input",inputNumber:"Input Number"}});export class InputNumber extends Control{constructor(t,e){super(t);this._value=null;this._min=null;this._max=null;this._format="";this._step=null;this._showBtn=!0;this._readOnly=!1;this._handleWheel=!0;this._oldText="";this._fromKb=!0;this._inputElementAriaLabel=culture.InputNumber.ariaLabels.inputNumberInput;this._ariaLabelledby=null;this.textChanged=new Event;this.valueChanged=new Event;let s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${InputNumberClsNames.hostElement}`,s,{_tbx:"input",_btnUp:"btn-inc",_btnDn:"btn-dec"},"input");const i=this.inputElement;this.hostElement;setAttribute(i,"role","spinbutton",!0);this._updateInputAriaLabel();let n=culture.InputNumber.ariaLabels;setAriaLabel(this._btnUp.querySelector("button"),n.incVal);setAriaLabel(this._btnDn.querySelector("button"),n.decVal);this._tbx.type.match(/number/i)&&(this.inputType="");let l=this._tbx;l.autocomplete="off";l.spellcheck=!1;this._updateSymbols();let a=this.addEventListener.bind(this);a(l,"keypress",this._keypress.bind(this));a(l,"keydown",this._keydown.bind(this));a(l,"input",this._input.bind(this));isMobile()&&a(l,"beforeinput",this._beforeinput.bind(this));a(l,"blur",()=>{this.text!=this._oldText&&this._setText(this.text)});a(l,"paste",()=>{this._fromKb=!1});a(l,"compositionstart",()=>{this._composing=!0});a(l,"compositionend",()=>{this._composing=!1;setTimeout(()=>{let t=this.text,e=this._oldText,s=this._chrPct;e&&e.indexOf(s)>-1&&t.indexOf(s)<0&&(t+=s);this._setText(t)})});let h=this._clickSpinner.bind(this);a(this._btnUp,"click",h);a(this._btnDn,"click",h);this._rptUp=new _ClickRepeater(this._btnUp.querySelector("button"));this._rptDn=new _ClickRepeater(this._btnDn.querySelector("button"));a(l,"wheel",t=>{if(this.handleWheel&&!t.defaultPrevented&&!t.ctrlKey&&this._isEditable()&&this.containsFocus()){let e=clamp(-t.deltaY,-1,1);this._increment((this.step||1)*e);setTimeout(()=>this.selectAll());t.preventDefault()}});this.value=0;this.isRequired=!0;this.initialize(e)}static get controlTemplate(){InputNumber._ctrlTemplate||(InputNumber._ctrlTemplate=`<div class="${ControlClsNames.template}"><div class="${InputClsNames.input}"><div class="${InputClsNames.inputGroup}"><span wj-part="btn-dec" class="${InputClsNames.inputGroupBtn}" tabindex="-1"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1">-</button></span><input type="tel" wj-part="input" class="${InputFormElementsClsNames.formControl} ${InputNumberClsNames.numeric}"/><span wj-part="btn-inc" class="${InputClsNames.inputGroupBtn}" tabindex="-1"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1">+</button></span></div></div></div>`);return InputNumber._ctrlTemplate}static set controlTemplate(t){InputNumber._ctrlTemplate=t}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){this._tbx.type=asString(t)}get value(){return this._value}set value(t){if(t!=this._value)if(null==(t=asNumber(t,!this.isRequired||null==t&&null==this._value)))this._setText("");else if(!isNaN(t)){let e=Globalize.format(t,this.format);this._setText(e)}}get isRequired(){return this._tbx.required}set isRequired(t){this._tbx.required=asBoolean(t)}get isReadOnly(){return this._readOnly}set isReadOnly(t){this._readOnly=asBoolean(t);this.inputElement.readOnly=this._readOnly;toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly)}get handleWheel(){return this._handleWheel}set handleWheel(t){this._handleWheel=asBoolean(t)}get min(){return this._min}set min(t){if(t!=this._min){this._min=asNumber(t,!0);this._updateAria()}}get max(){return this._max}set max(t){if(t!=this._max){this._max=asNumber(t,!0);this._updateAria()}}get step(){return this._step}set step(t){this._step=asNumber(t,!0);this._updateBtn()}get format(){return this._format}set format(t){if(t!=this.format){this._format=asString(t);this.refresh()}}get text(){return this._tbx.value}set text(t){if(t!=this.text){this._oldText=this.text;this._setText(t)}}get placeholder(){return this._tbx.placeholder}set placeholder(t){this._tbx.placeholder=t}get showSpinner(){return this._showBtn}set showSpinner(t){this._showBtn=asBoolean(t);this._updateBtn()}get repeatButtons(){return!this._rptUp.disabled}set repeatButtons(t){this._rptUp.disabled=this._rptDn.disabled=!asBoolean(t)}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAriaLabel.bind(this))}selectAll(){let t=this._tbx;setSelectionRange(t,0,t.value.length)}clamp(t){return clamp(t,this.min,this.max)}onTextChanged(t){this.textChanged.raise(this,t);this._updateState()}onValueChanged(t){this._updateAria();this.valueChanged.raise(this,t)}dispose(){this._rptUp.element=null;this._rptDn.element=null;super.dispose()}onGotFocus(t){this._oldValue=this.value;if(!this.isTouching){this._tbx.focus();this.selectAll()}super.onGotFocus(t)}onLostFocus(t){if(this._composing){this._composing=!1;this._setText(this.text)}if(this._isEditable()){let t=this.clamp(this.value);if(t==this.value||this.onInvalidInput(new CancelEventArgs)){let e=Globalize.format(t,this.format);this._setText(e)}}super.onLostFocus(t)}refresh(t=!0){super.refresh(t);if(this.hostElement){this._updateSymbols();let t=Globalize.format(this.value,this.format);this._setText(t)}}_isEditable(){return!this.isReadOnly&&!this.isDisabled}_updateSymbols(){let t=culture.Globalize.numberFormat,e=Globalize._parseNumericFormat(this.format);this._chrDec=t["."]||".";this._chrTho=t[","]||",";this._chrNeg=t["-"]||"-";this._chrPls=t["+"]||"+";this._chrPct=t["%"]||"%";this._chrCur=e.curr||t.currency.symbol||"$";this._fmtSpc=e.spec;this._fmtPrc=e.prec;this._rxSym=new RegExp("^[%+\\-() \\"+this._chrDec+"\\"+this._chrCur+"\\"+this._chrNeg+"\\"+this._chrPls+"\\"+this._chrPct+"]*$");this._rxNeg=new RegExp("^\\s*(\\-|\\"+this._chrNeg+")|([^e](\\-|\\"+this._chrNeg+")|\\()")}_isNumeric(t,e){let s=t==this._chrDec||t>="0"&&t<="9",i="x"==this._fmtSpc;!s&&i&&(s=t>="a"&&t<="f"||t>="A"&&t<="F");s||e||i||(s=t==this._chrPls||t==this._chrNeg||"("==t||")"==t);return s}_getInputRange(t){let e=[0,0],s=this.text,i=!1;for(let n=0;n<s.length;n++)if(this._isNumeric(s[n],t)){if(!i){e[0]=n;i=!0}e[1]=n+1}return e}_flipSign(){let t=this._getSelStartDigits();this.value*=-1;this._setSelStartDigits(t)}_getSelStartDigits(){let t=0,e=this._tbx.selectionStart,s=this._tbx.value;for(let i=0;i<s.length&&i<e;i++)this._isNumeric(s[i],!0)&&t++;return t}_setSelStartDigits(t){let e=this._tbx.value;for(let s=0;s<e.length&&t>=0;s++)if(this._isNumeric(e[s],!0)){if(!t){setSelectionRange(this._tbx,s);break}t--}else if(!t){setSelectionRange(this._tbx,s);break}}_increment(t){if(t){let e=this.clamp(isNumber(this.value)?this.value+t:0),s=Globalize.format(e,this.format,!1,!1);this._setText(s)}}_updateBtn(){let t=this.showSpinner&&!!this.step,e=t;setCss([this._btnUp,this._btnDn],{display:t?"":"none"});toggleClass(this.hostElement,InputNumberClsNames.showSpinner,t);enable(this._btnUp,e);enable(this._btnDn,e);this._updateAria()}_setText(t,e=!1,s=!1){if(this._composing)return;let i=this._tbx,n=this._chrDec,l=this._rxNeg.test(t),a=this._delKey,h=this.containsFocus();t&&this._rxSym.test(t)&&h&&(t=this.isRequired||!a?(l?"-0":"0")+(t.indexOf(n)>-1?n:""):"");this._delKey=!1;a&&0==this.value&&!this.isRequired&&(t="");if(!t){if(!this.isRequired||s){i.value="";if(this._oldText){this._oldText=t;this.onTextChanged()}if(null!=this._value){this._value=null;this.onValueChanged()}this._updateBtn();return}t="0"}let r=t.indexOf(n),o=this._format||(r>-1?"n2":"n0"),d=Globalize.parseFloat(t,o);isFinite(d)||(d=this.clamp(d));if(isNaN(d)){if(this.onInvalidInput(new CancelEventArgs))i.value=this._oldText;else{i.value=t;this.focus()}return}let u=h&&r>-1?2:null,c=Globalize.format(d,o,!1,e,u);l&&d>=0&&!a&&(c=this._chrNeg+c);if(h&&r>-1&&"g"==this._fmtSpc&&0!=this._fmtPrc){c=t;c.indexOf(n)<0&&(c+=n)}if(i.value!=c){i.value=c;d=Globalize.parseFloat(c,o)}if(this.text!=this._oldText){this._oldText=this.text;this.onTextChanged()}if(d!=this._value){this._value=d;this.onValueChanged()}this._updateBtn();this._updateState()}_handleDecimalInput(t){if(0===this._fmtPrc){t.preventDefault();return!0}let e=this._tbx,s=e.value.indexOf(this._chrDec);if(s>-1){t.preventDefault();let i=e.selectionStart<=s?s+1:s;setSelectionRange(e,i);return!0}return!1}_beforeinput(t){if(t.defaultPrevented||this._composing||!this._isEditable())return;switch(t.data){case".":case this._chrDec:this._handleDecimalInput(t);return;case"+":case this._chrPls:this._handlePlusSign();t.preventDefault();return;case"-":case this._chrNeg:this._handleMinusSign();t.preventDefault();return}}_keypress(t){if(!t.defaultPrevented&&!this._composing&&this._isEditable()&&t.charCode&&!t.ctrlKey&&!t.metaKey&&t.keyCode!=Key.Enter){let e=this._tbx,s=String.fromCharCode(t.charCode);if(this._isNumeric(s,!1)){let s=e.maxLength;if(s>-1&&e.value.length>=s&&e.selectionEnd==e.selectionStart){t.preventDefault();return}let i=this._getInputRange(!0),n=e.selectionStart,l=e.selectionEnd;if(n<i[0]&&l<e.value.length){l=Math.max(l,i[0]);setSelectionRange(e,i[0],l)}if(n>=i[1]){let s=null!=this._fmtPrc?this._fmtPrc:2,i=e.value.indexOf(this._chrDec);i>-1&&n-i>s&&t.preventDefault()}}else t.preventDefault();switch(s){case"-":case this._chrNeg:this._handleMinusSign();t.preventDefault();break;case"+":case this._chrPls:this._handlePlusSign();t.preventDefault();break;case".":case this._chrDec:this._handleDecimalInput(t)}if(!t.defaultPrevented&&isIE()){let i=e.value,n=e.selectionStart,l=e.selectionEnd;if(n==l){e.value=i.substr(0,n)+s+i.substr(l);setSelectionRange(e,n+1);t.preventDefault();this._input()}}}}_handlePlusSign(){let t=this._tbx;(this.value<0||this._rxNeg.test(t.value))&&this._flipSign()}_handleMinusSign(){let t=this._tbx;if(this.clamp(-1)>=0)this.value<0&&this._flipSign();else if(this.value&&t.selectionStart===t.selectionEnd)this._flipSign();else if(this.clamp(-1)<0){t.value=this._chrNeg;setSelectionRange(t,1)}}_keydown(t){this._delKey=!1;if(t.defaultPrevented||this._composing)return;var e=hasClass(this._tbx,"wj-grid-ime");if(e&&t.keyCode!=Key.Back&&t.keyCode!=Key.Delete)return;let s=this._tbx,i=s.value,n=s.selectionStart,l=s.selectionEnd;switch(t.keyCode){case 65:if(t.ctrlKey){setTimeout(()=>{this.selectAll()});t.preventDefault()}break;case Key.Up:case Key.Down:if(this.step&&this._isEditable()){this._increment(this.step*(t.keyCode==Key.Up?1:-1));setTimeout(()=>{this.selectAll()});t.preventDefault()}break;case Key.Back:this._delKey=!0;if(l-n<2&&this._isEditable()){let e=i[l-1];if(e==this._chrDec||e==this._chrPct||e==this._chrTho||")"==e){setTimeout(()=>{l=e==this._chrPct?this._getInputRange(!0)[1]:l-1;setSelectionRange(s,l)});t.preventDefault()}}break;case Key.Delete:this._delKey=!0;if(l-n<2&&this._isEditable())if("0"==i&&1==n)setSelectionRange(s,0);else{let e=i[n];if(e==this._chrDec||e==this._chrPct){setTimeout(()=>{setSelectionRange(s,n+1)});t.preventDefault()}}break;case Key.Escape:this.value=this._oldValue;this.selectAll()}e&&this._delKey&&this._isEditable()&&this._setText(null,!1,!0)}_input(){this._composing?this._fromKb=!0:setTimeout(()=>{let t=this._tbx,e=t.value,s=e.indexOf(this._chrDec),i=t.selectionStart,n=this._getSelStartDigits();"p"==this._fmtSpc&&e.length&&e.indexOf(this._chrPct)<0&&(e+=this._chrPct);this._setText(e,this._fromKb);this._fromKb=!0;if(this.containsFocus()){let l=t.value,a=l.indexOf(this._chrDec),h=this._getInputRange(!0);if(e==this._chrNeg+this._chrDec&&a>-1){setSelectionRange(t,a+1);return}if(e[0]==this._chrNeg&&l[0]!=this._chrNeg){if(1==l.length)setSelectionRange(t,1);else{"c"===this._fmtSpc&&this._isNegativeCurrencyByParenthesis(e)&&(n-=1);this._setSelStartDigits(n)}return}e?e==this._chrDec&&a>-1?i=a+1:i<=s&&a>-1||s<0&&a<0?i+=l.length-e.length:s<0&&a>-1&&(i=a):i=a>-1?a:h[1];i=clamp(i,h[0],h[1]);setSelectionRange(t,i)}})}_isNegativeCurrencyByParenthesis(t){return t.length>1&&t[1]===this._chrCur}_clickSpinner(t){if(!t.defaultPrevented&&this._isEditable()&&this.step){this._increment(this.step*(contains(this._btnUp,t.target)?1:-1));if(!this.isTouching){Control.sharedState.InvalidScroll=isEdge();setTimeout(()=>this.selectAll())}}}_updateAria(){const t=this.inputElement;if(this.hostElement){setAttribute(t,"aria-valuemin",this.min);setAttribute(t,"aria-valuemax",this.max);setAttribute(t,"aria-valuenow",this.value);setAttribute(t,"aria-valuetext",this.text);setAttribute(t,"step",this.step);enable(this._btnDn,null==this.min||this.value>this.min);enable(this._btnUp,null==this.max||this.value<this.max)}}_updateInputAriaLabel(){const t=this.inputElement;this._ariaLabelledby?setAttribute(t,"aria-label",null):setAttribute(t,"aria-label",this._inputElementAriaLabel)}getAriaLabelForScreenReader(){return culture.InputNumber.ariaLabels.inputNumber}}InputNumber._ctrlTemplate="";_addCultureInfo("InputMask",{ariaLabels:{inputMaskInput:"InputMask Input",inputMask:"Input Mask"}});export class InputMask extends Control{constructor(t,e){super(t);this._fullEdit=!1;this._inputElementAriaLabel=culture.InputMask.ariaLabels.inputMaskInput;this._ariaLabelledby=null;this.valueChanged=new Event;let s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${InputMaskClsNames.hostElement}`,s,{_tbx:"input"},"input");if("INPUT"==this._orgTag){let t=this._tbx.getAttribute("value");t&&(this.value=t)}this._msk=new _MaskProvider(this._tbx);this.isRequired=!0;this.initialize(e);this.addEventListener(this._tbx,"input",()=>{this.onValueChanged()});this.addEventListener(this._tbx,"blur",this._commitText.bind(this));this.addEventListener(this._tbx,"keydown",t=>{t.keyCode==Key.Enter&&this._commitText()});this._updateInputAriaLabel()}static get controlTemplate(){InputMask._ctrlTemplate||(InputMask._ctrlTemplate=`<div class="${InputClsNames.input}"><div class="${InputClsNames.inputGroup}"><input wj-part="input" class="${InputFormElementsClsNames.formControl}"/></div></div>`);return InputMask._ctrlTemplate}static set controlTemplate(t){InputMask._ctrlTemplate=t}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){this._tbx.type=asString(t)}get value(){return this._tbx.value}set value(t){if(t!=this.value){this._tbx.value=asString(t);t=this._msk._applyMask();this._tbx.value=t;this.onValueChanged()}}get rawValue(){return this._msk.getRawValue()}set rawValue(t){t!=this.rawValue&&(this.value=asString(t))}get mask(){return this._msk.mask||""}set mask(t){let e=this.value;this._msk.mask=asString(t);this.value!=e&&this.onValueChanged()}get promptChar(){return this._msk.promptChar}set promptChar(t){let e=this.value;this._msk.promptChar=t;this.value!=e&&this.onValueChanged()}get overwriteMode(){return this._msk.overwriteMode}set overwriteMode(t){this._msk.overwriteMode=asBoolean(t)}get placeholder(){return this._tbx.placeholder}set placeholder(t){this._tbx.placeholder=t}get maskFull(){return this._msk.maskFull}get isRequired(){return this._tbx.required}set isRequired(t){this._tbx.required=asBoolean(t)}get isReadOnly(){return this._tbx.readOnly}set isReadOnly(t){this._tbx.readOnly=asBoolean(t);toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly)}selectAll(){let t=this._msk.getMaskRange();setSelectionRange(this._tbx,t[0],t[1]+1)}onValueChanged(t){if(this.value!=this._oldValue){this._oldValue=this.value;this.valueChanged.raise(this,t)}this._updateState()}_commitText(){(this.rawValue||this.isRequired)&&(this.maskFull||this.onInvalidInput(new CancelEventArgs));this._updateState()}dispose(){this._msk.input=null;super.dispose()}refresh(t=!0){super.refresh(t);this.hostElement&&this._msk.refresh()}onGotFocus(t){this.selectAll();super.onGotFocus(t)}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAriaLabel.bind(this))}_updateInputAriaLabel(){const t=this.inputElement;!t||t.id||this._ariaLabelledby?setAttribute(t,"aria-label",null):setAttribute(t,"aria-label",this._inputElementAriaLabel)}getAriaLabelForScreenReader(){return culture.InputMask.ariaLabels.inputMask}}InputMask._ctrlTemplate="";_addCultureInfo("ColorPicker",{ariaLabels:{colorPicker:"Color Picker",satAndBrightnessPanel:"Color saturation and brightness panel",huePanel:"Color hue panel",opacityPanel:"Color opacity panel",palettePanel:"Color palette panel",saturation:"Saturation:",hue:"Hue:",opacity:"Opacity:",degrees:"degrees",brightness:"Brightness:",baseColor:"Base color:",shadeColor:"Shade color:"}});export var ColorPickerTabKeyAction;!function(t){t[t.None=0]="None";t[t.All=1]="All"}(ColorPickerTabKeyAction||(ColorPickerTabKeyAction={}));export class ColorPicker extends Control{constructor(t,e){super(t);this._hsb=[.5,1,1];this._alpha=1;this._ariaLabel=culture.ColorPicker.ariaLabels.colorPicker;this.valueChanged=new Event;this.hostElement.setAttribute("role","application");this.hostElement.setAttribute("aria-label",culture.ColorPicker.ariaLabels.colorPicker);let s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${ColorPickerClsNames.hostElement}`,s,{_eSB:"div-sb",_eHue:"div-hue",_eAlpha:"div-alpha",_ePreview:"div-pv",_ePal:"div-pal",_eText:"div-text"});this._palette="#FFF,#000,#F00,#FFC000,#FFFF00,#92D050,#00B050,#00B0F0,#0070C0,#7030A0".split(",");this._updatePalette();this._eHue.style.backgroundImage="url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAD4CAIAAACi6hsPAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAGvSURBVDhPXdBPaM9xHMfxz4pWaxcmtoOhpdXSVpiyHWxqmVpDjaU5rK34XfypjTJ/p+ZPay6jhsOsRrKwaJElf9IQq03WIkv4FeMwMq221tfje1ByeFzfvd7PEKWGEKWTQRZLySWfVRRTQjmVbKWGOhLsZT+HaeY0bbTTQSfdXOcWffTzmAFeMcwoYyT5ygS/mA5hNgphip98J8kHRnnNSwZ4yH1uc4OrdHGR87RximYO0cgedlLLdqqoYAPrWMtKVrCcJSxiPmnMJUQp/Bsyk2xyyKOAQooopYwKtlDNDur5G7SBJo7RQiv/B+2hl3s84CkvGGKEOOYnxolj/mYmhBmDJ5ngCx95xxsGecYj4pB3iENeoZMO2mmlhaMcpIE4ZII6aqhmM3HMMkooopB88sghm0wySCeVlCjMCVFIYx4LWUwOeRSwhmLWU84mqqihll3sppEmjnOSs5zjEl1c4yZ99POE5wwxwns+840fTDFLFKaZZIJxkozxlmEGGSC+GF++Sy89dHOZC8Rr4lVnOMERDrCPBPXEX22jko2UEn+/mnxyWUYWC0gnNUQh/AEc0HJs6cex0gAAAABJRU5ErkJggg==)";this._eHue.style.backgroundSize="contain";if(navigator.appVersion.indexOf("MSIE 9")>-1){this._eSB.children[0].style.filter="progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffffff,endColorstr=#00ffffff,GradientType=1)";this._eSB.children[1].style.filter="progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000,endColorstr=#ff000000,GradientType=0)"}s=ColorPicker._tplCursor;this._cSB=createElement(s);this._cHue=createElement(s);this._cHue.style.width="100%";this._cAlpha=createElement(s);this._cAlpha.style.height="100%";this._eSB.appendChild(this._cSB);this._eHue.appendChild(this._cHue);this._eAlpha.appendChild(this._cAlpha);this._keyActionTab=ColorPickerTabKeyAction.None;let i=this.addEventListener.bind(this),n=this.removeEventListener.bind(this),l=document;i(this.hostElement,"mousedown",t=>{i(l,"mousemove",mouseMove);i(l,"mouseup",mouseUp);this._mouseDown(t)});i(this.hostElement,"touchstart",t=>{i(l,"touchmove",mouseMove);i(l,"touchend",mouseUp);this._mouseDown(t)});let mouseMove=t=>{this._mouseMove(t)},mouseUp=t=>{n(l,"mousemove",mouseMove);n(l,"mouseup",mouseUp);n(l,"touchmove",mouseMove);n(l,"touchend",mouseUp);this._mouseUp(t)};i(this.hostElement,"click",t=>{if(this.isDisabled)return;let e=t.target;if(e&&"DIV"==e.tagName&&contains(this._ePal,e)){let t=e.style.backgroundColor;t&&(this.value=new Color(t).toString());e.focus()}});i(this.hostElement,"keydown",t=>{this.isDisabled||this._keydown(t)});this.value="#ffffff";this.initialize(e);this._updatePanels();this._eSB.setAttribute("role","slider");this._eSB.setAttribute("aria-label",culture.ColorPicker.ariaLabels.satAndBrightnessPanel);this._eSB.setAttribute("aria-valuemin","0");this._eSB.setAttribute("aria-valuemax","100");this._eHue.setAttribute("role","slider");this._eHue.setAttribute("aria-label",culture.ColorPicker.ariaLabels.huePanel);this._eHue.setAttribute("aria-valuemin","0");this._eHue.setAttribute("aria-valuemax","360");this._eAlpha.setAttribute("role","slider");this._eAlpha.setAttribute("aria-label",culture.ColorPicker.ariaLabels.opacityPanel);this._eAlpha.setAttribute("aria-valuemin","0");this._eAlpha.setAttribute("aria-valuemax","100");this._ePal.setAttribute("role","grid");this._ePal.setAttribute("aria-label",culture.ColorPicker.ariaLabels.palettePanel);this._updateTabIndex()}static get controlTemplate(){ColorPicker._ctrlTemplate||(ColorPicker._ctrlTemplate=`<div style="position:relative;width:100%;height:100%"><div style="float:left;width:50%;height:100%;box-sizing:border-box;padding:2px"><div wj-part="div-pal"><div style="float:left;width:10%;box-sizing:border-box;padding:2px"><div style="background-color:black;width:100%"></div><div style="height:6px"></div></div></div><div wj-part="div-text" style="position:absolute;bottom:0px;display:none"></div></div><div style="float:left;width:50%;height:100%;box-sizing:border-box;padding:2px"><div wj-part="div-sb" class="${ColorPickerClsNames.colorBox}" style="float:left;width:89%;height:89%"><div style="position:absolute;width:100%;height:100%;background:linear-gradient(to right, white 0%,transparent 100%)"></div><div style="position:absolute;width:100%;height:100%;background:linear-gradient(to top, black 0%,transparent 100%)"></div></div><div style="float:left;width:1%;height:89%"></div><div style="float:left;width:10%;height:89%"><div wj-part="div-hue" class="${ColorPickerClsNames.colorBox}"></div></div><div style="float:left;width:89%;height:1%"></div><div style="float:left;width:89%;height:10%"><div style="width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAAcSURBVBhXY/iPBBYgAWpKQGkwgMqDAdUk/v8HAM7Mm6GatDUYAAAAAElFTkSuQmCC)"><div wj-part="div-alpha" class="${ColorPickerClsNames.colorBox}"></div></div></div><div style="float:left;width:1%;height:10%"></div><div style="float:left;width:10%;height:10%"><div wj-part="div-pv" class="${ColorPickerClsNames.colorBox}" style="position:static"></div></div></div></div>`);return ColorPicker._ctrlTemplate}static set controlTemplate(t){ColorPicker._ctrlTemplate=t}get showAlphaChannel(){return"none"!=this._eAlpha.parentElement.style.display}set showAlphaChannel(t){this._eAlpha.parentElement.style.display=asBoolean(t)?"":"none"}get showColorString(){return"none"!=this._eText.style.display}set showColorString(t){this._eText.style.display=asBoolean(t)?"":"none";if(asBoolean(t)){this._eText.setAttribute("role","status");this._eText.setAttribute("aria-live","polite")}}get value(){return this._value}set value(t){if(t!=this.value){let e=this.value,s=(t=asString(t)).trim(),i=Color.fromString(s);if(i){let t=i.getHsb();this._value=s;this._eText.innerText=s;if(this._hsb[0]!=t[0]||this._hsb[1]!=t[1]||this._hsb[2]!=t[2]||this._alpha!=i.a){if(0==t[2]){t[0]=this._hsb[0];t[1]=this._hsb[1]}else 0==t[1]&&(t[0]=this._hsb[0]);this._hsb=t;this._alpha=i.a;this.onValueChanged()}else""===e&&this.onValueChanged()}else if(""===s){let e=new Color(t);this._hsb=e.getHsb();this._alpha=e.a;this._value=t;this._eText.innerText=s;this.onValueChanged()}}}get palette(){return this._palette}set palette(t){if((t=(t=asArray(t)).slice(0,10)).every(t=>null!=Color.fromString(t))){this._palette=t;this._updatePalette()}}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){if(t!=this._ariaLabel){this._ariaLabel=t;setAttribute(this.hostElement,"aria-label",this._ariaLabel)}}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=t;if(t==ColorPickerTabKeyAction.All){this.tabOrder=0;this.hostElement.setAttribute("tabindex","-1")}this._updateTabIndex()}_setTabOrder(t){super._setTabOrder(t);this.isDisabled||this._updateTabIndex()}onValueChanged(t){this._refreshSelection();this.valueChanged.raise(this,t)}_mouseDown(t){this._htDown=this._getTargetPanel(t);if(this._htDown){t.preventDefault();this._htDown.focus();this._mouseMove(t)}}_mouseMove(t){if(!this.isDisabled){var e=t.touches?t.touches[0]:t,s=this._htDown;if(s){let t=s.getBoundingClientRect(),i=[...this._hsb],n=this._alpha;if(s==this._eHue)i[0]=clamp((e.clientY-t.top)/t.height,0,.99);else if(s==this._eSB){i[1]=clamp((e.clientX-t.left)/t.width,0,1);i[2]=clamp(1-(e.clientY-t.top)/t.height,0,1)}else s==this._eAlpha&&(n=clamp((e.clientX-t.left)/t.width,0,1));this._updateColor(i,n)}}}_mouseUp(t){this._htDown=null}_updateColor(t=this._hsb,e=this._alpha){let s=this._hsb[0]!==t[0]||this._hsb[1]!==t[1]||this._hsb[2]!==t[2],i=this._alpha!==e;if(s||i){this._hsb=t;this._alpha=e;let s=Color.fromHsb(t[0],t[1],t[2],e);this._value=s.toString();this._eText.innerText=this._value;this.onValueChanged()}}_updatePalette(){const t=new Color("#fff"),e=new Color("#000");this._ePal.innerHTML="";this._ePal.className="palette-grid";const s=Array.from({length:6},()=>{const t=document.createElement("div");t.className="palette-row";t.setAttribute("role","row");return t});let i=this.getActualTabIndex();for(let n=0;n<this._palette.length;n++){let l=new Color(this._palette[n]);const a=l.getHsb(),h=this._makePalEntry(l);h.innerHTML="&#8203";h.setAttribute("role","columnheader");h.setAttribute("aria-label",`${culture.ColorPicker.ariaLabels.baseColor} ${l.toString()}`);if(0===n){this._ePalMainFirst=h;this._ePalMainFirst.setAttribute("tabindex",i)}else h.setAttribute("tabindex","-1");s[0].appendChild(h);for(let l=0;l<5;l++){const h=0===a[1]?Color.interpolate(t,e,.1*l+(a[2]>.5?.05:.55)):Color.fromHsb(a[0],.1+.2*l,1-.1*l),r=this._makePalEntry(h);r.setAttribute("role","gridcell");r.setAttribute("aria-label",`${culture.ColorPicker.ariaLabels.shadeColor} ${h.toString()}`);if(0===n&&0===l){this._ePalShadeFirst=r;this._ePalShadeFirst.setAttribute("tabindex",i)}else setAttribute(r,"tabindex","-1");s[l+1].appendChild(r)}}s.forEach(t=>this._ePal.appendChild(t))}_makePalEntry(t){let e=document.createElement("div");e.className="palette-gridcell";setCss(e,{backgroundColor:t.toString()});return e}_updatePanels(){let t=Color.fromHsb(this._hsb[0],1,1,1),e=Color.fromHsb(this._hsb[0],this._hsb[1],this._hsb[2],1);this._eSB.style.backgroundColor=t.toString();this._eAlpha.style.background="linear-gradient(to right, transparent 0%, "+e.toString()+" 100%)";navigator.appVersion.indexOf("MSIE 9")>-1&&(this._eAlpha.style.filter="progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000,endColorstr="+e.toString()+", GradientType = 1)");let s=this.value.trim();this._ePreview.style.backgroundColor=s;this._cHue.style.top=(100*this._hsb[0]).toFixed(0)+"%";this._cSB.style.left=(100*this._hsb[1]).toFixed(0)+"%";this._cSB.style.top=(100-100*this._hsb[2]).toFixed(0)+"%";this._cAlpha.style.left=(100*this._alpha).toFixed(0)+"%";const i=this.getColorsDiv(),n=getActiveElement();if(this.keyActionTab===ColorPickerTabKeyAction.All&&!this.hostElement.contains(n)){if(this.isDisabled)return;let t=!1;for(let e=0;e<i.length;e++){let n=i[e].style.backgroundColor;if(Color.fromString(s).equals(Color.fromString(n))){i[e].focus();t=!0;break}}t||i[0].focus()}}getColorsDiv(){const t=Array.from(this._ePal.querySelectorAll('[role="columnheader"]')),e=Array.from(this._ePal.querySelectorAll('[role="gridcell"]'));return t.concat(e)}_getTargetPanel(t){let e=t.target;return contains(this._eSB,e)?this._eSB:contains(this._eHue,e)?this._eHue:contains(this._eAlpha,e)?this._eAlpha:null}getActualTabIndex(){const t=this.tabOrder.toString();return this.keyActionTab===ColorPickerTabKeyAction.All&&!0!==this.isDisabled?t:"-1"}_updateTabIndex(){let t=this.getActualTabIndex();this._eSB.setAttribute("tabindex",t);this._eHue.setAttribute("tabindex",t);this._eAlpha.setAttribute("tabindex",t);this._ePalMainFirst.setAttribute("tabindex",t);this._ePalShadeFirst.setAttribute("tabindex",t)}_setIsDisabled(t){super._setIsDisabled(t);this._updateTabIndex()}_updateAriaValues(){const t=this._hsb;this._eSB.setAttribute("aria-valuenow",(100*t[1]).toString());this._eSB.setAttribute("aria-valuetext",`${culture.ColorPicker.ariaLabels.saturation} ${Math.round(100*t[1])}%, ${culture.ColorPicker.ariaLabels.brightness} ${Math.round(100*t[2])}%`);this._eHue.setAttribute("aria-valuenow",(360*t[0]).toString());this._eHue.setAttribute("aria-valuetext",`${culture.ColorPicker.ariaLabels.hue} ${Math.round(360*t[0])} ${culture.ColorPicker.ariaLabels.degrees}`);this._eAlpha.setAttribute("aria-valuenow",(100*this._alpha).toString());this._eAlpha.setAttribute("aria-valuetext",`${culture.ColorPicker.ariaLabels.opacity} ${Math.round(100*this._alpha)}%`)}_keydown(t){const e=t.target;this._isInColorPalette(e)?this._handleColorNavigation(t,e):e!==this._eSB?e!==this._eHue?e!==this._eAlpha||this._handleAlphaNavigation(t):this._handleHSBNavigation(t,"hue"):this._handleHSBNavigation(t,"sb")}_isInColorPalette(t){return t&&"DIV"===t.tagName&&contains(this._ePal,t)}_handleColorNavigation(t,e){const s=this.getColorsDiv(),i=this.palette.length,n=s.findIndex(t=>t===e);let l=null;switch(t.key){case"ArrowDown":n<s.length-1&&(l=s[n+i]);break;case"ArrowUp":n>0&&(l=s[n-i]);break;case"ArrowRight":const t=n+1;t<s.length&&(l=s[t]);break;case"ArrowLeft":const e=n-1;e>=0&&(l=s[e])}if(l){const e=l.style.backgroundColor;e&&(this.value=new Color(e).toString());l.focus();t.preventDefault()}}_handleHSBNavigation(t,e){let s=[...this._hsb];s=s.map(t=>roundTo(t,2));const adjust=(t,e,i)=>{const n=Math.round(100*s[t]);s[t]=clamp((n+e)/100,0,i)};switch(t.key){case"ArrowLeft":"sb"===e&&adjust(1,-1,1);break;case"ArrowRight":"sb"===e&&adjust(1,1,1);break;case"ArrowUp":"sb"===e?adjust(2,1,1):adjust(0,-1,.99);break;case"ArrowDown":"sb"===e?adjust(2,-1,1):adjust(0,1,.99)}if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(t.key)){this._updateColor(s,void 0);t.preventDefault()}}_refreshSelection(){this._updatePanels();this._updateAriaValues()}_handleAlphaNavigation(t){let e=this._alpha;switch(t.key){case"ArrowLeft":e=clamp(e-.01,0,1);break;case"ArrowRight":e=clamp(e+.01,0,1);break;default:return}this._updateColor(void 0,e);t.preventDefault()}}ColorPicker._ctrlTemplate="";ColorPicker._tplCursor='<div class="wj-colorpicker-cursor"></div>';_addCultureInfo("CollectionViewNavigator",{ariaLabels:{byPage:{btnFirst:"Navigate to first page",btnPrev:"Navigate to previous page",btnNext:"Navigate to next page",btnLast:"Navigate to last page"},byItem:{btnFirst:"Navigate to first item",btnPrev:"Navigate to previous item",btnNext:"Navigate to next item",btnLast:"Navigate to last item"}}});export class CollectionViewNavigator extends Control{constructor(t,e){super(t);this._view=null;this._byPage=!1;this._fmt="{current:n0} / {count:n0}";this._liveRegionON=!1;this._ariaLabel="";let s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${CollectionViewNavigatorClsNames.pager} ${CollectionViewNavigatorClsNames.hostElement}`,s,{_btnFirst:"btn-first",_btnPrev:"btn-prev",_txtCurr:"txt-curr",_btnNext:"btn-next",_btnLast:"btn-last"},"input");this.hostElement.tabIndex=-1;this._updateAriaLabels();const i=uidGenerator();this._txtCurr.id=i;[this._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(t=>{setAttribute(t.firstElementChild,"aria-controls",this._txtCurr.id)});setAttribute(this.hostElement.firstElementChild,"role","group");setAttribute(this._txtCurr,"role","status");this._rptNext=new _ClickRepeater(this._btnNext.querySelector("button"));this._rptPrev=new _ClickRepeater(this._btnPrev.querySelector("button"));this.addEventListener(this.hostElement,"click",this._click.bind(this));this.addEventListener(this.hostElement,"keydown",this._keydown.bind(this));setAttribute(this.hostElement,"role","navigation");this._addA11yRelatedHandlers();this.initialize(e);this._update()}static get controlTemplate(){CollectionViewNavigator._ctrlTemplate||(CollectionViewNavigator._ctrlTemplate=`<div class="${InputClsNames.inputGroup}"><span wj-part="btn-first" class="${InputClsNames.inputGroupBtn}"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}"><span class="${GlyphClsNames.stepBackward}"></span></button></span><span wj-part="btn-prev" class="${InputClsNames.inputGroupBtn}"> <button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}"><span class="${GlyphClsNames.left}"></span> </button></span><span wj-part="txt-curr" tabIndex="0"></span><span wj-part="btn-next" class="${InputClsNames.inputGroupBtn}"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}"><span class="${GlyphClsNames.right}"></span></button></span><span wj-part="btn-last" class="${InputClsNames.inputGroupBtn}"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}"><span class="${GlyphClsNames.stepForward}"></span></button></span></div>`);return CollectionViewNavigator._ctrlTemplate}static set controlTemplate(t){CollectionViewNavigator._ctrlTemplate=t}get cv(){return this._view}set cv(t){if(t!=this._view){let e=this._view;if(e){e.collectionChanged.removeHandler(this._collectionChanged);e.currentChanged.removeHandler(this._currentChanged)}e=this._view=asType(t,"ICollectionView",!0);this._update();if(e){e.collectionChanged.addHandler(this._collectionChanged,this);e.currentChanged.addHandler(this._currentChanged,this)}}}get byPage(){return this._byPage}set byPage(t){if(t!=this._byPage){this._byPage=asBoolean(t);this._update();this._updateAriaLabels()}}get headerFormat(){return this._fmt}set headerFormat(t){if(t!=this._fmt){this._fmt=asString(t);this._update()}}get repeatButtons(){return!this._rptNext.disabled}set repeatButtons(t){this._rptNext.disabled=this._rptPrev.disabled=!asBoolean(t)}get ariaLabel(){if(this.hostElement){const t=this.hostElement.getAttribute("aria-label");if(t)return t}return this._ariaLabel}set ariaLabel(t){if(this.ariaLabel!==t){this._ariaLabel=t;this.hostElement&&setAttribute(this.hostElement,"aria-label",t)}}get isDisabled(){return this._isDisabled}set isDisabled(t){this._setIsDisabled(t)}focus(){let t=this._e;t&&t.offsetHeight&&(this.isDisabled||moveFocus(t,0)||this._txtCurr.tabIndex>=0&&this._txtCurr.focus())}_update(){let t=this._view,e=this._byPage,s=t?e?t.pageIndex:t.currentPosition:0,i=t?e?t.pageCount:t.itemCount:0;if(this.isDisabled)[this._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(t=>{enable(t,!1)});else{enable(this._btnFirst,t&&s>0);enable(this._btnPrev,t&&s>0);enable(this._txtCurr,null!=t);enable(this._btnNext,t&&s<i-1);enable(this._btnLast,t&&s<i-1)}this._updateTabIndex();this._txtCurr.textContent=format(this._fmt,{current:t?s+1:0,count:t?i:0,currentItem:t?t.currentPosition+1:0,itemCount:t?t.itemCount:0,currentPage:t?t.pageIndex+1:0,pageCount:t?t.pageCount:0})}_currentChanged(){this._update()}_collectionChanged(){this._update()}_click(t){let e=t.target,s=this._view,i=this._byPage;if(s){contains(this._btnFirst,e)?i?s.moveToFirstPage():s.moveCurrentToFirst():contains(this._btnPrev,e)?i?s.moveToPreviousPage():s.moveCurrentToPrevious():contains(this._btnNext,e)?i?s.moveToNextPage():s.moveCurrentToNext():contains(this._btnLast,e)&&(i?s.moveToLastPage():s.moveCurrentToLast());(this.byPage?s.pageIndex>=s.pageCount-1||s.pageIndex<=0:s.currentPosition>=s.itemCount-1||s.currentPosition<=0)&&!this.isDisabled&&this._txtCurr.tabIndex>=0&&this._txtCurr.focus();t.preventDefault()}}_updateAriaLabels(){let t=culture.CollectionViewNavigator.ariaLabels[this._byPage?"byPage":"byItem"];setAttribute(this._btnFirst.firstElementChild,"aria-label",t.btnFirst);setAttribute(this._btnPrev.firstElementChild,"aria-label",t.btnPrev);setAttribute(this._btnNext.firstElementChild,"aria-label",t.btnNext);setAttribute(this._btnLast.firstElementChild,"aria-label",t.btnLast)}_addA11yRelatedHandlers(){this.addEventListener(this._txtCurr,"focus",t=>{if(this._txtCurr===document.activeElement){setAttribute(this._txtCurr,"aria-live","off");setAttribute(this._txtCurr,"aria-label",this._txtCurr.textContent);this._liveRegionON=!1}});this.addEventListener(this._txtCurr,"blur",t=>{this._txtCurr!==document.activeElement&&this._txtCurr.removeAttribute("aria-label")});[this._btnFirst.firstElementChild,this._btnPrev.firstElementChild,this._btnNext.firstElementChild,this._btnLast.firstElementChild].forEach(t=>{this.addEventListener(t,"focus",t=>{setTimeout(()=>{if(!this._liveRegionON){const t=_isMacOS()?"polite":"assertive";setAttribute(this._txtCurr,"aria-live",t);this._liveRegionON=!0}})})})}_setTabOrder(t){let e=this._e,s=null!=this._txtCurr.getAttribute("disabled");this._orgTabIndex=t;if(this.isDisabled||s){e.tabIndex=-1;this._txtCurr.tabIndex=-1}else s||(this._txtCurr.tabIndex=this._orgTabIndex)}_keydown(t){if(contains(this._txtCurr,t.target)&&(t.ctrlKey||t.metaKey)&&("A"===t.key||"a"===t.key)){t.preventDefault();const e=document.createRange();e.selectNodeContents(this._txtCurr);const s=window.getSelection();s.removeAllRanges();s.addRange(e)}}_setIsDisabled(t){if((t=!!asBoolean(t,!0))!=this.isDisabled){let e=this._e;if(e){this._isDisabled=t;toggleClass(e,ControlStateClsNames.disabled,t);this._update();this._txtCurr.tabIndex=t?-1:this._orgTabIndex}}}_updateTabIndex(){[this._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(t=>{if(this._isDisabled)t.firstElementChild.setAttribute("tabindex","-1");else{t.firstElementChild.disabled?t.firstElementChild.setAttribute("tabindex","-1"):t.firstElementChild.setAttribute("tabindex",this._orgTabIndex.toString())}})}}CollectionViewNavigator._ctrlTemplate="";_addCultureInfo("Listbox",{ariaLabels:{listBox:"list box"}});export class ListBox extends Control{constructor(t,e){super(t,null,!0);this._cv=null;this._itemFormatter=null;this._pathDisplay=new Binding("");this._pathValue=new Binding("");this._pathChecked=new Binding("");this._html=!1;this._shGroups=!1;this._checkedItems=[];this._itemRole="option";this._caseSensitive=!1;this._addMode=!1;this._isShiftDown=!1;this._shouldClearOnShift=!0;this._vThreshold=ListBox._VTHRESH;this._isVirtual=!1;this._children=[];this._ignoreItemFormatterTextArray=[];this._itemFormatterHelper=document.createElement("div");this._clientHeight=-1;this._itemHeight=30;this._itemsAbove=-1;this._itemsBelow=-1;this._eSizer=document.createElement("div");this._ePadTop=document.createElement("div");this._ePadBot=document.createElement("div");this._checking=!1;this._ignoredItemChangedEvents=!1;this._search="";this._fmtItemHandlers=0;this._itemCount=0;this._oldSel=null;this._container=null;this._oldSelectedIndex=-1;this._ariaLabel=culture.Listbox.ariaLabels.listBox;this._isNeedUpdateBnd=!0;this.selectedIndexChanged=new Event;this.itemsChanged=new Event;this.loadingItems=new Event;this.loadedItems=new Event;this.itemChecked=new Event;this.checkedItemsChanged=new Event;this.formatItem=new Event(()=>{this.invalidate()});this._handleKeyUp=t=>{if("Shift"===t.key){this._isShiftDown=!1;this._shouldClearOnShift=!0}};this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${ListBoxClsNames.hostElement}`,null,null);let s=this.hostElement;setAttribute(s,"role","listbox",!0);this._updateAriaLabel();"SELECT"==this._orgTag&&this._initFromSelect(this.hostElement);this.addEventListener(s,"click",this._click.bind(this));this.addEventListener(s,"keydown",this._keydown.bind(this));this.addEventListener(s,"keypress",this._keypress.bind(this));this.addEventListener(s,"keyup",this._handleKeyUp.bind(this));this.addEventListener(s,"wheel",t=>{if(s.scrollHeight>s.offsetHeight&&(t.deltaY<0&&0==s.scrollTop||t.deltaY>0&&s.scrollTop+s.offsetHeight>=s.scrollHeight)){t.preventDefault();t.stopPropagation();t.stopImmediatePropagation()}});[this._eSizer,this._ePadTop,this._ePadBot].forEach(t=>{t.tabIndex=-1;setAttribute(t,"aria-hidden",!0);setCss(t,{pointerEvents:"none",opacity:"0"})});this.initialize(e);this._updateViewRange();this.addEventListener(this.hostElement,"scroll",t=>{this._updateViewRange()})}get ariaLabelledBy(){return this.hostElement.getAttribute("aria-labelledby")}set ariaLabelledBy(t){_setAriaLabelBy(this,this.hostElement,t,this._updateAriaLabel.bind(this))}get itemsSource(){return this._items}set itemsSource(t){if(this._items!=t){if(this._cv){this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._items=t;this._cv=asCollectionView(t);if(null!=this._cv){this._cv.currentChanged.addHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this)}this._populateList();this.onItemsChanged();this.onSelectedIndexChanged()}}get collectionView(){return this._cv}get virtualizationThreshold(){return this._vThreshold}set virtualizationThreshold(t){if(t!=this._vThreshold){let e=this._getVirtual();this._vThreshold=asNumber(t,!1,!0);e!=this._getVirtual()&&this._populateList()}}get showGroups(){return this._shGroups}set showGroups(t){if(t!=this._shGroups){this._shGroups=asBoolean(t);this._populateList()}}get isContentHtml(){return this._html}set isContentHtml(t){if(t!=this._html){this._html=asBoolean(t);this._populateList()}}get itemFormatter(){return this._itemFormatter}set itemFormatter(t){if(t!=this._itemFormatter){this._itemFormatter=asFunction(t);this._populateList()}}get displayMemberPath(){return this._pathDisplay.path}set displayMemberPath(t){if(t!=this.displayMemberPath){this._pathDisplay.path=asString(t);this._populateList()}}get selectedValuePath(){return this._pathValue.path}set selectedValuePath(t){this._pathValue.path=asString(t)}get checkedMemberPath(){return this._pathChecked.path}set checkedMemberPath(t){if(t!=this.checkedMemberPath){this._pathChecked.path=asString(t);setAttribute(this.hostElement,"aria-multiselectable",""!==this.checkedMemberPath?"true":"false");this._populateList()}}get caseSensitiveSearch(){return this._caseSensitive}set caseSensitiveSearch(t){this._caseSensitive=asBoolean(t)}get itemRole(){return this._itemRole}set itemRole(t){if(t!=this.itemRole){this._itemRole=asString(t);this._populateList()}}getDisplayValue(t,e){let s=null;if(t>-1&&hasItems(this._cv)){s=this._cv.items[t];this.displayMemberPath&&(s=this._pathDisplay.getValue(s))}let i=null!=s?s.toString():"";this._itemFormatter&&!e&&(i=this._itemFormatter(t,i));return i}getDisplayText(t){return this._getDisplayText(t)}_getDisplayText(t,e){if(e&&this._ignoreItemFormatterTextArray[t])return this._ignoreItemFormatterTextArray[t];let s=this._getChild(t);return null!=s?s.textContent:""}isItemEnabled(t){var e=this._getChild(t);return null!=e&&!e.hasAttribute("disabled")&&!hasClass(e,ControlStateClsNames.disabled)&&!hasClass(e,UtilitesClsNames.separator)}get selectedIndex(){return this._cv?this._cv.currentPosition:-1}set selectedIndex(t){if(this._cv){this._oldSelectedIndex=this._cv.currentPosition;this._cv.moveCurrentToPosition(asNumber(t))}}get selectedItem(){return this._cv?this._cv.currentItem:null}set selectedItem(t){this._cv&&this._cv.moveCurrentTo(t)}get selectedValue(){let t=this.selectedItem;t&&this.selectedValuePath&&(t=this._pathValue.getValue(t));return t}set selectedValue(t){let e=this._cv,s=e?e.items:null,i=this.selectedValuePath,n=-1;if(s){for(let e=0;e<s.length;e++){let l=s[e],a=i?this._pathValue.getValue(l):l;if(a===t||DateTime.equals(a,t)){n=e;break}if(this.isContentHtml&&isString(a)&&a.indexOf("<")>-1&&toPlainText(a)===t){n=e;break}}this.selectedIndex=n}}get maxHeight(){let t=this.hostElement,e=t?parseFloat(t.style.maxHeight):null;return isNaN(e)?null:e}set maxHeight(t){let e=this.hostElement;if(e){t=asNumber(t,!0);e.style.maxHeight=null==t?"":t+"px"}}showSelection(t=this.containsFocus()){let e=this.hostElement,s=this._children,i=this._getSelectedElement(!1),n=new Rect(0,0,0,0);if(i!=this._oldSel){this._updateItemAttributes(i,!0);this._updateItemAttributes(this._oldSel,!1);this._oldSel=i}i instanceof HTMLElement?n=this._getBoundingClientRect(i):this._children.length>0&&(n=this._getBoundingClientRect(this._getChild(0)));let l=this._getBoundingClientRect(e),a=0;if(this._shGroups){a=this._itemHeight;if(!this._isVirtual){let t=s[0];t&&t.offsetHeight&&hasClass(t,ListBoxClsNames.header)&&(a=t.offsetHeight)}}n.bottom>l.bottom?e.scrollTop+=n.bottom-l.bottom:n.top<l.top+a&&(e.scrollTop-=l.top+a-n.top);this._updateViewRange();i=this._getSelectedElement(!0);setAttribute(e,"aria-activedescendant",i?i.id:null);if(t){(i&&!contains(i,getActiveElement())?i:e).focus()}e.tabIndex=i?-1:this._orgTabIndex}loadList(){this._populateList()}getItemChecked(t){let e=this._cv.items[t],s=this._pathChecked;return isObject(e)&&s.path?s.getValue(e):this._getCheckboxState(t)}setItemChecked(t,e){this._setItemChecked(t,e,!0)}toggleItemChecked(t){this.setItemChecked(t,!this.getItemChecked(t))}get checkedItems(){return this._checkedItems}set checkedItems(t){t=Array.from(new Set(t));let e=asArray(t,!1);if(!this._arrayEquals(e,this._checkedItems)){this._updateCheckedList(e);if(!this._arrayEquals(e,this._checkedItems)){this._checkedItems=e;this.onCheckedItemsChanged()}}}indexOf(t){return(t=closest(t,"."+ListBoxClsNames.listBoxItem))?t[ListBox._DIDX_KEY]:-1}onSelectedIndexChanged(t){this.selectedIndexChanged.raise(this,t)}onItemsChanged(t){this.itemsChanged.raise(this,t)}onLoadingItems(t){this.loadingItems.raise(this,t)}onLoadedItems(t){this.loadedItems.raise(this,t)}onItemChecked(t){this.itemChecked.raise(this,t)}onCheckedItemsChanged(t){this.checkedItemsChanged.raise(this,t)}onFormatItem(t){this.formatItem.raise(this,t)}refresh(t=!0){super.refresh(t);if(this.hostElement){let t=this._cv?this._cv.items.length:0,e=this.formatItem.handlerCount;if(t!=this._itemCount||e!=this._fmtItemHandlers){this._fmtItemHandlers=e;this._populateList()}else this._updateViewRange()}}_updateAriaLabel(){this.hostElement&&(this.ariaLabelledBy?setAriaLabel(this.hostElement,null):setAriaLabel(this.hostElement,this._ariaLabel))}_updateCheckedList(t){let e=this._cv,s=this._pathChecked,i=new Map;if(s&&e){let n=e.sourceCollection;if(n&&n.length){isObject(n[0])||(s=null);t.forEach(t=>i.set(t,!0));this._checking=!0;let e=[];n.forEach(t=>{let n=i.has(t);n&&e.push(t);s&&this._isNeedUpdateBnd&&s.setValue(t,n)});this._checking=!1;t=e}e.items.forEach((t,e)=>{this._setItemChecked(e,i.has(t),!1)})}}_getBoundingClientRect(t){if(!t.offsetHeight){let e=this.indexOf(t),s=this.hostElement;if(e>-1&&s){e=this._getElementIndex(e);let t=s.getBoundingClientRect();return new Rect(0,t.top-s.scrollTop+e*this._itemHeight,t.width,this._itemHeight)}}return Rect.fromBoundingRect(t.getBoundingClientRect())}_updateItemAttributes(t,e){if(t){const s=this.checkedMemberPath?"true"===t.getAttribute("aria-selected"):null;toggleClass(t,ControlStateClsNames.selected,e);this._isMenuItem()||setAttribute(t,"aria-selected",this._getAriaSelected(e,s));t.tabIndex=e?this._orgTabIndex:-1}}_getCheckedItems(){let t=this._cv,e=this._pathChecked,s=[];t&&e&&e.path&&(s=t.sourceCollection.filter((s,i)=>{if(t.filter&&!t.filter(s))return!!this._addMode&&e.getValue(s);if(isObject(s))return e.getValue(s);{let e=t.items[i]==s?i:t.items.indexOf(s);return this.getItemChecked(e)}}));return s}_arrayEquals(t,e){if(t==e)return!0;if(!t||!e||t.length!=e.length)return!1;for(let s=0;s<t.length;s++)if(!this._isEqual(t[s],e[s]))return!1;return!0}_getChild(t){t=this._getElementIndex(t);return this._children[t]}_getElementIndex(t){if(this._shGroups){let e=this._children;for(let s=0;s<=t&&s<e.length;s++){let i=e[s];hasClass(i,ListBoxClsNames.header)&&t++}}return t}_setItemChecked(t,e,s=!0){let i=this._cv.items[t],n=this._pathChecked,l=!1,a=this.selectedIndex,h=this._checking;if(isObject(i)&&n.path){if(!!n.getValue(i)!=e){let t=tryCast(this._cv,"IEditableCollectionView");l=!0;this._checking=!0;if(t){t.editItem(i);n.setValue(i,e);t.commitEdit()}else{n.setValue(i,e);t.refresh()}this._checking=h}}else if(s){let t=this._findArrayItem(this._checkedItems,i);(e&&t<0||!e&&t>=0)&&(l=!0)}this._setCheckboxState(t,e);if(s){if(l){this._checkedItems=this._checkedItemsUpdate(i,e);this.onItemChecked();this.onCheckedItemsChanged()}a!=this.selectedIndex&&this.onSelectedIndexChanged()}return l}_checkedItemsUpdate(t,e){let s=this._cv.sourceCollection,i=this._checkedItems,n=0;if(e){for(var l=0;l<s.length;l++){let e=s[l];if(n<i.length&&this._isEqual(e,i[n]))n++;else if(this._isEqual(e,t))return i.slice(0,n).concat([t]).concat(i.slice(n))}return i}{let e=this._findArrayItem(i,t);return i.slice(0,e).concat(i.slice(e+1))}}_isEqual(t,e){return t===e||Number.isNaN(t)&&Number.isNaN(e)}_findArrayItem(t,e){if(!Number.isNaN(e))return t.indexOf(e);for(var s=0;s<t.length;s++)if(Number.isNaN(t[s]))return s;return-1}_cvCollectionChanged(){if(!this._checking){this._populateList();this.onItemsChanged()}}_cvCurrentChanged(){if(!this._checking){this.showSelection();this._ignoredItemChangedEvents||this.onSelectedIndexChanged()}}_populateList(){let t=this.hostElement,e=this._cv;this._itemCount=e?e.items.length:0;this._isVirtual=this._getVirtual();this._oldSel=null;this._itemsAbove=-1;this._itemsBelow=-1;if(t){let s,i=this.containsFocus();this.onLoadingItems();let n=this._children=[];t.textContent="";if(e){let i,l=0,a=[];this._ignoreItemFormatterTextArray=[];if(this._shGroups&&e.groups&&e.groups.length){s={};for(let t=0;t<e.groups.length;t++){let n=e.groups[t];s[l]=n;i=this._createHeaderItem(n,t);a.push(i);for(let e=0;e<n.items.length;e++,l++){i=this._createItem(l,t);a.push(i)}}}else for(let t=0;t<e.items.length;t++,l++){i=this._createItem(l);a.push(i)}let h=this._isVirtual?document.createElement("div"):t,r=0;setInnerHTMLSafe(h,a.join(""));for(let t=0;t<h.children.length;t++){let s=h.children[t];r==e.currentPosition&&(this._oldSel=s);s[ListBox._DIDX_KEY]=s.className.indexOf(ListBoxClsNames.header)<0?r++:-1;n.push(s)}}if(this.formatItem.hasHandlers&&e){let t=0,i=e.items,l=new FormatItemEventArgs(0,null,null);for(let e=0;e<n.length;e++){l._item=n[e];if(this._shGroups&&hasClass(l._item,ListBoxClsNames.header)){l._index=-1;l._data=s[t]}else{l._index=t;l._data=i[t++]}this.onFormatItem(l)}}if(this._isVirtual){let e=this._getCanvasContext(),s=null,i=0;for(let t=0;t<n.length;t++){let l=n[t],a=e.measureText(l.textContent);if(a.width>i){s=l;i=a.width}}if(s){let e=!1,i=t.style.display,l=t.style.position;if(!t.parentElement){e=!0;(this._container||document.body).appendChild(t);setCss(t,{display:"",position:"absolute"})}t.appendChild(s);let a=s.style.whiteSpace;s.style.whiteSpace="nowrap";this._ePadTop.style.width=s.offsetWidth+"px";this._itemHeight=s.offsetHeight||this._itemHeight;s.style.whiteSpace=a;this._eSizer.style.height=n.length*this._itemHeight+"px";t.appendChild(this._eSizer);this._clientHeight=t.clientHeight;removeChild(this._eSizer);if(e){removeChild(t);setCss(t,{display:i,position:l})}removeChild(s)}else this._ePadTop.style.width="";this._updateViewRange()}this.checkedItems=this._getCheckedItems();let l=this._getSelectedElement(!0);if(i){(l||t).focus()}else l&&this.showSelection();t.tabIndex=l?-1:this._orgTabIndex;this.onLoadedItems()}}_getCanvasContext(){let t=document.createElement("canvas").getContext("2d"),e=getComputedStyle(this.hostElement);e.fontSize&&e.fontFamily&&(t.font=e.fontSize+" "+e.fontFamily.split(",")[0]);return t}_getVirtual(){if(this._itemCount<=this._vThreshold)return!1;let t=this.hostElement;if(t){let e=getComputedStyle(t);if(parseInt(e.columnCount)>1||e.display.indexOf("flex")>-1||e.display.indexOf("grid")>-1)return!1}return!0}_getMaxSupportedCssHeight(){let t=265e5;isIE()?t=15e5:isFirefox()&&(t=175e5);return t}_updateViewRange(){let t=this.hostElement,e=this._itemHeight,s=this._children;if(!(t&&t.parentElement&&this._isVirtual&&s))return!1;let i=t.scrollTop;assert(e*s.length<this._getMaxSupportedCssHeight(),`The number of items (${s.length}) exceeds the maximum number of items (${Math.floor(this._getMaxSupportedCssHeight()/e)}) allowed for this browser.`);let n=Math.max(t.clientHeight,this._clientHeight),l=Math.floor(i/e),a=Math.min(s.length,Math.ceil((i+n)/e)-l),h=Math.max(0,s.length-l-a);if(l==this._itemsAbove&&h==this._itemsBelow)return!1;this._itemsAbove=l;this._itemsBelow=h;let r=document.createDocumentFragment(),o=this.containsFocus();this._ePadTop.style.height=l*e+"px";r.appendChild(this._ePadTop);if(this.showGroups&&!hasClass(s[l],ListBoxClsNames.header))for(let t=l;t>=0;t--)if(hasClass(s[t],ListBoxClsNames.header)){r.appendChild(s[t]);break}for(let t=l;t<=l+a&&t<s.length;t++)r.appendChild(s[t]);this._ePadBot.style.height=h*e+"px";r.appendChild(this._ePadBot);t.textContent="";t.appendChild(r);let d=(l+a+h)*e-t.scrollHeight;this._ePadBot.style.height=this._ePadBot.offsetHeight-d+"px";let u=this._getSelectedElement(!0);if(o){(u||t).focus({preventScroll:!0})}t.tabIndex=u?-1:this._orgTabIndex;return!0}_getSelectedElement(t){let e=this.selectedIndex,s=this._getElementIndex(e),i=s>-1?this._children[s]:null;t&&i&&!i.offsetHeight&&(i=null);return i}_handleResize(){this._updateViewRange()}_createItem(t,e){let s=this._cv.items[t],i=t==this._cv.currentPosition,n=this.getDisplayValue(t),l=this.getDisplayValue(t,void 0!==this.itemFormatter);if(1!=this._html){n=escapeHtml(n);l=escapeHtml(l)}l=l.replace(/\bstyle\s*=/gi,"data-style=");this._itemFormatterHelper.innerHTML=l;l=this._itemFormatterHelper.textContent;this._ignoreItemFormatterTextArray.push(l);let a=null;if(this.checkedMemberPath){a=!1;isObject(s)?a=!!this._pathChecked.getValue(s):this._checkedItems&&(a=this._checkedItems.indexOf(s)>-1);n='<label class="wj-checklist-item"><span class="wj-checklist-base" role="checkbox" aria-hidden="true"><span class="wj-checklist-mark"></span></span><span class="wj-checklist-caption">'+n+"</span></label>"}let h=ListBoxClsNames.listBoxItem;i&&(h+=" "+ControlStateClsNames.selected);a&&(h+=" "+ControlStateClsNames.checked);if(this._html){let t=[UtilitesClsNames.separator,ControlStateClsNames.disabled];if(n.indexOf(t[0])>-1||n.indexOf(t[1])>-1){let e=createElement(n);t.forEach(t=>{hasClass(e,t)&&(h+=" "+t)})}}const r="aria-describedby = listGroup-"+e;return`<div id="${"listitem-"+t}" class="${h}" \n role="${this.itemRole}" \n ${void 0!==e?r:""}\n ${this._getAriaSelected(i,a)&&!this._isMenuItem()?'aria-selected="true"':""} \n tabindex="${i&&!this.isDisabled?this._orgTabIndex:-1}">${n}</div>`}_getAriaSelected(t,e){return!!(null!=e?e:t)||null}_createHeaderItem(t,e){let s=escapeHtml(t.name);return`<div id="${"listGroup-"+e}" class="${ListBoxClsNames.listBoxItem} ${ListBoxClsNames.header} ${ControlStateClsNames.disabled}" role="group" tabindex="-1">`+s+"</div>"}_click(t){if(0==t.button&&!t.defaultPrevented){let e=this.indexOf(t.target);if(e>-1){this.selectedIndex=e;if(this.checkedMemberPath){let s=this._getCheckbox(e);if(s){let i=closest(s,".wj-listbox-item");if(t.target==s||t.target==i){i.focus({preventScroll:!0});this.setItemChecked(e,s.checked)}}else{let t=this._children[this._getElementIndex(e)];if(t){t.focus({preventScroll:!0});this.setItemChecked(e,"true"!==t.getAttribute("aria-selected"))}}}else{closest(t.target,"."+ListBoxClsNames.listBoxItem).focus({preventScroll:!0})}}}}_keydown(t){let e=this.selectedIndex;if(!t.defaultPrevented){if(65==t.keyCode&&(t.ctrlKey||t.metaKey)){let e=this.collectionView;if(this.checkedMemberPath&&hasItems(e)){let s=this._children;const i=[];let n=!0;for(let t=0;t<s.length;t++){if(hasClass(s[t],_CLS_STATE_DISABLED))continue;let l=e.items[t];i.push(l);n&&!this.checkedItems.includes(l)&&(n=!1)}i.length!==e.items.length?this.checkedItems=n?this.checkedItems.filter(t=>!i.includes(t)):[...this.checkedItems,...i]:this.checkedItems=this.checkedItems.length!=e.items.length?e.items:[];t.preventDefault();return}}if(!t.altKey&&!t.metaKey){t.shiftKey&&(this._isShiftDown=!0);switch(t.keyCode){case Key.Down:t.preventDefault();this._selectNext(t.shiftKey);break;case Key.Up:t.preventDefault();this._selectPrev(t.shiftKey);break;case Key.Home:t.preventDefault();t.ctrlKey&&t.shiftKey?this._selectRange(0):this._selectFirst();break;case Key.End:t.preventDefault();t.ctrlKey&&t.shiftKey?this._selectRange(this._children.length-1):this._selectLast();break;case Key.PageDown:t.preventDefault();this._selectNextPage();break;case Key.PageUp:t.preventDefault();this._selectPrevPage();break;case Key.Space:if(this.checkedMemberPath&&e>-1){const s=this._children[this._getElementIndex(e)];if(s&&this.isItemEnabled(e)&&!s.hasAttribute("disabled")){let i="true"===s.getAttribute("aria-selected");this.setItemChecked(e,!i);t.preventDefault()}}}}}}_getCheckboxState(t){const e=this._children[this._getElementIndex(t)];if(e)return"true"===e.getAttribute("aria-selected")}_setCheckboxState(t,e){const s=this._getElementIndex(t),i=this._children[s];if(i){if(i.querySelector(".wj-checklist-mark")){i.setAttribute("aria-selected",e.toString());toggleClass(i,ControlStateClsNames.checked,e)}else{let t=this._getCheckbox(s);if(t){t.checked=e;let s=closest(t,"."+ListBoxClsNames.listBoxItem);if(s){toggleClass(s,ControlStateClsNames.checked,e);setAttribute(s,"aria-selected",!!e||null)}}}}}_getCheckbox(t){let e=this._children;return this.hostElement&&t>-1&&t<e.length?e[t].querySelector("input[type=checkbox]"):null}_keypress(t){if(!t.defaultPrevented&&!(t.target instanceof HTMLInputElement)&&(t.charCode>32||32==t.charCode&&this._search)){t.preventDefault();this._search+=String.fromCharCode(t.charCode);this._toSearch&&clearTimeout(this._toSearch);this._toSearch=setTimeout(()=>{this._toSearch=null;this._search=""},Control._SEARCH_DELAY);let e=this._findNext();if(e<0&&this._search.length>1){this._search=this._search[this._search.length-1];e=this._findNext()}e>-1&&(this.selectedIndex=e)}}_selectNext(t=!1){const e=this.selectedIndex,s=this._findNextEnabled(e+1);if(s>-1){t&&this._selectRange(s);this.selectedIndex=s}return s>-1}_selectPrev(t=!1){const e=this.selectedIndex,s=this._findPrevEnabled(e-1);if(s>-1){t&&this._selectRange(s);this.selectedIndex=s}return s>-1}_findNextEnabled(t){for(let e=t;e<this._children.length;e++)if(this.isItemEnabled(e))return e;return-1}_findPrevEnabled(t){for(let e=t;e>=0;e--)if(this.isItemEnabled(e))return e;return-1}_selectFirst(){for(let t=0;t<this._children.length;t++)if(this.isItemEnabled(t)){this.selectedIndex=t;return!0}return!1}_selectLast(){for(let t=this._children.length-1;t>=0;t--)if(this.isItemEnabled(t)){this.selectedIndex=t;return!0}return!1}_selectNextPage(){let t=this.hostElement.offsetHeight,e=this._children,s=this._cv?this._cv.items.length:0,i=0;if(t>0)for(let n=this.selectedIndex+1;n<s;n++){let s=e[n].scrollHeight||this._itemHeight;if(i+s>t&&this.isItemEnabled(n)){this.selectedIndex=n;return!0}i+=s}return this._selectLast()}_selectPrevPage(){let t=this.hostElement.offsetHeight,e=this._children,s=0;if(t>0)for(let i=this.selectedIndex-1;i>0;i--){let n=e[i].scrollHeight||this._itemHeight;if(s+n>t&&this.isItemEnabled(i)){this.selectedIndex=i;return!0}s+=n}return this._selectFirst()}_findNext(){if(this.hostElement){let t=this._children.length,e=this.selectedIndex;(e<0||1==this._search.length)&&e++;let s=this._search,i=this.caseSensitiveSearch;i||(s=s.toLowerCase());for(let n=0;n<t;n++){let l=(e+n)%t;if(this.isItemEnabled(l)){let t=this.getDisplayText(l).trim();i||(t=t.toLowerCase());if(0==t.indexOf(s))return l}}}return-1}_initFromSelect(t){let e=t.children,s=[],i=-1;for(let n=0;n<e.length;n++){let l=e[n];if("OPTION"==l.tagName){l.hasAttribute("selected")&&(i=s.length);l.innerHTML?s.push({hdr:l.innerHTML,val:l.getAttribute("value"),cmdParam:l.getAttribute("cmd-param")}):s.push({hdr:`<div class="${UtilitesClsNames.separator}"></div>`});t.removeChild(l);n--}}if(s){this.displayMemberPath="hdr";this.selectedValuePath="val";this.itemsSource=s;this.selectedIndex=i}}_setIsDisabled(t){super._setIsDisabled(t);this._updateTabIndex()}_setTabOrder(t){super._setTabOrder(t);this.isDisabled||this._updateTabIndex()}_isMenuItem(){return"menuitem"===this.itemRole||"menuitemcheckbox"===this.itemRole||"menuitemradio"===this.itemRole}_updateTabIndex(){let t=this.hostElement,e=this._getSelectedElement(!0);if(e){e.tabIndex=this.isDisabled?-1:this._orgTabIndex;t.tabIndex=-1}else t.tabIndex=this.isDisabled?-1:this._orgTabIndex}_selectRange(t){if(-1===this.selectedIndex)return;if(this._shouldClearOnShift&&this._isShiftDown){this.checkedItems=[];this._shouldClearOnShift=!1}const e=Math.min(this.selectedIndex,t),s=Math.max(this.selectedIndex,t),i=this.collectionView.items.slice(e,s+1);this.checkedItems=Array.from(new Set([...this.checkedItems,...i]))}dispose(){if(this._cv){this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv=null}this._items=null;if(this._toSearch){clearTimeout(this._toSearch);this._toSearch=null}this._children=null;this._eSizer=null;this._ePadTop=null;this._ePadBot=null;this._itemFormatterHelper=null;this._ignoreItemFormatterTextArray=null;this._checkedItems=null;super.dispose()}}ListBox._DIDX_KEY="$WJ-DIDX";ListBox._VTHRESH=Number.MAX_VALUE/2;export class FormatItemEventArgs extends EventArgs{constructor(t,e,s){super();this._index=asNumber(t);this._data=e;this._item=asType(s,HTMLElement,!0)}get index(){return this._index}get data(){return this._data}get item(){return this._item}}_addCultureInfo("MultiSelectListBox",{filterPlaceholder:"Filter",selectAll:"Select All",ariaLabels:{multiSelectListBox:"Multi select list box"}});export class MultiSelectListBox extends Control{constructor(t,e){super(t);this._ariaLabel=culture.MultiSelectListBox.ariaLabels.multiSelectListBox;this._selectAllLabel=null;this._filterPlaceholder=null;this._filterText="";this._checkOnFilter=!0;this._delay=Control._SEARCH_DELAY;this.checkedItemsChanged=new Event;this.selectedIndexChanged=new Event;let s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${MultiSelectListBoxClsNames.hostElement}`,s,{_selectAll:"select-all",_filter:"filter",_lbHost:"list-box"});this._selectAll.style.display="none";this._filter.style.display="none";this._lbx=new ListBox(this._lbHost,{checkedMemberPath:MultiSelectListBox._DEF_CHECKED_PATH,loadedItems:()=>this._updateCheckAllCheckbox(),checkedItemsChanged:t=>this.onCheckedItemsChanged(t),selectedIndexChanged:()=>this.onSelectedIndexChanged()});this._cbSelectAll=this._selectAll.querySelector("input[type=checkbox]");this._spSelectAll=this._selectAll.querySelector("label>span");let i=culture.MultiSelectListBox;setText(this._spSelectAll,i.selectAll);this._filter.placeholder=i.filterPlaceholder;this.initialize(e);this.addEventListener(this._filter,"input",()=>{if(this._filter.value!=this._filterText){this._filterText=this._filter.value;this._toSearch&&clearTimeout(this._toSearch);this._toSearch=setTimeout(()=>{this._toSearch=null;this._applyFilter()},this.delay)}});this.addEventListener(this._cbSelectAll,"click",t=>{let e=this._lbx.collectionView;hasItems(e)&&(this.checkedItems=t.target.checked?e.items:[])});this.addEventListener(this.hostElement,"keydown",t=>{let e=this.showFilterInput?this._filter:null,s=this._lbx;if(e&&t.keyCode==Key.F3){setSelectionRange(e,0,e.value.length);t.preventDefault()}if(getActiveElement()==e){let e=!t.altKey;switch(t.keyCode){case Key.Escape:case Key.F4:case Key.Tab:e=!1}e&&t.stopPropagation()}if(!s.containsFocus())switch(t.keyCode){case Key.Up:case Key.Down:this._lbx.focus();if(!t.altKey){let e=s.selectedIndex+(t.keyCode==Key.Up?-1:1);s.selectedIndex=Math.max(0,e)}t.preventDefault()}},!0);this.hostElement.tabIndex=-1;this._lbx.tabOrder=this._orgTabIndex;this._updateAriaLabel()}static get controlTemplate(){MultiSelectListBox._ctrlTemplate||(MultiSelectListBox._ctrlTemplate=`<div class="${ControlClsNames.template} ${ListBoxClsNames.hostElement}"><input wj-part="filter" class="${InputFormElementsClsNames.formControl}" tabindex="-1"><div wj-part="select-all" class="${MultiSelectListBoxClsNames.header} ${MultiSelectListBoxClsNames.selectAll} ${ListBoxClsNames.listBoxItem}"><label><input type="checkbox" tabindex="-1"> <span></span></label></div><div wj-part="list-box"/></div>`);return MultiSelectListBox._ctrlTemplate}static set controlTemplate(t){MultiSelectListBox._ctrlTemplate=t}get itemsSource(){return this._lbx.itemsSource}set itemsSource(t){this._lbx.itemsSource=t}get collectionView(){return this._lbx.collectionView}get virtualizationThreshold(){return this._lbx.virtualizationThreshold}set virtualizationThreshold(t){this._lbx.virtualizationThreshold=t}get displayMemberPath(){return this._lbx.displayMemberPath}set displayMemberPath(t){this._lbx.displayMemberPath=t}get isContentHtml(){return this._lbx.isContentHtml}set isContentHtml(t){this._lbx.isContentHtml=t}get caseSensitiveSearch(){return this._lbx.caseSensitiveSearch}set caseSensitiveSearch(t){this._lbx.caseSensitiveSearch=t}get delay(){return this._delay}set delay(t){this._delay=asNumber(t,!1,!0)}get showGroups(){return this._lbx.showGroups}set showGroups(t){this._lbx.showGroups=t}get checkOnFilter(){return this._checkOnFilter}set checkOnFilter(t){if(t!=this.checkOnFilter){this._checkOnFilter=asBoolean(t);this.checkedItems=[]}}get selectedIndex(){return this._lbx.selectedIndex}set selectedIndex(t){this._lbx.selectedIndex=t}get listBox(){return this._lbx}get showFilterInput(){return""==this._filter.style.display}set showFilterInput(t){if(t!=this.showFilterInput){this._filter.style.display=asBoolean(t)?"":"none";if(!this.showFilterInput){this._filter.value="";this._applyFilter()}}}get filterInputPlaceholder(){return this._filterPlaceholder}set filterInputPlaceholder(t){if(t!=this._filterPlaceholder){this._filterPlaceholder=asString(t);this.refresh()}}get showSelectAllCheckbox(){return""==this._selectAll.style.display}set showSelectAllCheckbox(t){this._selectAll.style.display=asBoolean(t)?"":"none"}get selectAllLabel(){return this._selectAllLabel}set selectAllLabel(t){if(t!=this._selectAllLabel){this._selectAllLabel=asString(t);this.refresh()}}get checkedMemberPath(){let t=this.listBox.checkedMemberPath;return t!=MultiSelectListBox._DEF_CHECKED_PATH?t:null}set checkedMemberPath(t){t=asString(t);this.listBox.checkedMemberPath=t||MultiSelectListBox._DEF_CHECKED_PATH}get checkedItems(){return this.listBox.checkedItems}set checkedItems(t){this.listBox.checkedItems=asArray(t)}get ariaLabelledBy(){return this.hostElement.getAttribute("aria-labelledby")}set ariaLabelledBy(t){_setAriaLabelBy(this,this.hostElement,t,this._updateAriaLabel.bind(this))}_updateAriaLabel(){let t=culture.MultiSelectListBox;setAriaLabel(this._selectAll,t.selectAll);setAriaLabel(this._filter,t.filterPlaceholder);this.hostElement&&(this.ariaLabelledBy?setAriaLabel(this.hostElement,null):setAriaLabel(this.hostElement,this._ariaLabel))}onCheckedItemsChanged(t){this._updateCheckAllCheckbox();this.checkedItemsChanged.raise(this,t);t._items&&"object"==typeof t._items[0]&&(this.checkedMemberPath||MultiSelectListBox._DEF_CHECKED_PATH)in t._items[0]&&setTimeout(()=>{this._lbx._updateCheckedList(this.checkedItems)},0)}onSelectedIndexChanged(t){this.selectedIndexChanged.raise(this,t)}refresh(t=!0){super.refresh(t);if(this.hostElement){let t=culture.MultiSelectListBox;this._filter.placeholder=null!=this._filterPlaceholder?this._filterPlaceholder:t.filterPlaceholder;this._spSelectAll&&setText(this._spSelectAll,null!=this._selectAllLabel?this._selectAllLabel:t.selectAll);this._updateCheckAllCheckbox()}}dispose(){this.listBox.dispose();super.dispose()}_applyFilter(){let t=this._lbx,e=t.collectionView,s=this._filter.value,i=s?new RegExp(escapeRegExp(s),t.caseSensitiveSearch?"":"i"):null,n=this.displayMemberPath,l=n?new Binding(n):null,a=this.checkOnFilter?null:this.checkedItems;e.filter=t=>{if(null!=i){if(a&&a.indexOf(t)>-1)return!0;l&&(t=l.getValue(t));this.isContentHtml&&(t=toPlainText(t));return null!=t&&i.test(t.toString())}return!0};t.selectedIndex=Math.max(0,t.selectedIndex);this._checkOnFilter&&(this.checkedItems=i?e.items:[])}_updateCheckAllCheckbox(){let t=this._lbx.collectionView,e=this._cbSelectAll;if(hasItems(t)){let s=t.items.length,i=this.checkedItems.length;setChecked(e,i==s||0!=i&&null);e.disabled=!1}else{setChecked(e,!1);e.checked=!1;e.disabled=!0}}_setIsDisabled(t){super._setIsDisabled(t);this.hostElement.tabIndex=-1;this.isDisabled?this._lbx.tabOrder=-1:this._lbx.tabOrder=this._orgTabIndex}_setTabOrder(t){this._orgTabIndex=t;this._lbx.tabOrder=t}tryForceClearDelayAndFilter(){if(this._toSearch){let t=this._delay;this._filterText=this._filter.value;this._toSearch&&clearTimeout(this._toSearch);this._toSearch=setTimeout(()=>{this._toSearch=null;this._applyFilter()},0);this._delay=t}}onLostFocus(){this.tryForceClearDelayAndFilter();super.onLostFocus()}}MultiSelectListBox._DEF_CHECKED_PATH="$checked";MultiSelectListBox._ctrlTemplate="";_addCultureInfo("Calendar",{ariaLabels:{calendar:"Calendar",chooseDate:"Choose Date",chooseMonth:"Choose Month",monthView:"Month View",yearView:"Year View",selectYear:"Select Year",prvMo:"Previous Month",today:"Select Today",nxtMo:"Next Month",prvYr:"Previous Year",currMo:"Current Month",nxtYr:"Next Year"},buttons:{ok:"OK",cancel:"Cancel"}});export var DateSelectionMode;!function(t){t[t.None=0]="None";t[t.Day=1]="Day";t[t.Month=2]="Month";t[t.Range=3]="Range"}(DateSelectionMode||(DateSelectionMode={}));export var ShowMonthPicker;!function(t){t[t.None=0]="None";t[t.FirstMonth=1]="FirstMonth";t[t.LastMonth=2]="LastMonth";t[t.FirstAndLastMonths=3]="FirstAndLastMonths";t[t.AllMonths=4]="AllMonths";t[t.Outside=5]="Outside"}(ShowMonthPicker||(ShowMonthPicker={}));export var CalendarTabKeyAction;!function(t){t[t.None=0]="None";t[t.All=1]="All"}(CalendarTabKeyAction||(CalendarTabKeyAction={}));export class Calendar extends Control{constructor(t,e){super(t);this._yrPicker=!0;this._mtPicker=ShowMonthPicker.FirstMonth;this._wksBefore=0;this._wksAfter=0;this._rngMin=0;this._rngMax=0;this._min=null;this._max=null;this._readOnly=!1;this._handleWheel=!0;this._fdw=null;this._selMode=DateSelectionMode.Day;this._ariaLabel=culture.Calendar.ariaLabels.calendar;this._tmYrHidden=0;this._fmtYrMo="y";this._fmtYr="yyyy";this._fmtDayHdr="ddd";this._fmtDay="d ";this._fmtMonths="MMM";this._fmtDayTitle="dddd";this.valueChanged=new Event;this.rangeEndChanged=new Event;this.rangeChanged=new Event;this.displayMonthChanged=new Event;this.formatItem=new Event(()=>{this.invalidate()});this._updateCellFocus=(t,e)=>{toggleClass(t,CalendarClsNames.focused,e);setAttribute(t,"tabIndex",e?"0":"-1");e&&this.containsFocus()&&!this._isButtonFocused()&&t.focus()};this.cancelButtonClicked=new Event;this.OKButtonClicked=new Event;this._enterKeyDownToSetValue=new Event;this._value=this._rngEnd=DateTime.newDate();this._month=this._getMonth(this._value);this._cals=[this];this._createChildren();this._createYearPicker();let s=this.hostElement,i=this.addEventListener.bind(this);i(s,"keydown",this._keydown.bind(this));i(s,"click",this._click.bind(this));this._focusValue=DateTime.newDate();setAttribute(s,"role","application");setAttribute(this.hostElement,"aria-label",this._ariaLabel);this._keyActionTab=CalendarTabKeyAction.None;this._rptUp=new _ClickRepeater(this._btnPrv);this._rptDn=new _ClickRepeater(this._btnNxt);this.addEventListener(s,"wheel",t=>{if(this.handleWheel&&!t.defaultPrevented&&!this.isReadOnly&&this.containsFocus()){t.deltaY<0?this._btnPrv.click():this._btnNxt.click();t.preventDefault()}});this.initialize(e);this.refresh(!0)}static get controlTemplate(){Calendar._ctrlTemplate||(Calendar._ctrlTemplate=`<div class="${ControlClsNames.content} ${CalendarClsNames.calendarOuter}"><div wj-part="tbl-header" class=${CalendarClsNames.calendarHeader}><div wj-part="btn-month" class=${CalendarClsNames.monthSelect} role="button" aria-live="polite"><span wj-part="span-month"></span> <span class=${GlyphClsNames.down}></span></div><div class="${InputFormElementsClsNames.btnGroup}"><button wj-part="btn-prev" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.left}></span></button><button wj-part="btn-today" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.circle}></span></button><button wj-part="btn-next" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.right}></span></button></div></div><table wj-part="tbl-month" class=${CalendarClsNames.calendarMonth} role="grid"></table><table wj-part="tbl-year" class=${CalendarClsNames.calendarYear} role="grid"></table>`);return Calendar._ctrlTemplate}static set controlTemplate(t){Calendar._ctrlTemplate=t}get value(){return this._value}set value(t){if((!DateTime.sameDate(t,this._value)||!DateTime.sameTime(t,this._value))&&(!(this.showConfirmationButtons&&DateTime.sameDate(t,this.rangeEnd)&&DateTime.sameTime(t,this.rangeEnd))||this._isSpaceDownForSetValue)){this._clearingRangeEnd=!DateTime.equals(this._value,t);this.rangeEnd=null;this._clearingRangeEnd=!1;t=asDate(t,!0);t=this._clamp(t);if(this._valid(t)||null==t){this.ensureVisible(t||new Date);if(!DateTime.equals(this._value,t)){this._value=t;this.focusMode&&(this._focusValue=t);this.invalidate(!1);this.onValueChanged()}}if(!this.value){let t=this.min,e=this.max,s=this.displayMonth;e&&e<s?this.ensureVisible(e):t&&t>s&&this.ensureVisible(t)}}}get focusValue(){return this._focusValue}set focusValue(t){t=asDate(t,!0);t=this._clamp(t);if(this._valid(t)||null==t){this.ensureVisible(t||new Date);this._focusValue=t;this._getCalendars().forEach(e=>{e._focusValue=t});this.invalidate(!1)}}get rangeEnd(){return this._rngEnd}set rangeEnd(t){t=asDate(t,!0);if((t=this._clamp(t))&&this._value&&this._rngMode()){t<this._value&&(t=this._value);let e=this._rngMin,s=this._rngMax;if(e&&e>0||s&&s>0){let i=this._value,n=Math.ceil((t.getTime()-i.getTime())/864e5)+1;e&&e>0&&n<e&&(t=DateTime.addDays(i,e-1));s&&s>0&&n>s&&(t=DateTime.addDays(i,s-1))}}if((this._valid(t)||null==t)&&!DateTime.equals(this._rngEnd,t)){this._rngEnd=t;this.ensureVisible(t);this.invalidate(!1);this._clearingRangeEnd||this.onRangeEndChanged()}}get rangeMin(){return this._rngMin}set rangeMin(t){if((t=asNumber(t,!0,!0))!=this._rngMin){this._rngMin=t;this._syncProp(this,"rangeMin");this._rngMode()&&this._rngEnd&&(this.rangeEnd=this._rngEnd)}}get rangeMax(){return this._rngMax}set rangeMax(t){if((t=asNumber(t,!0,!0))!=this._rngMax){this._rngMax=t;this._syncProp(this,"rangeMax");this._rngMode()&&this._rngEnd&&(this.rangeEnd=this._rngEnd)}}get min(){return this._min}set min(t){if((t=asDate(t,!0))!=this.min){this._min=t;this._syncProp(this,"min");this.refresh();!this.value&&t&&t>this.displayMonth&&this.ensureVisible(t)}}get max(){return this._max}set max(t){if((t=asDate(t,!0))!=this.max){this._max=t;this._syncProp(this,"max");this.refresh();!this.value&&t&&t<this.displayMonth&&this.ensureVisible(t)}}get selectionMode(){return this._selMode}set selectionMode(t){let e=DateSelectionMode;if((t=asEnum(t,e))!=this._selMode){this._selMode=t;this._mthMode()&&(this.monthView=!1);t!=e.Range||this._rngEnd||(this._rngEnd=this._value);this.refresh();this._syncProp(this,"selectionMode")}}get isReadOnly(){return this._readOnly}set isReadOnly(t){this._readOnly=asBoolean(t);toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly);this._syncProp(this,"isReadOnly")}get handleWheel(){return this._handleWheel}set handleWheel(t){if(this._handleWheel!=t){this._handleWheel=asBoolean(t);this._syncProp(this,"handleWheel")}}get repeatButtons(){return!this._rptUp.disabled}set repeatButtons(t){this._rptUp.disabled=this._rptDn.disabled=!asBoolean(t);this._syncProp(this,"repeatButtons")}get showYearPicker(){return this._yrPicker}set showYearPicker(t){if(t!=this._yrPicker){this._yrPicker=asBoolean(t);this._syncProp(this,"showYearPicker")}}get showMonthPicker(){return this._mtPicker}set showMonthPicker(t){if(t!=this._mtPicker){let e=ShowMonthPicker;isBoolean(t)&&(t=t?e.FirstMonth:e.None);this._mtPicker=asEnum(t,e);toggleClass(this.hostElement,InputFormElementsClsNames.btnsOutside,this._getShowMonthPicker()==e.Outside);this.refresh();this._syncProp(this,"showMonthPicker")}}get firstDayOfWeek(){return this._fdw}set firstDayOfWeek(t){if(t!=this._fdw){if((t=asNumber(t,!0))&&(t>6||t<0))throw"firstDayOfWeek must be between 0 and 6 (Sunday to Saturday).";this._fdw=t;this.refresh();this._syncProp(this,"firstDayOfWeek")}}get displayMonth(){return this._month}set displayMonth(t){t=asDate(t);t=this._getMonth(t);let e=this._getDisplayMonthRange();e.to&&t>e.to&&(t=e.to);e.from&&t<e.from&&(t=e.from);if(!DateTime.equals(this.displayMonth,t)){this._month=t;this.invalidate(!0);this.onDisplayMonthChanged()}}get monthCount(){let t=this.hostElement;return t?t.querySelectorAll("."+CalendarClsNames.hostElement).length+1:0}set monthCount(t){let e=this.hostElement;if(t!=this.monthCount&&e){let s=e.querySelectorAll("."+CalendarClsNames.hostElement);t=asInt(t,!1);assert(t>0,"monthCount must be >= 1.");assert(1==t||!closest(e.parentElement,"."+CalendarClsNames.hostElement),"Only top-level calendars can set monthCount.");for(let t=0;t<s.length;t++){let e=s[t];removeChild(e);this._getCalendar(e).dispose()}this._cals=[this];for(let s=1;s<t;s++){let t=new Calendar(document.createElement("div"),{itemFormatter:this.itemFormatter,itemValidator:this.itemValidator,formatItem:(t,e)=>this.onFormatItem(e)});t._selMode=this._selMode;t._value=this._value;t._rngEnd=this._rngEnd;for(let e in this)if(!/^(_.*|constructor|displayMonth|monthCount|hostElement|rightToLeft|isUpdating|isTouching|keyActionTab)$/.test(e)){let s=this[e];isFunction(s)||s instanceof Event||(t[e]=s)}this._cals.push(t);e.appendChild(t.hostElement)}this.updateCalendarsTabindex();toggleClass(e,CalendarClsNames.calendarMultiMonth,t>1);this._syncProp(this,"displayMonth")}}get formatYearMonth(){return this._fmtYrMo}set formatYearMonth(t){if(t!=this._fmtYrMo){this._fmtYrMo=asString(t);this._syncProp(this,"formatYearMonth");this.invalidate()}}get formatDayHeaders(){return this._fmtDayHdr}set formatDayHeaders(t){if(t!=this._fmtDayHdr){this._fmtDayHdr=asString(t);this._syncProp(this,"formatDayHeaders");this.invalidate()}}get formatDays(){return this._fmtDay}set formatDays(t){if(t!=this._fmtDay){this._fmtDay=asString(t);this._syncProp(this,"formatDays");this.invalidate()}}get formatYear(){return this._fmtYr}set formatYear(t){if(t!=this._fmtYr){this._fmtYr=asString(t);this._syncProp(this,"formatYear");this.invalidate()}}get formatMonths(){return this._fmtMonths}set formatMonths(t){if(t!=this._fmtMonths){this._fmtMonths=asString(t);this._syncProp(this,"formatMonths");this.invalidate()}}get showHeader(){return"none"!=this._tbHdr.style.display}set showHeader(t){if(t!=this.showHeader){this._tbHdr.style.display=asBoolean(t)?"":"none";this._syncProp(this,"showHeader")}}get monthView(){return"none"!=this._tbMth.style.display}set monthView(t){if(t!=this.monthView){this._tbMth.style.display=t?"":"none";this._tbYr.style.display=t?"none":"";if(!t&&this.isThisMainCalendar()){const t=this.focusValue.getDate(),e=DateTime.clone(this.displayMonth);e.setDate(t);this.focusValue=e}this.refresh();let e=culture.Calendar.ariaLabels;setAriaLabel(this._btnPrv,t?e.prvMo:e.prvYr);setAriaLabel(this._btnTdy,t?e.today:e.currMo);setAriaLabel(this._btnNxt,t?e.nxtMo:e.nxtYr);setAriaLabel(this._btnMth,t?e.monthView:e.yearView);this._updateMonthButtonAria();this._syncProp(this,"monthView")}}get weeksBefore(){return this._wksBefore}set weeksBefore(t){if(t!=this._wksBefore){this._wksBefore=Math.floor(asNumber(t,!1,!0));this._syncProp(this,"weeksBefore");this.invalidate()}}get weeksAfter(){return this._wksAfter}set weeksAfter(t){if(t!=this._wksAfter){this._wksAfter=Math.floor(asNumber(t,!1,!0));this._syncProp(this,"weeksAfter");this.invalidate()}}get itemFormatter(){return this._itemFormatter}set itemFormatter(t){if(t!=this._itemFormatter){this._itemFormatter=asFunction(t);this._syncProp(this,"itemFormatter");this.invalidate()}}get itemValidator(){return this._itemValidator}set itemValidator(t){if(t!=this._itemValidator){this._itemValidator=asFunction(t);this._syncProp(this,"itemValidator");this.invalidate()}}hitTest(t){let e=t instanceof MouseEvent?t.target:t instanceof Element?t:null;assert(null!=e,"MouseEvent or Element expected");return e?e[Calendar._DATE_KEY]:null}ensureVisible(t){if(null!=t){let e=this._getCalendars(),s=e.indexOf(this),i=e[0],n=e[e.length-1];t<i.displayMonth||!this.monthView&&this.focusMode?this.displayMonth=DateTime.addMonths(this._getMonth(t),s):t>n.displayMonth&&(this.displayMonth=DateTime.addMonths(this._getMonth(t),s-e.length+1))}}onValueChanged(t){this.valueChanged.raise(this,t);this._syncProp(this,"value")}onRangeEndChanged(t){this.rangeEndChanged.raise(this,t);this._syncProp(this,"rangeEnd");this._value&&this._rngEnd&&this.onRangeChanged(t)}onRangeChanged(t){this.rangeChanged.raise(this,t)}onDisplayMonthChanged(t){this.displayMonthChanged.raise(this,t);this._syncProp(this,"displayMonth")}onFormatItem(t){this.formatItem.raise(this,t)}_containsFocusImpl(t){return super._containsFocusImpl(t)||this._lbYears._containsFocusImpl(t)}dispose(){this._rptUp.element=null;this._rptDn.element=null;this._lbYears.dispose();super.dispose()}refresh(t=!0){let e=this.hostElement,s=this.containsFocus();if(!e)return;super.refresh(t);t&&this._updateContent();this._updateSelection();let i=this._getDisplayMonthRange(),n=this.displayMonth,l=null==i.from||n>i.from,a=null==i.to||n<i.to;enable(this._btnPrv,l);enable(this._btnNxt,a);l&&a||this.containsFocus()||this.focus();let h=!0,r=DateTime.newDate();const o=this._min&&this._min>r,d=this._max&&this._max<r;(o||d)&&(h=!1);enable(this._btnTdy,h);if(s&&!this._isButtonFocused()){let t=(this.monthView?this._tbMth:this._tbYr).querySelector("td."+ControlStateClsNames.selected)||e;t&&!this.focusMode&&t.focus()}let u=this._getCalendars();u.length>1&&this.isThisMainCalendar()&&u.forEach((e,s)=>{s>0&&e.refresh(t)})}_getShowMonthPicker(){let t=ShowMonthPicker,e=this._getCalendars(),s=e.indexOf(this),i=this.showMonthPicker;switch(i){case t.FirstMonth:case t.Outside:return 0==s?i:0;case t.LastMonth:return s==e.length-1?i:0;case t.FirstAndLastMonths:return 0==s||s==e.length-1?i:0;case t.AllMonths:return i}return 0}_getDisplayMonthRange(){let t={from:null,to:null};if(this.min||this.max){let e=this._getCalendars(),s=e.indexOf(this),i=this._mthMode()?DateTime.addYears:DateTime.addMonths;this.min&&(t.from=i(this._getMonth(this.min),s));this.max&&(t.to=i(this._getMonth(this.max),s-e.length+1))}return t}_getCalendar(t){return Control.getControl(t)}_getCalendars(){let t=closest(this.hostElement,"."+CalendarClsNames.calendarMultiMonth);return(t?this._getCalendar(t):this)._cals}_syncProp(t,e){if(!this._syncing){let s=this._getCalendars();if(s&&s.length>1){let i=t[e],n=this._mthMode()?DateTime.addYears:DateTime.addMonths;"displayMonth"==e&&(i=n(i,-s.indexOf(t)));s[0].deferUpdate(()=>{this._syncing=!0;s.forEach((s,l)=>{if(s!=t){let t=s.displayMonth;s[e]="displayMonth"==e?n(i,l):i;if("value"==e){s.displayMonth=t;this._rngMode()&&(s.rangeEnd=null)}}});this._syncing=!1})}}}_updateContent(){let t=this.displayMonth,e=Globalize.format,s=DateTime,i=this._getShowMonthPicker();setText(this._spMth,e(t,this._fmtYrMo));let n=this._btnMth.querySelector("."+GlyphClsNames.down);n&&(n.style.display=this._mthMode()||!i?"none":"");let l=closest(this._btnTdy,"."+InputFormElementsClsNames.btnGroup);l&&(l.style.display=i?"":"none");let a=null!=this._fdw?this._fdw:Globalize.getFirstDayOfWeek(),h=s.addDays(t,-(t.getDay()-a+7)%7),r=s.monthLast(t),o=this._tbMth.querySelectorAll("th");this._updateMonthButtonAria();for(let t=0;t<7&&t<o.length;t++){let i=s.addDays(h,t);setText(o[t],e(i,this._fmtDayHdr));setAttribute(o[t],"tabIndex","-1");setAttribute(o[t],"abbr",e(i,this._fmtDayTitle))}let d=!1;this._dateViewContainsFocus()&&(d=!0);let u=this._tbMth.querySelectorAll("tr");for(let t=1;t<u.length;t++)removeChild(u[t]);d&&this.focus();let c=s.addDays(h,-7*this._wksBefore);for(let t=0;t<this._wksBefore;t++)c=this._addWeek(c,CalendarClsNames.weekBefore);for(;c<=r;)c=this._addWeek(c);for(let t=0;t<this._wksAfter;t++)c=this._addWeek(c,CalendarClsNames.weekAfter);o=this._tbYr.querySelectorAll("td");let _=this._tbYr.querySelectorAll("th");_.length&&setText(_[0],e(t,this._fmtYr));for(let i=0;i<o.length;i++){c=s.newDate(t.getFullYear(),i,1);let n=o[i],l=!this._monthInValidRange(c);n[Calendar._DATE_KEY]=c;let a=Globalize.format(c,"MMMM yyyy");setText(n,e(c,this._fmtMonths));toggleClass(n,ControlStateClsNames.disabled,l);setAriaLabel(n,a);setAttribute(n,"tabIndex","-1");setAttribute(n,"abbr",a)}this._confirmationButtonContainer&&(this._confirmationButtonContainer.style.display=this.showConfirmationButtons?"":"none");this._updateButtonTabIndex()}_updateSelection(){let t=Calendar._DATE_KEY,e=DateTime,s=this._tbMth.querySelectorAll("td");for(let i=0;i<s.length;i++){let n=this.rangeEnd;this._rngMode()||(n=null);let l=s[i],a=l[t],h=this.value,r=this._selMode&&null!=h&&e.sameDate(a,h),o=this._selMode&&null!=h&&e.sameDate(a,n),d=this._selMode&&null!=h&&a>h&&null!=n&&a<=n;toggleClass(l,ControlStateClsNames.selected,r);toggleClass(l,ControlStateClsNames.multiSelected,d);toggleClass(l,ControlStateClsNames.lastSelected,o);setAttribute(l,"aria-selected",!!r||null);this._customizeCell(i,a,l)}s=this._tbYr.querySelectorAll("td");for(let e=0;e<s.length;e++){let i=s[e],n=i[t],l=this._sameMonth(n,this.value);toggleClass(i,ControlStateClsNames.selected,l);setAttribute(i,"aria-selected",!!l||null)}this.focusMode&&!0!==this.isDisabled&&-1!==this.tabOrder&&this._updateFocusInAccessibilityMode()}_updateFocusInAccessibilityMode(){let t=Calendar._DATE_KEY,e=DateTime;const s=this._getCalendars();for(let i=0;i<s.length;i++){let n=s[i]._tbMth.querySelectorAll("td");for(let s=0;s<n.length;s++){let i=n[s],l=i[t],a=this._selMode&&null!=this.focusValue&&e.sameDate(l,this.focusValue)&&!hasClass(i,CalendarClsNames.dayOtherMonth);this._updateCellFocus(i,a)}}let i=s[0]._tbYr.querySelectorAll("td");for(let e=0;e<i.length;e++){let s=i[e],n=s[t],l=null!=this.focusValue&&this._sameMonth(n,this.focusValue);this._updateCellFocus(s,l)}}_addWeek(t,e){let s=this._createElement("tr",this._tbMth,e),i=DateTime;for(let e=0;e<7;e++){let n=this._createElement("td",s),l=i.addDays(t,e);n[Calendar._DATE_KEY]=l;setText(n,Globalize.format(l,this._fmtDay));setAriaLabel(n,Globalize.format(l,"D"));let a=!this._valid(l),h=l.getDay(),r=l.getMonth()!=this.displayMonth.getMonth();toggleClass(n,CalendarClsNames.dayToday,i.sameDate(l,i.newDate()));toggleClass(n,CalendarClsNames.dayWeekend,0==h||6==h);toggleClass(n,CalendarClsNames.dayOtherMonth,r);toggleClass(n,ControlStateClsNames.invalid,a||!this._inValidRange(l));setAttribute(n,"aria-disabled",a||!this._inValidRange(l))}return i.addDays(t,7)}_customizeCell(t,e,s){isFunction(this.itemFormatter)&&this.itemFormatter(e,s);if(this.formatItem.hasHandlers){let i=new FormatItemEventArgs(t,e,s);this.onFormatItem(i)}}_canChangeValue(){return!this._readOnly&&this._selMode!=DateSelectionMode.None}_valid(t){return!(!isDate(t)||!DateTime.sameDate(t,this._clamp(t)))&&(!isFunction(this.itemValidator)||this.itemValidator(t))}_inValidRange(t){let e=DateTime.fromDateTime;return!(this.min&&t<e(this.min,t))&&!(this.max&&t>e(this.max,t))}_monthInValidRange(t){if(this.min||this.max){let e=t.getFullYear(),s=t.getMonth(),i=DateTime,n=i.newDate(e,s,1),l=i.newDate(e,s+1,0);if(this.min&&this.min>l)return!1;if(this.max&&this.max<n)return!1}return!0}_sameMonth(t,e){return isDate(t)&&isDate(e)&&t.getMonth()==e.getMonth()&&t.getFullYear()==e.getFullYear()}_getValidDate(t,e){if(isDate(t)){let s=t.getFullYear(),i=t.getMonth()+(e?0:1),n=e?1:0,l=DateTime,a=l.newDate(s,i,n),h=e?1:-1;for(let t=0;t<31;t++){if(this._valid(a))return a;a=l.addDays(a,h)}}return null}_clamp(t){if(t){let e=DateTime.fromDateTime;if(this.min){let s=e(this.min,t);t<s&&(t=s)}if(this.max){let s=e(this.max,t);t>s&&(t=s)}}return t}_createChildren(){let t=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${CalendarClsNames.hostElement}`,t,{_tbHdr:"tbl-header",_btnMth:"btn-month",_spMth:"span-month",_btnPrv:"btn-prev",_btnTdy:"btn-today",_btnNxt:"btn-next",_tbMth:"tbl-month",_tbYr:"tbl-year"});this._tbYr.style.display="none";let e=culture.Calendar.ariaLabels;setAriaLabel(this._tbMth,e.chooseDate);setAriaLabel(this._tbYr,e.chooseMonth);setAriaLabel(this._btnPrv,e.calendar);setAriaLabel(this._btnMth,e.monthView);setAriaLabel(this._btnPrv,e.prvMo);setAriaLabel(this._btnTdy,e.today);setAriaLabel(this._btnNxt,e.nxtMo);let s=this._createElement("tr",this._tbMth,CalendarClsNames.header);for(let t=0;t<7;t++){this._createElement("th",s).setAttribute("scope","col")}s=this._createElement("tr",this._tbYr,CalendarClsNames.header);this._showYearListBoxButton=this._createElement("th",s);this._showYearListBoxButton.setAttribute("colspan","4");this._showYearListBoxButton.setAttribute("scope","col");setAriaLabel(this._showYearListBoxButton,e.selectYear);toggleClass(this._showYearListBoxButton,CalendarClsNames.selectedYear);this._showYearListBoxButton.setAttribute("role","button");this._showYearListBoxButton.setAttribute("tabIndex","-1");for(let t=0;t<3;t++){s=this._createElement("tr",this._tbYr);for(let t=0;t<4;t++)this._createElement("td",s)}}_createYearPicker(){let t=this.hostElement,e=this._createElement("div",null,`${DropDownClsNames.dropDownPanel} ${CalendarClsNames.yearPicker}`);e.tabIndex=this._orgTabIndex;this._lbYears=new ListBox(e,{lostFocus:t=>{hidePopup(e);this._tmYrHidden=Date.now();this.removeEventListener(window,"touchstart");if(t.selectedIndex>-1){let e=DateTime.clone(this.displayMonth);e.setFullYear(t.selectedIndex+t.itemsSource[0]);this.displayMonth=e;this.focusMode&&(this.focusValue=e)}this.keyActionTab===CalendarTabKeyAction.All&&this._showYearListBoxButton.focus()}});setAriaLabel(this._lbYears.hostElement,culture.Calendar.ariaLabels.selectYear);this.addEventListener(e,"keydown",e=>{switch(e.keyCode){case Key.Enter:t.focus();break;case Key.Space:t.focus();e.preventDefault();break;case Key.Escape:this._lbYears.selectedIndex=-1;t.focus()}e.defaultPrevented&&e.stopPropagation()});this.addEventListener(e,"click",e=>{t.focus()})}_createElement(t,e,s){let i=document.createElement(t);s&&addClass(i,s);e&&e.appendChild(i);return i}_click(t){if(!t.defaultPrevented&&0==t.button){let e=!1,s=t.target;if(contains(this._btnMth,s)&&!this._mthMode()&&this._getShowMonthPicker()){this.monthView=!this.monthView;e=!0}else if(contains(this._btnPrv,s)){this._navigate(-1);if(this.focusMode){const t=DateTime.addMonths(this.focusValue,-1);this.focusValue=t}e=!0}else if(contains(this._btnNxt,s)){this._navigate(1);if(this.focusMode){const t=DateTime.addMonths(this.focusValue,1);this.focusValue=t}e=!0}else if(contains(this._btnTdy,s)){this._navigate(0);this.focusMode&&(this.focusValue=this.value);e=!0}if(s&&!e&&this._yrPicker&&contains(this._tbYr,s)&&closest(s,"."+CalendarClsNames.header)){this._showYearPickerAction(t);return}if(s&&!e){let t=closest(s,"td");if(t){let s=this.hitTest(t),i=DateTime.fromDateTime;if(this.monthView){if(s&&this._canChangeValue()){let t=i(s,this._value);this._inValidRange(t)&&this._valid(t)&&(this._rngMode()&&this.value&&!this.rangeEnd&&t>=this.value?this.rangeEnd=t:this.value=t);e=!0}}else if(s){this.displayMonth=s;if(this._mthMode()){if(this._canChangeValue()){let t=i(this.displayMonth,this.value);this._inValidRange(t)&&(this.value=t)}}else this.monthView=!0;e=!0}}}if(e){t.preventDefault();this.focusMode||0===t.detail||this.focus()}}}_keydown(t){this._isSpaceDownForSetValue=!1;if(t.defaultPrevented)return;if(t.altKey)switch(t.keyCode){case Key.Up:case Key.Down:return;case Key.End:this._navigate(0);t.preventDefault();return}let e=t.target;if(("Enter"===t.key||"Space"===t.code)&&e&&this.keyActionTab===CalendarTabKeyAction.All){if(contains(this._btnMth,e)&&!this._mthMode()&&this._getShowMonthPicker()){this.monthView=!this.monthView;"Space"===t.code&&t.preventDefault();return}if(this._yrPicker&&contains(this._tbYr,e)&&closest(e,"."+CalendarClsNames.header)){this._showYearPickerAction(t);return}}if(this.focusMode){if(("Enter"===t.key||"Space"===t.code)&&e.classList.contains(CalendarClsNames.focused)){let s=closest(e,"td");if(s){let e=this.hitTest(s);this._isSpaceDownForSetValue="Space"===t.code;this.setFocusModeValue(e,t)}"Space"===t.code&&t.preventDefault();return}if(!contains(this._tbMth,t.target)&&(!contains(this._tbYr,t.target)||contains(this._tbYr.firstElementChild,t.target)))return;if("Tab"===t.key&&this.monthView){let e=this._getCalendars();if(this!==e[t.shiftKey?0:e.length-1]){const e=DateTime.addMonths(this.focusValue,t.shiftKey?-1:1);this.focusValue=e;t.preventDefault()}}}if(t.ctrlKey||t.metaKey||t.shiftKey&&!this._rngMode())return;let s=this._getKeyCode(t),i=0,n=0,l=!0;if(this.monthView)switch(s){case Key.Left:i=-1;break;case Key.Right:i=1;break;case Key.Up:i=-7;break;case Key.Down:i=7;break;case Key.PageDown:n=t.altKey?12:1;break;case Key.PageUp:n=t.altKey?-12:-1;break;case Key.Home:case Key.End:if(this._canChangeValue()&&!t.shiftKey){let t=this.value||this.displayMonth,e=this._getValidDate(t,s==Key.Home);if(e){this.value=DateTime.fromDateTime(e,this.value);this._rngEnd=null}}break;default:l=!1}else switch(s){case Key.Left:n=-1;break;case Key.Right:n=1;break;case Key.Up:n=-4;break;case Key.Down:n=4;break;case Key.PageDown:n=t.altKey?120:12;break;case Key.PageUp:n=t.altKey?-120:-12;break;case Key.Home:n=this.value?-this.value.getMonth():0;break;case Key.End:n=this.value?11-this.value.getMonth():0;break;case Key.Enter:this._mthMode()?l=!1:this.monthView=!0;break;default:l=!1}if(this._canChangeValue()&&(i||n)){let e=t.shiftKey&&null!=this.rangeEnd?this.rangeEnd:this.focusMode?this.focusValue:this.value,s=DateTime;if(e){e=s.addDays(e,i);e=s.addMonths(e,n)}else e=this._getValidDate(new Date,!0);if(n&&!this._valid(e)){let t=e.getMonth();for(let i=1;i<31&&!this._valid(e);i++){let n=s.addDays(e,+i),l=s.addDays(e,-i);this._valid(n)&&n.getMonth()==t?e=n:this._valid(l)&&l.getMonth()==t&&(e=l)}}for(let t=0;t<31&&!this._valid(e);t++)e=s.addDays(e,i>0||n>0?1:-1);t.shiftKey&&this._rngMode()&&e>this.value?this.rangeEnd=e:this.focusMode?this.focusValue=e:this.value=e}l&&t.preventDefault()}_getMonth(t){let e=DateTime;t=t||e.newDate();return e.newDate(t.getFullYear(),t.getMonth(),1)}_mthMode(){return this.selectionMode==DateSelectionMode.Month}_rngMode(){return this.selectionMode==DateSelectionMode.Range}_navigate(t){let e=this.monthView,s=this.displayMonth,i=DateTime;switch(t){case 0:let t=i.newDate();this._canChangeValue()&&(this.value=e?i.fromDateTime(t,this.value):this._getMonth(t));s=this._getMonth(t);break;case 1:s=i.addMonths(s,e?1:12);break;case-1:s=i.addMonths(s,e?-1:-12)}this.displayMonth=s}_setTabOrder(t){super._setTabOrder(t);this._lbYears.tabOrder=this._orgTabIndex;this._getCalendars().forEach(e=>{e.tabOrder!=t&&(e.tabOrder=t)});this.updateCalendarsTabindex()}_showYearPickerAction(t){let e=t.target;if(Date.now()-this._tmYrHidden<600){t.preventDefault();return}for(var s=this.displayMonth.getFullYear(),i=this.min?this.min.getFullYear():s-100,n=this.max?this.max.getFullYear():s+100,l=[],a=i;a<=n;a++)l.push(a);let h=this._lbYears,r=h.hostElement,o=closest(e,"."+CalendarClsNames.header),d=this.hostElement,u=closest(d,"."+InputDateClsNames.inputDateDropDown)||d;h.itemsSource=l;h.selectedIndex=s-l[0];setAttribute(r,"dir",this.rightToLeft?"rtl":null);setCss(r,{minWidth:"",width:o.offsetWidth});showPopup(r,o,!1,!1,u);requestAnimationFrame(()=>{h.showSelection(!0)});this.addEventListener(window,"touchstart",t=>{if(!contains(r,t.target)){hidePopup(r);this._tmYrHidden=Date.now();this.removeEventListener(window,"touchstart")}});t.preventDefault()}get focusMode(){return this._focusMode}set focusMode(t){this._focusMode=t;this._getCalendars().forEach(e=>{e.focusMode!==t&&(e.focusMode=t)});this.updateCalendarsTabindex();this.invalidate()}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=t;this._updateButtonTabIndex()}_isButtonFocused(){let t=getActiveElement();if(!t)return!1;let e=t.getAttribute("role"),s=t.type;return e&&"button"===e.toLowerCase()||s&&"button"===s.toLowerCase()}_isSameMonth(t,e){return t.getMonth()===e.getMonth()}_dateViewContainsFocus(){let t=this._tbYr.querySelectorAll("td"),e=Array.from(t).find(t=>t===getActiveElement());return this._tbMth.contains(getActiveElement())||void 0!==e}_updateMonthButtonAria(){let t=culture.Calendar.ariaLabels,e=this.monthView?t.monthView:t.yearView;setAriaLabel(this._btnMth,e+", "+Globalize.format(this.displayMonth,this._fmtYrMo))}_isDayValid(t){return this._valid(t)&&this._inValidRange(t)}cancelButtonClick(t){this.cancelButtonClicked.raise(this,t)}oneCancelButtonClick(t){this.cancelButtonClick(t)}OKButtonClick(t){this.OKButtonClicked.raise(this,t)}onOkButtonClick(t){this.OKButtonClick(t);this.setFocusModeValue(this.focusValue)}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){if(this.ariaLabel!==t&&this.hostElement){this._ariaLabel=t;setAttribute(this.hostElement,"aria-label",t)}}_updateButtonTabIndex(){const t=this.tabOrder.toString();if(this.keyActionTab===CalendarTabKeyAction.All&&!0!==this.isDisabled){setAttribute(this._btnMth,"tabindex",t);setAttribute(this._btnPrv,"tabindex",t);setAttribute(this._btnTdy,"tabindex",t);setAttribute(this._btnNxt,"tabindex",t);setAttribute(this._showYearListBoxButton,"tabindex",t)}else{setAttribute(this._btnMth,"tabindex","-1");setAttribute(this._btnPrv,"tabindex","-1");setAttribute(this._btnTdy,"tabindex","-1");setAttribute(this._btnNxt,"tabindex","-1");setAttribute(this._showYearListBoxButton,"tabindex","-1")}setAttribute(this._btnOK,"tabindex",t);setAttribute(this._btnCancel,"tabindex",t)}_onEnterKeyDownToSetValue(t){this._enterKeyDownToSetValue.raise(this,t)}get showConfirmationButtons(){return this._showConfirmationButtons}set showConfirmationButtons(t){this._showConfirmationButtons=t;this._getCalendars().forEach(e=>{e._showConfirmationButtons=t})}_setIsDisabled(t){super._setIsDisabled(t);this._updateButtonTabIndex()}updateCalendarsTabindex(){const t=this.focusMode||-1===this.tabOrder?-1:0;this._getCalendarsHostElements().forEach(e=>{e.tabIndex=t})}setFocusModeValue(t,e){const s=DateTime.fromDateTime;if(this.monthView){if(t&&this._canChangeValue()){let i=s(t,this._value);if(this._inValidRange(i)&&this._valid(i))if(this._rngMode()&&this.value&&!this.rangeEnd&&i>=this.value)this.rangeEnd=i;else{e&&this._enterKeyDownToSetValue.raise(this,e);this.value=i}}}else if(t){this.displayMonth=t;if(this._mthMode()){if(this._canChangeValue()){let t=s(this.displayMonth,this.value);this._inValidRange(t)&&(this.value=t)}}else this.monthView=!0}}_getCalendarsHostElements(){return this._getCalendars().filter((t,e)=>e>0).map(t=>t.hostElement)}updateConfirmationButtons(t){if(!this._confirmationButtonContainer){const e=`<div class="${CalendarClsNames.confirmationButtonContainer}"></div>`;this._confirmationButtonContainer=createElement(e);this._btnOK=createElement(`<button wj-part="btn-ok" class="${InputFormElementsClsNames.btn} ${CalendarClsNames.button}"></button>`);this._btnCancel=createElement(`<button wj-part="btn-cancel" class="${InputFormElementsClsNames.btn} ${CalendarClsNames.button}"></button>`);let s=culture.Calendar.buttons;setText(this._btnOK,s.ok);setText(this._btnCancel,s.cancel);let i=this.addEventListener.bind(this);i(this._btnCancel,"click",this.oneCancelButtonClick.bind(this));i(this._btnOK,"click",this.onOkButtonClick.bind(this));this._confirmationButtonContainer.appendChild(this._btnOK);this._confirmationButtonContainer.appendChild(this._btnCancel);t.appendChild(this._confirmationButtonContainer)}}setFocusValueToFirstOrLastCalendar(t){const e=this._getCalendars();let s;s=this.monthView?t?e[0].displayMonth:e[e.length-1].displayMonth:e[0].displayMonth;const i=this.focusValue.getDate(),n=new Date(s.getFullYear(),s.getMonth()+1,0).getDate(),l=new Date(s.getFullYear(),s.getMonth(),Math.min(i,n));this.focusValue=l}isCalendarDateCell(t){return!isNullOrUndefined(t[Calendar._DATE_KEY])&&"td"===t.tagName.toLowerCase()}isThisMainCalendar(){return this==this._getCalendars()[0]}}Calendar._DATE_KEY="$WJ-DATE";Calendar._ctrlTemplate="";export function softTouch(){return _getModule("wijmo.touch")}export function getDragDropTouch(){var t=softTouch();return t&&t.DragDropTouch&&t.DragDropTouch.getInstance?t.DragDropTouch.getInstance():null}_addCultureInfo("DropDown",{ariaLabels:{tgl:"Toggle Dropdown"}});export var ClickAction;!function(t){t[t.Select=0]="Select";t[t.Open=1]="Open";t[t.Toggle=2]="Toggle"}(ClickAction||(ClickAction={}));export var KeyAction;!function(t){t[t.ChangeSelectionOnly=0]="ChangeSelectionOnly";t[t.OpenDropdown=1]="OpenDropdown"}(KeyAction||(KeyAction={}));export var TabKeyAction;!function(t){t[t.CloseAndKeepFocus=0]="CloseAndKeepFocus";t[t.CloseAndMoveFocus=1]="CloseAndMoveFocus"}(TabKeyAction||(TabKeyAction={}));export class DropDown extends Control{constructor(t,e){super(t);this._clickAction=ClickAction.Select;this._showBtn=!0;this._autoExpand=!0;this._animate=!1;this._internalSettingText=!1;this._oldText="";this._keyActionDownArrow=KeyAction.ChangeSelectionOnly;this._keyActionUpArrow=KeyAction.ChangeSelectionOnly;this._keyActionTab=TabKeyAction.CloseAndMoveFocus;this._touchMove=!1;this._isDropdownOpened=!1;this.textChanged=new Event;this.isDroppedDownChanging=new Event;this.isDroppedDownChanged=new Event;let s,i=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${DropDownClsNames.hostElement}`,i,{_tbx:"input",_btn:"btn",_dropDown:"dropdown"},"input");this.hostElement&&this.hostElement.id&&(s=this.hostElement.id);s&&this._dropDown&&this._dropDown.setAttribute("dropdown-id",s);this._dropDown.style.display="none";let n=culture.DropDown.ariaLabels;setAriaLabel(this._btn.querySelector("button"),n.tgl);let l=this._elRef=this._tbx;disableAutoComplete(l);this._createDropDown();this._updateTbxAriaHaspopup();this._updateBtn();this._updateTbx();let a=this.hostElement;addClass(a,ControlStateClsNames.collapsed);this.addEventListener(window,"resize",()=>{this.isDroppedDown&&this.invalidate()});let h=this.dropDown,r=this.addEventListener.bind(this),o=this._updateFocusState.bind(this);r(h,"blur",o,!0);r(h,"focus",o);let d=this._keydown.bind(this);r(a,"keydown",d);r(h,"keydown",d);let u=this._keypress.bind(this);r(a,"keypress",u,!0);r(h,"keypress",u,!0);let c=this._input.bind(this);r(l,"input",c);r(l,"beforeinput",(function(t){"historyUndo"!==t.inputType&&"historyRedo"!==t.inputType||t.preventDefault()}));r(l,"blur",()=>{this._commitText(!0,!1)},!0);r(l,"click",()=>{this._autoExpand&&this._expandSelection()});r(l,"touchstart",()=>{this.isTouching&&"none"===l.getAttribute("inputmode")&&l.removeAttribute("inputmode")});r(l,"mousedown",t=>{if(this._isTouchMoved())t.preventDefault();else switch(this._clickAction){case ClickAction.Open:if(!this.isDroppedDown){t.preventDefault();this.focus();this.isDroppedDown=!0}break;case ClickAction.Toggle:t.preventDefault();this.focus();this.isDroppedDown=!this.isDroppedDown}});r(this._btn,"mousedown",t=>{this._isTouchMoved()||this._btnclick(t)});removeChild(h);isIE()&&this._elRef==this._tbx&&r(a,"mouseup",t=>{if(!t.defaultPrevented&&0==t.button&&hasClass(t.target,InputFormElementsClsNames.btn)){let e=getActiveElement();e&&e!=t.target&&setTimeout(()=>{e.focus()})}});isIE9()&&r(l,"keyup",()=>{this._setText(this.text,!1)});r(h,"click",this._dropDownClick.bind(this))}static get controlTemplate(){DropDown._ctrlTemplate||(DropDown._ctrlTemplate=`<div class="${ControlClsNames.template}"><div class="${InputClsNames.input}"><div class="${InputClsNames.inputGroup} ${InputClsNames.inputBtnVisible}"><input wj-part="input" type="text" class="${InputFormElementsClsNames.formControl}"><span wj-part="btn" class="${InputClsNames.inputGroupBtn}"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.down}></span></button></span></div></div><div wj-part="dropdown" class="${ControlClsNames.content} ${DropDownClsNames.dropDownPanel}"></div></div>`);return DropDown._ctrlTemplate}static set controlTemplate(t){DropDown._ctrlTemplate=t}_isTouchMoved(){let t=getDragDropTouch();return t&&t.isDragging}get text(){return this._tbx.value}set text(t){if(t!=this.text){this._setText(t,!0);this._commitText()}}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){this._tbx.type=asString(t)}get isReadOnly(){return this._tbx.readOnly}set isReadOnly(t){this._tbx.readOnly=asBoolean(t);toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly);this.isReadOnly&&this._toggleDropDown(!1)}get isRequired(){return this._tbx.required}set isRequired(t){this._tbx.required=asBoolean("boolean"==typeof t?t:this.isRequired)}get placeholder(){return this._tbx.placeholder}set placeholder(t){this._tbx.placeholder=t}get clickAction(){return this._clickAction}set clickAction(t){this._clickAction=asEnum(t,ClickAction)}get isDroppedDown(){let t=this._dropDown;return t&&"none"!=t.style.display}set isDroppedDown(t){let e=this.hostElement,s=this._dropDown,i=this.containsFocus(),n=new Set(["InputDateTime","WjInputDateTime"]);if(!e||!s)return;let l=!this.isReadOnly;this.isTouching&&(l=!0);t=asBoolean(t)&&!this.isDisabled&&l&&e.offsetWidth>0;this.isDroppedDown&&!t&&this.isDisabled&&(t=this.isDroppedDown);if(t||"INPUT"!=getActiveElement().tagName||this.inputElement===getActiveElement()||!this._isInvalidInputCancelled){if(t!=this.isDroppedDown&&(n.has(this.constructor.name)||!this._isInvalidInputCancelled||!this.isDroppedDown&&this._isInvalidInputCancelled)&&this.onIsDroppedDownChanging(new CancelEventArgs)){this._toggleDropDown(t);i&&(this.isTouching&&this.showDropDownButton?e.focus():this.selectAll());this._updateFocusState();this._updateBtn();this._updateTbx();toggleClass(e,ControlStateClsNames.collapsed,!this.isDroppedDown);this.onIsDroppedDownChanged()}}else{this._isDropdownOpened=this.isDroppedDown;this._toggleDropDown(t)}}_toggleDropDown(t){let e=this.hostElement,s=this._dropDown;if(t){this._minWidthDropdown=s.style.minWidth;s.style.display="";this._updateDropDown();this.addEventListener(window,"touchstart",t=>{let s=Control._touching;for(let s=t.target;s;){if(s==e)return;s=s[Control._OWNR_KEY]||s.parentNode}Control._touching=!0;this.isDroppedDown=!1;Control._touching=s})}else{this.removeEventListener(window,"touchstart");hidePopup(s);s.style.minWidth=this._minWidthDropdown}}get dropDown(){return this._dropDown}get dropDownCssClass(){return this._cssClass}set dropDownCssClass(t){if(t!=this._cssClass){removeClass(this._dropDown,this._cssClass);this._cssClass=asString(t);addClass(this._dropDown,this._cssClass)}}get showDropDownButton(){return this._showBtn}set showDropDownButton(t){this._showBtn=asBoolean(t);this._updateBtn()}get autoExpandSelection(){return this._autoExpand}set autoExpandSelection(t){this._autoExpand=asBoolean(t)}get isAnimated(){return this._animate}set isAnimated(t){this._animate=asBoolean(t)}get keyActionDownArrow(){return this._keyActionDownArrow}set keyActionDownArrow(t){this._keyActionDownArrow=asEnum(t,KeyAction)}get keyActionUpArrow(){return this._keyActionUpArrow}set keyActionUpArrow(t){this._keyActionUpArrow=asEnum(t,KeyAction)}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=asEnum(t,TabKeyAction)}selectAll(){let t=this._tbx;this._elRef==t&&setSelectionRange(t,0,this.text.length);this.containsFocus()||this.focus()}onTextChanged(t){this.textChanged.raise(this,t);this._updateState()}onIsDroppedDownChanging(t){this.isDroppedDownChanging.raise(this,t);return!t.cancel}onIsDroppedDownChanged(t){this.isDroppedDownChanged.raise(this,t)}onGotFocus(t){this.isTouching||contains(this._dropDown,getActiveElement())||this.selectAll();super.onGotFocus(t)}onLostFocus(t){this._commitText();this.isDroppedDown=!1;super.onLostFocus(t)}_containsFocusImpl(t){return super._containsFocusImpl(t)||this.isDroppedDown&&contains(this._dropDown,t)}dispose(){this.isDroppedDown=!1;let t=this._dropDown;if(t){this._dropDown=null;removeChild(t);let e=Control.getControl(t);e&&e.dispose()}super.dispose()}refresh(t=!0){super.refresh(t);let e=this.hostElement;if(e&&e.offsetHeight&&this.isDroppedDown){let t=getActiveElement();this.isAnimated&&""!=this._dropDown.style.opacity||showPopup(this._dropDown,e,!1,!1,null==this.dropDownCssClass);t instanceof HTMLElement&&t!=getActiveElement()&&t.focus()}}_handleResize(){this.isDroppedDown&&this.refresh()}_dropDownClick(t){t.stopPropagation()}_expandSelection(){let t=this._tbx,e=t.value,s=t.selectionStart,i=t.selectionEnd;if(e&&s==i){let n=this._getCharType(e,s);if(n>-1){for(;i<e.length&&this._getCharType(e,i)==n;i++);for(;s>0&&this._getCharType(e,s-1)==n;s--);s!=i&&setSelectionRange(t,s,i)}}}_getCharType(t,e){let s=t[e];return s>="0"&&s<="9"?0:s>="a"&&s<="z"||s>="A"&&s<="Z"?1:-1}_keydown(t){if(!t.defaultPrevented&&!this._isHiddenEditor()){switch(t.keyCode){case Key.Escape:case Key.Enter:if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();t.preventDefault()}break;case Key.F4:this.toggleDropDown(t);break;case Key.Up:this.handleUpArrowKey(t);break;case Key.Down:this.handleDownArrowKey(t)}if(!t.defaultPrevented&&t.keyCode==Key.Escape&&isIE()){let e=this._tbx;if(t.target==e){let t=e.value;e.value=t+" ";e.value=t}}}}toggleDropDown(t){if(this.isHostVisible()){this.isDroppedDown=!this.isDroppedDown;t.preventDefault()}}handleUpArrowKey(t){t.altKey?this.toggleDropDown(t):this.keyActionUpArrow!==KeyAction.OpenDropdown||this.isDroppedDown||this.openDropDown(t)}handleDownArrowKey(t){if(t.altKey)this.toggleDropDown(t);else if(this.keyActionDownArrow===KeyAction.OpenDropdown&&!this.isDroppedDown){this.openDropDown(t);this._afterOpenDropdownByDownArrow()}}_afterOpenDropdownByDownArrow(){}openDropDown(t){if(this.isHostVisible()){this.isDroppedDown=!0;t.preventDefault()}}isHostVisible(){let t=this.hostElement;return!(!t||!t.offsetHeight)}_isHiddenEditor(){return hasClass(this._tbx,"wj-grid-ime")}_keypress(t){"AltLeft"!=t.code&&"AltRight"!=t.code||t.preventDefault()}_input(t){this._setText(this.text,!1)}_btnclick(t){if(!t.defaultPrevented&&0==t.button){this._isInvalidInputCancelled=!1;t.preventDefault();if(this.isTouching){this._tbx.getAttribute("inputmode");this._tbx.setAttribute("inputmode","none");this.isDroppedDown=!this.isDroppedDown;this.selectAll()}else{this.focus();this.isDroppedDown=!this.isDroppedDown}}}_setText(t,e,s,i){let n=!1;if((t=(t||"").toString())!=this._tbx.value){this._tbx.value=t;if(s||!t){this.onTextChanged();n=!0}}if(t!=this._oldText){this._oldText=t;this._internalSettingText||n||this.onTextChanged()}i&&(this._tbx.value=this._tbx.value.trim());this._updateState()}_updateBtn(){this._btn.style.display=this._showBtn?"":"none";this._updateBtnAria()}_updateBtnAria(){let t=this._btn.querySelector("button"),e=this.isDroppedDown,s=this.dropDown?this.dropDown.id:null;setAttribute(t,"aria-expanded",!!e);setAttribute(t,"aria-controls",e?s:null)}_updateTbx(){this._updateTbxAria()}_updateTbxAria(){let t=this._tbx,e=this.isDroppedDown,s=this.dropDown?this.dropDown.id:null;setAttribute(t,"aria-controls",e?s:null);setAttribute(t,"aria-expanded",e)}_updateTbxAriaHaspopup(){let t=this._tbx,e=this.dropDown&&this.dropDown.getAttribute("role");setAttribute(t,"aria-haspopup",e)}_createDropDown(){}_commitText(t,e){}_updateDropDown(){if(this.isDroppedDown){this._commitText();let t=this.dropDown;setAttribute(t,"dir",this.rightToLeft?"rtl":null);showPopup(t,this.hostElement,!1,this._animate,null==this.dropDownCssClass)}}_shouldRaiseInvalidInput(t){return isNullOrUndefined(t)?!this._containsFocus():t}}DropDown._ctrlTemplate="";_addCultureInfo("Popup",{ariaLabels:{close:"close",backdrop:"backdrop",isDraggable:"draggable",isResizable:"resizable",popupVisible:"visible",popupHide:"hidden",popup:"popup"}});export var PopupTrigger;!function(t){t[t.None=0]="None";t[t.ClickOwner=1]="ClickOwner";t[t.ClickPopup=2]="ClickPopup";t[t.Click=3]="Click";t[t.BlurOwner=4]="BlurOwner";t[t.BlurPopup=8]="BlurPopup";t[t.Blur=12]="Blur";t[t.ClickOrBlur=15]="ClickOrBlur";t[t.DownOwner=16]="DownOwner";t[t.DownPopup=32]="DownPopup";t[t.Down=48]="Down";t[t.EnterOwner=64]="EnterOwner";t[t.EnterPopup=128]="EnterPopup";t[t.Enter=192]="Enter";t[t.LeaveOwner=256]="LeaveOwner";t[t.LeavePopup=512]="LeavePopup";t[t.Leave=768]="Leave"}(PopupTrigger||(PopupTrigger={}));var _Edges;!function(t){t[t.None=0]="None";t[t.Left=1]="Left";t[t.Top=2]="Top";t[t.Right=4]="Right";t[t.Bottom=8]="Bottom";t[t.LeftTop=3]="LeftTop";t[t.RightTop=6]="RightTop";t[t.RightBottom=12]="RightBottom";t[t.LeftBottom=9]="LeftBottom"}(_Edges||(_Edges={}));export class Popup extends Control{constructor(t,e){super(t);this._owner=null;this._ariaLabel=culture.Popup.ariaLabels.popup;this._modal=!1;this._position=PopupPosition.BelowLeft;this._showTrigger=PopupTrigger.ClickOwner;this._hideTrigger=PopupTrigger.Blur;this._hideAnim=[];this._fadeIn=!0;this._fadeOut=!0;this._removeOnHide=!0;this._draggable=!1;this._resizable=!1;this._result=null;this._resultEnter=null;this._resultSubmit=null;this._callback=null;this._visible=!1;this._ownerClickBnd=this._ownerClick.bind(this);this._ownerDownBnd=this._ownerDown.bind(this);this._ownerBlurBnd=this._ownerBlur.bind(this);this._ownerEnterBnd=this._ownerEnter.bind(this);this._ownerLeaveBnd=this._ownerLeave.bind(this);this._mousedownBnd=this._mousedown.bind(this);this._mousemoveBnd=this._mousemove.bind(this);this._mousedragBnd=this._mousedrag.bind(this);this._mouseupBnd=this._mouseup.bind(this);this._hideBnd=this.hide.bind(this);this._lastShow=0;this._initialOwner=null;this._activeEdge=_Edges.None;this.showing=new Event;this.shown=new Event;this.hiding=new Event;this.hidden=new Event;this.resizing=new Event;this.resized=new Event;this.dragging=new Event;this.dragged=new Event;this.sizeChanging=new Event;this.sizeChanged=new Event;this.positionChanging=new Event;this.positionChanged=new Event;let s=this.hostElement;Popup._PopupInstanceCount++;addClass(s,`${ControlClsNames.hostElement} ${ControlClsNames.content} ${PopupClsNames.hostElement}`);if(this.hostElement){this._initialOwner=this.hostElement.parentElement;setAttribute(this.hostElement,"role","dialog")}s.getAttribute("tabindex")||(s.tabIndex=0);hidePopup(s,!1);let i=this.addEventListener.bind(this);i(s,"compositionstart",()=>{this._composing=!0});i(s,"compositionend",()=>{this._composing=!1});i(window,"resize",()=>{!this.isVisible||this._dragged||this.isTouching||this.invalidate()});i(s,"keydown",t=>{if(!t.defaultPrevented){const e=10,i=t.ctrlKey&&t.altKey&&!t.shiftKey,n=t.ctrlKey&&t.shiftKey&&!t.altKey;if(i||n){const s=this.hostElement.getBoundingClientRect();let l=Rect.fromBoundingRect(s);if(i&&this.isDraggable){t.preventDefault();switch(t.keyCode){case Key.Left:l.left=Math.max(0,l.left-e);break;case Key.Right:l.left=Math.min(window.innerWidth-l.width,l.left+e);break;case Key.Up:l.top=Math.max(0,l.top-e);break;case Key.Down:l.top=Math.min(window.innerHeight-l.height,l.top+e)}const s=new PopupBoundsChangingEventArgs(l);if(this.onPositionChanging(s)){setCss(this.hostElement,{left:l.left+window.scrollX,top:l.top+window.scrollY,transform:"none"});this.onPositionChanged()}}else if(n&&this.isResizable){t.preventDefault();const e=10,s=window.getComputedStyle(this.hostElement),i=Math.max(parseInt(s.minWidth)||0,Popup._SZ_MIN),n=Math.max(parseInt(s.minHeight)||0,Popup._SZ_MIN);if(this._activeEdge===_Edges.None)switch(t.keyCode){case Key.Up:this._activeEdge=_Edges.Top;break;case Key.Down:this._activeEdge=_Edges.Bottom;break;case Key.Left:this._activeEdge=_Edges.Left;break;case Key.Right:this._activeEdge=_Edges.Right}const a=this._activeEdge===_Edges.Top||this._activeEdge===_Edges.Bottom,h=this._activeEdge===_Edges.Left||this._activeEdge===_Edges.Right;if(a&&![Key.Up,Key.Down].includes(t.keyCode)||h&&![Key.Left,Key.Right].includes(t.keyCode))return;if(this._activeEdge!==_Edges.None){let s=0;switch(t.keyCode){case Key.Up:case Key.Left:s=-e;break;case Key.Down:case Key.Right:s=e}switch(this._activeEdge){case _Edges.Top:const t=Math.min(Math.max(l.top+s,0),l.bottom-n);l.height=l.bottom-t;l.top=t;break;case _Edges.Bottom:const e=Math.min(Math.max(l.bottom+s,l.top+n),window.innerHeight);l.height=e-l.top;break;case _Edges.Left:const a=Math.min(Math.max(l.left+s,0),l.right-i);l.width=l.right-a;l.left=a;break;case _Edges.Right:const h=Math.min(Math.max(l.right+s,l.left+i),window.innerWidth);l.width=h-l.left}l.left=Math.max(0,Math.min(l.left,window.innerWidth-l.width));l.top=Math.max(0,Math.min(l.top,window.innerHeight-l.height));const a=new PopupBoundsChangingEventArgs(l);if(this.onSizeChanging(a)){setCss(this.hostElement,{left:l.left+window.scrollX,top:l.top+window.scrollY,width:l.width,height:l.height,transform:"none"});this.onSizeChanged()}}}}if(t.keyCode==Key.Escape&&!this._composing){t.preventDefault();this.hide()}if(t.keyCode==Key.Enter&&!this._composing){let e=this.dialogResultEnter;if(e){t.preventDefault();this._validateAndHide(e)}}if(t.keyCode==Key.Tab&&this.modal){t.preventDefault();moveFocus(s,t.shiftKey?-1:1)}}});i(document,"keyup",t=>{t.ctrlKey||t.shiftKey||this._activeEdge===_Edges.None||(this._activeEdge=_Edges.None)});i(s,"click",t=>{let e=t.target;if(e instanceof HTMLElement){if(e instanceof HTMLButtonElement&&"submit"==e.type){let e=this.hostElement,s=this.dialogResultSubmit;if(e instanceof HTMLFormElement&&s&&e.reportValidity()){t.preventDefault();this.hide(s)}}let s=e.className.match(/\bwj-hide[\S]*\b/);if(s&&s.length>0){t.preventDefault();t.stopPropagation();this.hide(s[0])}}});let n=this._toggle.bind(this),l=PopupTrigger;this.addEventListener(s,"click",t=>{this._ignoreClick||n(t,l.ClickPopup)},!0);this.addEventListener(s,"mousedown",t=>{this._ignoreClick=!1;n(t,l.DownPopup)},!0);this.addEventListener(s,"mouseenter",t=>{t.target==s&&n(t,l.EnterPopup)},!0);this.addEventListener(s,"mouseleave",t=>{t.target==s&&n(t,l.LeavePopup)},!0);this.addEventListener(s,"blur",t=>{this.containsFocus()||n(t,l.BlurPopup)},!0);i(document,"wheel",t=>{if(this.isVisible&&this._modal){for(let e=t.target;e&&e!=document.body;e=e.parentElement)if(e.scrollHeight>e.clientHeight)return;t.preventDefault()}});this.initialize(e);this._updateAriaLabel()}get ariaLabelledBy(){return this.hostElement.getAttribute("aria-labelledby")}set ariaLabelledBy(t){_setAriaLabelBy(this,this.hostElement,t,this._updateAriaLabel.bind(this))}get owner(){return this._owner}set owner(t){let e=this._owner;if(e){this.removeEventListener(e,"click");this.removeEventListener(e,"mousedown");this.removeEventListener(e,"mouseenter");this.removeEventListener(e,"mouseleave");this.removeEventListener(e,"blur")}e=this._owner=null!=t?getElement(t):null;if(e){this.addEventListener(e,"click",this._ownerClickBnd,!0);this.addEventListener(e,"mousedown",this._ownerDownBnd,!0);this.addEventListener(e,"mouseenter",this._ownerEnterBnd,!0);this.addEventListener(e,"mouseleave",this._ownerLeaveBnd,!0);this.addEventListener(e,"blur",this._ownerBlurBnd,!0)}}get position(){return this._position}set position(t){this._position=asEnum(t,PopupPosition)}get content(){return this.hostElement.firstElementChild}set content(t){if(t!=this.content){this.hostElement.innerHTML="";t instanceof HTMLElement&&this.hostElement.appendChild(t)}}get showTrigger(){return this._showTrigger}set showTrigger(t){this._showTrigger=asEnum(t,PopupTrigger)}get hideTrigger(){return this._hideTrigger}set hideTrigger(t){this._hideTrigger=asEnum(t,PopupTrigger)}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=asBoolean(t)}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=asBoolean(t)}get removeOnHide(){return this._removeOnHide}set removeOnHide(t){if((t=asBoolean(t))!=this.removeOnHide){this._removeOnHide=t;if(!this.isVisible){let e=this.hostElement;if(t)removeChild(e);else if(e&&document.body){e.style.display="none";document.body.appendChild(e)}}}}get modal(){return this._modal}set modal(t){this._modal=asBoolean(t);setAttribute(this.hostElement,"aria-modal",t?"true":null)}get isDraggable(){return this._draggable}set isDraggable(t){this._draggable=asBoolean(t);this._updateAriaLabel()}get isResizable(){return this._resizable}set isResizable(t){this._resizable=asBoolean(t);this._updateAriaLabel()}get dialogResult(){return this._result}set dialogResult(t){this._result=t}get dialogResultEnter(){return this._resultEnter}set dialogResultEnter(t){this._resultEnter=t}get dialogResultSubmit(){return this._resultSubmit}set dialogResultSubmit(t){this._resultSubmit=asString(t)}get isVisible(){let t=this.hostElement;return this._visible&&null!=t&&t.offsetHeight>0}show(t,e){this._lastShow=Date.now();if(!this.isVisible){let s=this.hostElement;this.dialogResult=null;this._callback=null;this._oldFocus=null;this._myFocus=null;this._hideAnim.forEach(t=>{clearInterval(t)});if(this._hideAnim.length>0){this._hideAnim.length=0;if(this._bkDrop){hidePopup(this._bkDrop,this.removeOnHide);this._bkDrop.style.opacity=""}hidePopup(s,this.removeOnHide);s.style.opacity=""}let i=new CancelEventArgs;if(this.onShowing(i)){null!=t&&(this.modal=asBoolean(t));null!=e&&(this._callback=asFunction(e));this._oldFocus=getActiveElement();showPopup(s,this._owner,this._position,this._fadeIn,!1,this._hideBnd);this._modal&&this._showBackdrop();setAttribute(this._oldFocus,"aria-expanded","true");this._composing=!1;this._visible=!0;this.onShown(i);this._updateAriaLabel();this._clearTimeouts();if(this.modal){this.addEventListener(window,"focus",()=>{if(!this.containsFocus()){let t=this._myFocus;t&&t.offsetHeight?t.focus():moveFocus(s,0)}});this.addEventListener(s,"focusin",()=>{let t=getActiveElement();t&&contains(s,t)&&(t.tabIndex>-1||!this._myFocus)&&(this._myFocus=t)})}this._resized=this._dragged=this._ignoreClick=!1;this._handleDragResize(!0);this.addEventListener(window,"touchstart",t=>{this._hideTrigger&PopupTrigger.Blur&&!contains(s,t.target,!0)&&this.hide()});this._toHidePopupTimer=setTimeout(()=>{this.addEventListener(window,"click",t=>{this._hideTrigger&PopupTrigger.BlurPopup&&this.isDisabled&&!contains(s,t.target,!0)&&this.hide()})});this._toGetFocusTimer=setTimeout(()=>{if(!this.isDisabled&&!this.containsFocus()&&!this.isTouching){let t=s.querySelector("[autofocus]");if(t&&t.clientHeight>0&&!t.disabled&&t.tabIndex>-1&&!closest(t,"[disabled],."+ControlStateClsNames.disabled)){t.focus();isFunction(t.select)&&t.select()}else moveFocus(s,0)}if(!this.isDisabled&&!this.containsFocus()){s.tabIndex=0;s.focus()}},100)}}}hide(t){this.removeEventListener(window,"touchstart");this.removeEventListener(window,"click");if(this.isVisible){isUndefined(t)||(this.dialogResult=t);let e=new CancelEventArgs,s=this.hostElement;if(this.onHiding(e)){this._handleDragResize(!1);let t=this.containsFocus()?this._oldFocus:null,i=s.querySelectorAll(`.${ControlClsNames.hostElement}.${DropDownClsNames.hostElement}`);for(let t=0;t<i.length;t++){let e=Control.getControl(i[t]);e instanceof DropDown&&(e.isDroppedDown=!1)}let n=this.removeOnHide,l=this.fadeOut;this._hideTimer=setTimeout(()=>{this._updateState();this.onHidden(e);this._callback&&this._callback(this);if(this.hideTrigger&PopupTrigger.LeavePopup){let t=Control.getControl(closest(this.owner,"."+PopupClsNames.hostElement));if(t instanceof Popup&&0!=(t.hideTrigger&PopupTrigger.Leave)){let e=Popup._evtHover,s=e?document.elementFromPoint(e.clientX,e.clientY):null,i=Control.getControl(closest(s,"."+PopupClsNames.hostElement));i instanceof Popup&&!i.isVisible&&(s=null);s&&contains(t.hostElement,s,!0)||t.hide()}}},Control._FOCUS_INTERVAL+50);this._bkDrop&&this._hideAnim.push(hidePopup(this._bkDrop,n,l));this._hideAnim.push(hidePopup(s,n,l));setAttribute(this._oldFocus,"aria-expanded","false");this._visible=!1;this._oldFocus=null;this._myFocus=null;this._updateAriaLabel();this.removeEventListener(window,"focus");this.removeEventListener(s,"focusin");this.containsFocus()&&getActiveElement().blur();this._clearTimeouts();!this.isVisible&&t&&t.offsetHeight&&t.focus()}}}onShowing(t){this.showing.raise(this,t);return!t.cancel}onShown(t){this.shown.raise(this,t)}onHiding(t){this.hiding.raise(this,t);return!t.cancel}onHidden(t){this._wasVisible=!1;this.hidden.raise(this,t)}onResizing(t){this.resizing.raise(this,t);return!t.cancel}onResized(t){this.resized.raise(this,t)}onDragging(t){this.dragging.raise(this,t);return!t.cancel}onDragged(t){this.dragged.raise(this,t)}onSizeChanging(t){this.sizeChanging.raise(this,t);return!t.cancel}onSizeChanged(t){this.sizeChanged.raise(this,t)}onPositionChanging(t){this.positionChanging.raise(this,t);return!t.cancel}onPositionChanged(t){this.positionChanged.raise(this,t)}onLostFocus(t){super.onLostFocus(t);if(this._hideTrigger&PopupTrigger.BlurPopup&&!this.containsFocus()){let t=document.createEvent("Event");t.initEvent("blur",!0,!0);this._toggle(t,PopupTrigger.BlurPopup)}}refresh(t=!0){let e=this.hostElement;super.refresh(t);if(this.isVisible&&!this._refreshing&&e){this._refreshing=!0;let t=getActiveElement(),s=this._owner?this._owner.getBoundingClientRect():null,i=[],n=e.querySelectorAll("."+DropDownClsNames.hostElement);for(let t=0;t<n.length;t++){let e=Control.getControl(n[t]);if(e instanceof DropDown&&e.isDroppedDown){i.push(e);e.dropDown.style.display="none"}}showPopup(e,s,this._position);i.forEach(t=>{t.dropDown.style.display="";t._updateDropDown()});this._modal&&t instanceof HTMLElement&&t!=getActiveElement()&&t.focus();this._refreshing=!1}}_clearTimeouts(){if(this._toShow){clearTimeout(this._toShow);this._toShow=null}if(this._toHideLeave){clearTimeout(this._toHideLeave);this._toHideLeave=null}if(this._toHideBlur){clearTimeout(this._toHideBlur);this._toHideBlur=null}}_handleDragResize(t){let e=this.hostElement,s=this._draggable?this._getHeaderElement():null,i=this.addEventListener.bind(this),n=this.removeEventListener.bind(this),l=this._mousemoveBnd,a=this._mousedownBnd;if(t){i(e,"mousemove",l);i(e,"mousedown",a);i(e,"touchstart",a);s&&(s.style.touchAction="none")}else{this._mousedownEvt=null;this._rcBounds=null;n(e,"mousemove",l);n(e,"mousedown",a);n(e,"touchstart",a);n(document,"mousemove",this._mousedragBnd);n(document,"mouseup",this._mouseupBnd);s&&(s.style.touchAction="")}}_mousemove(t){if(!this._mousedownEvt){let e=this.hostElement,s=this._getEdges(e,t),i="",n=_Edges;this._edges=s;this._resizable&&(s==n.LeftTop||s==n.RightBottom?i="nwse-resize":s==n.LeftBottom||s==n.RightTop?i="nesw-resize":s==n.Left||s==n.Right?i="ew-resize":s!=n.Top&&s!=n.Bottom||(i="ns-resize"));this._draggable&&!i&&this._getClosestHeader(t.target)&&(i="move");e.style.cursor=i}}_mousedown(t){if(!t.defaultPrevented){let e=t.touches&&t.touches.length>0?t.touches[0]:t;this._edges=this._getEdges(this.hostElement,e);if(this._edges||this._draggable&&this._getClosestHeader(t.target)){let t=new CancelEventArgs;if(this._edges?this.onResizing(t):this.onDragging(t)){this._mousedownEvt=e;this._rcBounds=this.hostElement.getBoundingClientRect();let t=this.addEventListener.bind(this),s=document,i=this._mousedragBnd,n=this._mouseupBnd;t(s,"mousemove",i);t(s,"touchmove",i);t(s,"mouseup",n);t(s,"touchend",n)}}this._ignoreClick=!1}}_mouseup(){this._mousedownEvt=null;this._rcBounds=null;this._activeEdge=_Edges.None;let t=this.removeEventListener.bind(this),e=document,s=this._mousedragBnd,i=this._mouseupBnd;t(e,"mousemove",s);t(e,"touchmove",s);t(e,"mouseup",i);t(e,"touchend",i);this._resized?this.onResized():this._dragged&&this.onDragged();this._resized=this._dragged=this._ignoreClick=!1}_mousedrag(t){if(!t.defaultPrevented){let e=this.hostElement,s=this._mousedownEvt,i=t.touches&&t.touches.length>0?t.touches[0]:t,n=i.clientX-s.clientX,l=i.clientY-s.clientY,a=this._rcBounds,h=this._edges,r=Popup._SZ_MIN,o=Rect.fromBoundingRect(a);if(h){const t=window.getComputedStyle(e),s=parseInt(t.getPropertyValue("min-width"))||r,i=parseInt(t.getPropertyValue("min-height"))||r;if(h&_Edges.Left){const t=o.right-s;o.left=Math.min(o.left+n,t);o.width=Math.max(o.width-n,s)}else h&_Edges.Right&&(o.width=Math.max(o.width+n,s));if(h&_Edges.Top){const t=o.bottom-i;o.top=Math.min(o.top+l,t);o.height=Math.max(o.height-l,i)}else h&_Edges.Bottom&&(o.height=Math.max(o.height+l,i));if(this.onSizeChanging(new PopupBoundsChangingEventArgs(o))){setCss(e,{left:o.left+window.scrollX,top:o.top+window.scrollY,width:o.width,height:o.height,transform:"none"});this._resized=this._dragged=this._ignoreClick=!0;this.onSizeChanged()}if(!window.ResizeObserver){let t=this.hostElement.children;for(let e=0;e<t.length;e++)Control.invalidateAll(t[e])}}else if(this._draggable){"touchmove"===t.type&&isiOS()&&t.preventDefault();if(this._dragged||Math.abs(n)+Math.abs(l)>Popup._DRAG_THRESHOLD){o.left=Math.max(a.left+n+(i.pageX-i.clientX),50-a.width);o.top=Math.max(a.top+l+(i.pageY-i.clientY),0);if(this.onPositionChanging(new PopupBoundsChangingEventArgs(o))){setCss(e,{left:o.left,top:o.top,width:o.width,height:o.height,transform:"none"});this._dragged=this._ignoreClick=!0;this.onPositionChanged()}}}}}_getEdges(t,e){let s=0;if(this._resizable){let i=t.getBoundingClientRect(),n=Popup._SZ_EDGE;e.clientX-i.left<n&&(s|=_Edges.Left);e.clientY-i.top<n&&(s|=_Edges.Top);i.right-e.clientX<n&&(s|=_Edges.Right);i.bottom-e.clientY<n&&(s|=_Edges.Bottom)}return s}_ownerClick(t){this._toggle(t,PopupTrigger.ClickOwner)}_ownerDown(t){this._wasVisible=this.isVisible;this._toggle(t,PopupTrigger.DownOwner)}_ownerBlur(t){contains(this._owner,getActiveElement())||this._toggle(t,PopupTrigger.BlurOwner)}_ownerEnter(t){t.target==this._owner&&this._toggle(t,PopupTrigger.EnterOwner)}_ownerLeave(t){t.target==this._owner&&this._toggle(t,PopupTrigger.LeaveOwner)}_toggle(t,e){t instanceof MouseEvent&&(Popup._evtHover=t);if(!("mouseenter"==t.type&&Date.now()-this._lastShow<300||t.defaultPrevented)){let t=0!=(this._hideTrigger&e),s=0!=(this._showTrigger&e),i=PopupTrigger;(t||s)&&this._clearTimeouts();t&&this.isVisible&&(e&i.Leave?this._toHideLeave=setTimeout(()=>{let t=Popup._evtHover,e=t?document.elementFromPoint(t.clientX,t.clientY):null;e&&contains(this.hostElement,e,!0)||this.hide()},Control._LEAVE_DELAY):e&i.Blur?this._toHideBlur=setTimeout(()=>{this.containsFocus()||contains(this._owner,getActiveElement())||this.hide()},Control._FOCUS_INTERVAL+50):this.hide());s&&e!=i.ClickPopup&&(this._wasVisible||(e&i.Enter?this._toShow=setTimeout(()=>{this.show()},Control._HOVER_DELAY):this.show()))}}_getHeaderElement(){let t=this.hostElement;return t.querySelector("."+PopupClsNames.dialogHeader)||t.querySelector(".modal-header")}_getClosestHeader(t){return closest(t,"."+PopupClsNames.dialogHeader)||closest(t,".modal-header")}_showBackdrop(){if(!this._bkDrop){this._bkDrop=document.createElement("div");this._bkDrop.tabIndex=-1;setAttribute(this._bkDrop,"role","presentation");setAttribute(this._bkDrop,"aria-hidden","true");setAttribute(this._bkDrop,"aria-label",culture.Popup.ariaLabels.backdrop);addClass(this._bkDrop,PopupClsNames.popupBackDrop);this.addEventListener(this._bkDrop,"mousedown",t=>{t.preventDefault();t.stopPropagation();this.hostElement.focus();this.hideTrigger&PopupTrigger.Blur&&this.hide()})}setCss(this._bkDrop,{zIndex:Control._POPUP_ZINDEX,display:""});let t=this.hostElement;t.parentElement.insertBefore(this._bkDrop,t)}_validateAndHide(t){let e=this.hostElement;if(e instanceof HTMLFormElement)e.reportValidity()&&this.hide(t);else{let e=this.hostElement.querySelector(":invalid");e?e.focus():this.hide(t)}}_updateAriaLabel(){this.hostElement&&(this.ariaLabelledBy?this._updateAriaLabelImp(""):this._updateAriaLabelImp(this._ariaLabel))}_updateAriaLabelImp(t){let e=[];this.isDraggable&&e.push(culture.Popup.ariaLabels.isDraggable);this.isResizable&&e.push(culture.Popup.ariaLabels.isResizable);this.isVisible?e.push(culture.Popup.ariaLabels.popupVisible):e.push(culture.Popup.ariaLabels.popupHide);let s=e.join(",");setAttribute(this.hostElement,"aria-label",t?t+" "+s:s)}dispose(){Popup._PopupInstanceCount--;0===Popup._PopupInstanceCount&&Popup._evtHover&&(Popup._evtHover=null);this._clearTimeouts();if(this._toHidePopupTimer){clearTimeout(this._toHidePopupTimer);this._toHidePopupTimer=null}if(this._toGetFocusTimer){clearTimeout(this._toGetFocusTimer);this._toGetFocusTimer=null}if(this._hideTimer){clearTimeout(this._hideTimer);this._hideTimer=null}this._hideAnim.forEach(t=>clearInterval(t));this._hideAnim=[];const t=this.hostElement;if(t){const e=t.querySelectorAll("."+DropDownClsNames.hostElement);for(let t=0;t<e.length;t++){const s=Control.getControl(e[t]);s&&s instanceof DropDown&&s.dispose()}}if(this._initialOwner){this._initialOwner.appendChild(this.hostElement);this._initialOwner=null}this.owner=null;if(this._bkDrop){this._bkDrop.remove();this._bkDrop=null}this._callback=null;super.dispose()}}Popup._DRAG_THRESHOLD=6;Popup._SZ_EDGE=10;Popup._SZ_MIN=40;Popup._PopupInstanceCount=0;export class PopupBoundsChangingEventArgs extends CancelEventArgs{constructor(t){super();this._rc=t}get bounds(){return this._rc}}_addCultureInfo("InputDate",{ariaLabels:{inputDateInput:"InputDate Input",inputDate:"Input Date",button:"Choose Date",dialog:"Calendar"}});export class InputDateEventArgs extends CancelEventArgs{constructor(t){super();this._isUserInput=t}get isUserInput(){return this._isUserInput}}export class InputDate extends DropDown{constructor(t,e){super(t);this._fmt=Globalize.DefaultDateFormat;this._sep=" - ";this._rngs=null;this._showCal=!1;this._clsOnSel=!0;this._handleWheel=!0;this._preserveCalendarNavigation=!0;this._isTriggered=!1;this._rangeChanged=!1;this._textInitialized=!1;this._previousText="";this._keepInvalidText=!1;this._inputAriaLabel=culture.InputDate.ariaLabels.inputDateInput;this._currentInput="";this._ariaLabelledby=null;this.valueChanged=new Event;this.rangeEndChanged=new Event;this.rangeChanged=new Event;addClass(this.hostElement,InputDateClsNames.hostElement);let s=culture.InputDate.ariaLabels;setAttribute(this._btn.querySelector("button"),"aria-haspopup","dialog");setAttribute(this._dropDown,"role","dialog");setAriaLabel(this._dropDown,s.dialog);setAttribute(this._dropDown,"aria-modal",!0);setAttribute(this._tbx,"role","combobox");setAttribute(this._tbx,"aria-haspopup","dialog");setAriaLabel(this._btn.querySelector("button"),s.button);this.dropDown.id=getUniqueId(this.hostElement.id+"_dropdown");this._msk=new _MaskProvider(this._tbx);let i=this.addEventListener.bind(this);isIE9()||(this.inputType="tel");this._tbx.type.match(/^(tel|text|)$/i)||(this.inputType="text");let n=this._mouseWheel.bind(this);i(this.hostElement,"wheel",n);let l=this._lbx=new ListBox(document.createElement("div"),{displayMemberPath:"name",selectedIndexChanged:t=>{let e=t.selectedItem,s=DateTime.fromDateTime,i=DateTime.sameDate;if(e&&e.from&&e.to){if(!i(e.from,this.value)||!i(e.to,this.rangeEnd)){let t=this.value;this.value=s(e.from,t);this.rangeEnd=s(e.to,t)}this._selectAll()}else this._cal.hostElement.style.display=""}}),a=this._cal=new Calendar(document.createElement("div")),h=this._dropDown;addClass(h,InputDateClsNames.inputDateDropDown);const r=document.createElement("div");addClass(r,InputDateClsNames.inputDateDropDownContainer);r.appendChild(l.hostElement);r.appendChild(a.hostElement);h.appendChild(r);this.addEventListener(h,"click",()=>{this._isTriggered=!0;setTimeout(()=>{this._isTriggered=!1},50)},!0);this.addEventListener(h,"keydown",t=>{if("Enter"===t.key){this._isTriggered=!0;setTimeout(()=>{this._isTriggered=!1},50)}},!0);if("INPUT"==this._orgTag){let t=this._tbx.getAttribute("value");t&&(a.value=a.rangeEnd=Globalize.parseDate(t,"yyyy-MM-dd"))}this.isRequired=!0;this._tbx.value=this._oldText=this._getText();this.initialize(e);const o=isNullOrUndefined(this.tabOrder)?0:this.tabOrder;a.tabOrder=-1!==o&&this.showConfirmationButtons?o:-1;l.tabOrder=o;if(this._textInitialized||this._tbx.value!==this._oldText){this._oldText=this._tbx.value;this._currentInput="text";this._textInitialized=!0;this._commitText();this.onTextChanged()}this._updateState();a.valueChanged.addHandler((t,e)=>{this._refreshText();this.onValueChanged(e)});a.rangeEndChanged.addHandler((t,e)=>{if(a._rngMode()){this.onRangeEndChanged(e);this._closeOnChange();a._clearingRangeEnd||this._refreshText()}});a.cancelButtonClicked.addHandler((t,e)=>{this.isDroppedDown=!1});a.OKButtonClicked.addHandler((t,e)=>{this._closeOnChange();this._refreshText()});a._enterKeyDownToSetValue.addHandler((t,e)=>{this._closeOnChange()});a.addEventListener(a.hostElement,"click",t=>{if(a.selectionMode&&!a._rngMode()){let e=t.target,s=a.hitTest(e);if(DateTime.sameDate(this.value,s)||closest(e,"[wj-part=btn-today]")){this._closeOnChange();this._refreshText()}}});this._updateInputAriaLabel()}static get controlTemplate(){InputDate._ctrlTemplate||(InputDate._ctrlTemplate=DropDown.controlTemplate);return InputDate._ctrlTemplate}static set controlTemplate(t){InputDate._ctrlTemplate=t}_mouseWheel(t){if(this.handleWheel&&!t.defaultPrevented&&!this.isDroppedDown&&this.containsFocus()&&null!=this.value&&this._canChangeValue()){let e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=clamp(-t.deltaY,-1,1),l=this.value,a=Globalize.getFullFormat(this.format||Globalize.DefaultDateFormat);null==a&&(a=this.format);let h=a.match(getSpecialCharsRegex());if(i-s===e.value.length&&null!=h||this.selectionMode==DateSelectionMode.Range){for(let t=1;;t++){l=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,t*n):DateTime.addDays(this.value,t*n);if(this._isValidDate(l)||!(null===this.max||l<this.max)||!(null===this.min||l>this.min))break}this.value=l;let t=this._getText();setSelectionRange(e,0,t.length)}else this._updateDateTimeValue(n,h,a);t.preventDefault()}}get value(){return this._cal.value}set value(t){this._cal.value=t;(this.text||this.isRequired)&&this._refreshText()}get rangeEnd(){return this._cal.rangeEnd}set rangeEnd(t){this._cal.rangeEnd=t;(this.text||this.isRequired)&&this._refreshText()}get rangeMin(){return this._cal.rangeMin}set rangeMin(t){this._cal.rangeMin=t}get rangeMax(){return this._cal.rangeMax}set rangeMax(t){this._cal.rangeMax=t}get keepInvalidText(){return this._keepInvalidText}set keepInvalidText(t){if(new Set(["InputDateTime","WjInputDateTime"]).has(this.constructor.name)){this._keepInvalidText=!1;throw"keepInvalidText property cannot be used with InputDateTime control"}this._keepInvalidText=t}get text(){return this._tbx.value}set text(t){let e=(t||"").toString();if(e!=this.text){e!=this._tbx.value&&(this._tbx.value=e);if(e!=this._oldText){this._oldText=e;this._previousText=e}if(isEmpty(this._currentInput)){this._textInitialized=!0;this._currentInput="text";this._commitText()}this.onTextChanged();this._currentInput=""}}get format(){return this._fmt}set format(t){if(t!=this.format){this._fmt=asString(t);this._refreshText()}}get separator(){return this._sep}set separator(t){if(t!=this._sep){this._sep=asString(t,!1);this.invalidate()}}get mask(){return this._msk.mask}set mask(t){this._msk.mask=asString(t)}get closeOnSelection(){return this._clsOnSel}set closeOnSelection(t){this._clsOnSel=asBoolean(t)}get handleWheel(){return this._handleWheel}set handleWheel(t){t=asBoolean(t);this._handleWheel=t;t||(this.calendar.handleWheel=t)}get predefinedRanges(){return this._rngs}set predefinedRanges(t){if(this._rngs!=t){assert(null==t||isObject(t),"Object expected");this._rngs=t;this._lbx.itemsSource=this._getRanges(t);this.invalidate()}}get alwaysShowCalendar(){return this._showCal}set alwaysShowCalendar(t){this._showCal=asBoolean(t)}get min(){return this._cal.min}set min(t){this._cal.min=asDate(t,!0)}get max(){return this._cal.max}set max(t){this._cal.max=asDate(t,!0)}get repeatButtons(){return this._cal.repeatButtons}set repeatButtons(t){this._cal.repeatButtons=asBoolean(t)}get showYearPicker(){return this._cal.showYearPicker}set showYearPicker(t){this._cal.showYearPicker=asBoolean(t)}get showMonthPicker(){return this._cal.showMonthPicker}set showMonthPicker(t){this._cal.showMonthPicker=t}get showHeader(){return this._cal.showHeader}set showHeader(t){this._cal.showHeader=t}get weeksBefore(){return this._cal.weeksBefore}set weeksBefore(t){this._cal.weeksBefore=t}get weeksAfter(){return this._cal.weeksAfter}set weeksAfter(t){this._cal.weeksAfter=t}get selectionMode(){return this._cal.selectionMode}set selectionMode(t){if(t!=this.selectionMode){this._cal.selectionMode=t;this._refreshText()}}get monthCount(){return this._cal.monthCount}set monthCount(t){this._cal.monthCount=t}get calendar(){return this._cal}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){t.match(/^(tel|text|)$/i)?this._tbx.type=asString(t):console.warn(`invalid input type '${t}', don't use any input types other than 'tel' or 'text'`)}get preserveCalendarNavigation(){return this._preserveCalendarNavigation}set preserveCalendarNavigation(t){this._preserveCalendarNavigation=t}get itemValidator(){return this._cal.itemValidator}set itemValidator(t){if(t!=this.itemValidator){this._cal.itemValidator=asFunction(t);this.invalidate()}}get itemFormatter(){return this._cal.itemFormatter}set itemFormatter(t){this._cal.itemFormatter=asFunction(t)}onValueChanged(t){this.valueChanged.raise(this,t)}onRangeEndChanged(t){this.rangeEndChanged.raise(this,t);this.rangeEnd&&(this.isDroppedDown?this._rangeChanged=!0:this.onRangeChanged(t))}onRangeChanged(t){this._rangeChanged=!1;this.rangeChanged.raise(this,t)}_getParsedValue(){let t=this._tbx.value,e=this._fmt,s=(0,Globalize.parseDate)(t,e,this.value);if(s&&DateTime.sameDate(s,this._clamp(s)))return this._fromDateTime(s)}refresh(t=!0){super.refresh(t);if(this.hostElement){this._msk&&this._msk.refresh();this._cal&&this._cal.refresh();this._refreshText()}}onIsDroppedDownChanging(t){if(this.isDroppedDown);else{let t=this._lbx,e=this._cal,s=t.collectionView,i=t.hostElement.style,n=e.hostElement.style;if(e._rngMode()&&hasItems(s)){let t=this._updateRangeSelection();i.display="";n.display=!this._showCal&&t&&t.from&&s.items.some(t=>!t.to)?"none":""}else{i.display="none";n.display=""}e._mthMode()||(e.monthView=!0);e.value&&!this.preserveCalendarNavigation&&(e.displayMonth=e.value);this.showConfirmationButtons&&(e.focusValue=e.value)}return super.onIsDroppedDownChanging(t)}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);let e=this.containsFocus();if(this.isDroppedDown){e&&(this._tryFocus(this._cal)||this._tryFocus(this._lbx)||this.dropDown.focus());this._lbx.showSelection();this._cal.refresh()}else{this._commitText();this._rangeChanged&&this.onRangeChanged()}}_updateDropDown(){this._commitText();let t=getComputedStyle(this.hostElement);this._dropDown.style.minWidth=18*parseFloat(t.fontSize)+"px";this._cal.refresh();super._updateDropDown()}onGotFocus(t){let e=this._tbx;this._elRef==e&&(this.isDroppedDown?this.dropDown.focus():this.selectAll());this.containsFocus()||this.focus();this.gotFocus.raise(this,t)}_keydown(t){if(!(t.defaultPrevented||t.altKey||t.ctrlKey||t.metaKey)){this._isInvalidInputCancelled=!1;if(this._isHiddenEditor())return;const e=getActiveElement();switch(t.keyCode){case Key.Enter:if(this.showConfirmationButtons&&e!==this._tbx)return;this._currentInput="user";this._textInitialized=!1;this._commitText(!1,!0);break;case Key.Escape:this.text=this._getText();this.selectAll();break;case Key.Tab:if(this.showConfirmationButtons&&e!==this._tbx){let s=_getFocusableElements(this._dropDown).filter(t=>!(t.classList.contains("wj-control")&&t.classList.contains("wj-calendar")));const i=s[0],n=s[s.length-1],l=s.indexOf(t.target),a=s[t.shiftKey?(l-1+s.length)%s.length:(l+1)%s.length];let h=!1;a&&(h=this.calendar.isCalendarDateCell(a));if(h){t.preventDefault();this.calendar.focus();this.calendar.setFocusValueToFirstOrLastCalendar(!t.shiftKey)}else if(t.shiftKey){if(e===i){t.preventDefault();n.focus()}}else if(e===n){t.preventDefault();i.focus()}}else if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();this.keyActionTab===TabKeyAction.CloseAndKeepFocus&&t.preventDefault()}this._currentInput="user";this._textInitialized=!1;this._commitText(!0);break;case Key.Up:case Key.Down:if(t.keyCode===Key.Up&&this.keyActionUpArrow===KeyAction.OpenDropdown||t.keyCode===Key.Down&&this.keyActionDownArrow===KeyAction.OpenDropdown)break;if(!this.isDroppedDown&&this.value&&this._canChangeValue()){this._currentInput="user";this._textInitialized=!1;let e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=(e.value,t.keyCode==Key.Up?1:-1),l=this.value,a=Globalize.getFullFormat(this.format||Globalize.DefaultDateFormat);if("g"==this.format&&a.includes("г")){let t=/\"г.\" /;a=a.replace(t,"")}null==a&&(a=this.format);let h=a.match(getSpecialCharsRegex());if(i-s===e.value.length&&null!=h||this.selectionMode==DateSelectionMode.Range){for(let t=1;;t++){l=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,t*n):DateTime.addDays(this.value,t*n);if(this._isValidDate(l)||!(null===this.max||l<this.max)||!(null===this.min||l>this.min))break}this.value=l;let t=this._getText();setSelectionRange(e,0,t.length)}else this._updateDateTimeValue(n,h,a);t.preventDefault()}}}super._keydown(t)}_expandSelection(){if(this._cal._rngMode()){let t=this._tbx,e=t.value,s=t.selectionStart,i=t.selectionEnd,n=this._sep,l=e.indexOf(n);l>-1&&s==i&&(i<=l?setSelectionRange(t,0,l):s>=l+n.length&&setSelectionRange(t,l+n.length,t.value.length))}else super._expandSelection()}_updateDateTimeValue(t,e,s){let i=this._tbx,n=i.selectionStart,l=i.value,a=this.value,h={},r={},o=0,d=0,u=0,c=[],_=[],p=i.value.match(getSpecialCharsRegex());if(null==e||null==p){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{let n=t.replaceAll('"',""),a=s.substring(o),u=l.substring(d),c=a.indexOf(t),_=u.indexOf(n);if(-1==_){let t=p[i];_=u.indexOf(t)}let m=a.substring(0,c);if(""!=m){h[m]=o;r[m]=d}o=o+c+t.length;d=d+_+n.length;if(i==e.length-1){m=s.substring(o);h[m]=o;r[m]=d}});c=Object.keys(h);_=Object.values(r)}let m=_.filter(t=>n>=parseInt(t.toString()));m.length>0&&(u=m.length-1);let g=c[u];for(let e=1;;e++){-1!=g.indexOf("d")?a=DateTime.addDays(this.value,e*t):-1!=g.indexOf("M")?a=DateTime.addMonths(this.value,e*t):-1!=g.indexOf("y")&&(a=DateTime.addYears(this.value,e*t));if(this._isValidDate(a)||!(null===this.max||a<this.max)||!(null===this.min||a>this.min))break}this.value=a;this._reselectText(e,u)}_reselectText(t,e){let s=this._getText(),i=this._tbx,n=0,l=-1,a=-1;if(1==t.length&&""==t[0]){l=0;a=s.length}else{let h=i.value.match(getSpecialCharsRegex());t.forEach((t,i)=>{let r=t.replaceAll('"',""),o=s.substring(n);if(o.startsWith("г.")){o=o.replace("г. ","");n+="г. ".length}let d=o.indexOf(r);0==d&&e++;if(-1==d){let t=h[i];d=o.indexOf(t)}let u=-1===d?o:o.substring(0,d);if(i==e&&-1==l){l=n;a=l+u.length}n=n+d+r.length})}if(-1==l){l=n;a=i.value.length}setSelectionRange(i,l,a)}_refreshText(){let t=this._getText();if(t!=this.text||t!==this._oldText){this._tbx.value=this._oldText=this._previousText=t;this.onTextChanged()}}_selectAll(){this.isDroppedDown||!this.containsFocus()||this.isTouching||this.selectAll()}_closeOnChange(){if(this._clsOnSel&&this._isTriggered){let t=this._cal;(!t._rngMode()||t.value&&t.rangeEnd)&&setTimeout(()=>{this._isInvalidInputCancelled=!1;this.isDroppedDown=!1})}}_tryFocus(t){let e=t.hostElement;if(e&&e.offsetHeight){e.focus();return!0}return!1}_clamp(t){return this._cal._clamp(t)}_getText(){let t=Globalize.format,e=this._fmt,s=t(this.value,e);this._cal._rngMode()&&s&&(this.rightToLeft?s=t(this.rangeEnd,e)+this._sep+s:s+=this._sep+t(this.rangeEnd,e));return s}_commitText(t,e){let s=this._tbx.value;this._isInvalidInputCancelled=!1;if(isEmpty(this._currentInput)){this._textInitialized=!1;this._currentInput="user"}let i=!1,n=this._fmt,l=this._cal,a=Globalize.parseDate,h=new InputDateEventArgs(!this._textInitialized);if(s)if(l._rngMode()){let t=s.split(this._sep),r=this.rightToLeft?t[1]:t[0];if(2==t.length&&r){let s=a(r,n,this.value);if(s){let r=a(this.rightToLeft?t[0]:t[1],n,this.value);if(DateTime.sameDate(s,this._clamp(s)))i=!0;else if(this._shouldRaiseInvalidInput(e)&&this.onInvalidInput(h))this._textInitialized&&this._keepInvalidText||(i=!0);else{this._selectAll();i=!1}if(i)if(r){l.value=this._fromDateTime(s);if(DateTime.sameDate(r,this._clamp(r))){l.rangeEnd=r&&r>=s?this._fromDateTime(r):s;this.text=this._getText()}else this._triggerInvalidInputEvent(h,s,r,e)}else if(this._shouldRaiseInvalidInput(e)&&this.onInvalidInput(h)){if(!this._textInitialized||!this._keepInvalidText){l.value=this._fromDateTime(s);l.rangeEnd=s;this.text=this._getText()}}else{this._isInvalidInputCancelled=!0;this._selectAll()}}else this._nullValueInvalidInput(h,e)}else this._nullValueInvalidInput(h,e)}else{let t=a(s,n,this.value);t?DateTime.sameDate(t,this._clamp(t))?this.value=this._fromDateTime(t):this._triggerInvalidInputEvent(h,t,null,e):this._nullValueInvalidInput(h,e)}else if(this.isRequired){let t=a(s,n,this.value);t?this.value=this._fromDateTime(t):this.containsFocus()||(this.text=this._getText())}else this.value=this.rangeEnd=null;this._currentInput="";t||this._selectAll()}_triggerInvalidInputEvent(t,e,s,i){if(this._shouldRaiseInvalidInput(i)&&this.onInvalidInput(t)){if(!this._textInitialized||!this._keepInvalidText){this.value=this._fromDateTime(e);this.calendar._rngMode()&&(this.calendar.rangeEnd=s&&s>=e?this._fromDateTime(s):e)}}else{this.isDroppedDown||!this.containsFocus()||this.isTouching||this.focus();this._isInvalidInputCancelled=!0;this._selectAll()}}_nullValueInvalidInput(t,e){if(this._shouldRaiseInvalidInput(e)&&this.onInvalidInput(t))this._textInitialized&&this._keepInvalidText||(this.text=this._getText());else{this.isDroppedDown||!this.containsFocus()||this.isTouching||this.focus();this._isInvalidInputCancelled=!0;this._selectAll()}}_fromDateTime(t){return DateTime.fromDateTime(t,this.value)}_canChangeValue(){return!this.isReadOnly&&!this.isDisabled&&this.selectionMode!=DateSelectionMode.None}_isValidDate(t){if(t){if(this._clamp(t)!=t)return!1;if(this.itemValidator&&!this.itemValidator(t))return!1}return!0}_getRanges(t){let e=[];if(isObject(t))for(let s in t){let i=t[s];e.push({name:s,from:i?i[0]:null,to:i?i[1]:null})}return new CollectionView(e,{currentItem:null})}_updateRangeSelection(){let t=this._lbx,e=-1;if(hasItems(t.collectionView)){let t=this._lbx.collectionView.items,s=DateTime.sameDate;for(let i=0;i<t.length;i++){let n=t[i];if(n.from){if(s(n.from,this.value)&&s(n.to,this.rangeEnd)){e=i;break}}else e=i}}t.selectedIndex=e;return t.selectedItem}_copy(t,e){if("text"===t){let t=(e||"").toString();if(t!==this.text){this._tbx.value=t;this._textInitialized=!0}return!0}return!1}get showConfirmationButtons(){return this._showConfirmationButtons}set showConfirmationButtons(t){this._showConfirmationButtons=t;this._cal.focusMode=t;this._cal.showConfirmationButtons=t;this._cal.updateConfirmationButtons(this.dropDown);const e=isNullOrUndefined(this.tabOrder)?0:this.tabOrder;this._cal.tabOrder=t?e:-1;this._cal.keyActionTab=t?CalendarTabKeyAction.All:CalendarTabKeyAction.None}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAriaLabel.bind(this))}_updateInputAriaLabel(){this._tbx&&(this._tbx.id||this.ariaLabelledBy?setAriaLabel(this._tbx,null):setAriaLabel(this._tbx,this._inputAriaLabel))}getAriaLabelForScreenReader(){return culture.InputDate.ariaLabels.inputDate}}InputDate._ctrlTemplate="";_addCultureInfo("InputDateRange",{ariaLabels:{inputDateRangeInput:"InputDateRange Input"}});export class InputDateRange extends InputDate{constructor(t,e){super(t,Object.assign({selectionMode:DateSelectionMode.Range,showMonthPicker:"Outside",monthCount:2},getInputDateOptions(e)));this._inputAriaLabel=culture.InputDateRange.ariaLabels.inputDateRangeInput;addClass(this.hostElement,InputDateRangeClsNames.hostElement);this._tbx.value=this._oldText=this._getText();this.initialize(e);if(this._tbx.value!==this._oldText){this._oldText=this._tbx.value;this._currentInput="text";this._commitText()}this._updateInputAriaLabel()}static get controlTemplate(){InputDateRange._ctrlTemplate||(InputDateRange._ctrlTemplate=InputDate.controlTemplate);return InputDateRange._ctrlTemplate}static set controlTemplate(t){InputDateRange._ctrlTemplate=t}get selectionMode(){return this.calendar.selectionMode}set selectionMode(t){t=asEnum(t,DateSelectionMode);assert(t==DateSelectionMode.Range,'InputDateRange.selectionMode must be "Range"');this.calendar.selectionMode=t}_mouseWheel(t){if(!t.defaultPrevented&&!this.isDroppedDown&&this.containsFocus()&&null!=this.value&&this._canChangeValue()){let e=clamp(-t.deltaY,-1,1),s=this.value;this.value=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(s,e):DateTime.addDays(s,e);this.selectAll();t.preventDefault()}}onGotFocus(t){let e=this._tbx;this._elRef!=e||this.isDroppedDown||this.selectAll();this.containsFocus()||this.focus();this.gotFocus.raise(this,t)}_keydown(t){if(!(t.defaultPrevented||t.altKey||t.ctrlKey||t.metaKey)){this._isInvalidInputCancelled=!1;if(this._isHiddenEditor())return;switch(t.keyCode){case Key.Up:case Key.Down:if(t.keyCode===Key.Up&&this.keyActionUpArrow===KeyAction.OpenDropdown||t.keyCode===Key.Down&&this.keyActionDownArrow===KeyAction.OpenDropdown)break;if(!this.isDroppedDown&&this.value&&this._canChangeValue()){let e=t.keyCode==Key.Up?1:-1,s=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,e):DateTime.addDays(this.value,e);this.value=this._fromDateTime(s);this.selectAll();t.preventDefault()}}}super._keydown(t)}}InputDateRange._ctrlTemplate="";function getInputDateOptions(t){let e={};if(!isNullOrUndefined(t)){isNullOrUndefined(t.showConfirmationButtons)||(e.showConfirmationButtons=t.showConfirmationButtons);isNullOrUndefined(t.tabOrder)||(e.tabOrder=t.tabOrder)}return e}_addCultureInfo("InputColor",{ariaLabels:{inputColor:"Input Color",inputColorInput:"InputColor Input",button:"Choose Color",dialog:"ColorPicker"}});export class InputColor extends DropDown{constructor(t,e){super(t);this._textInitialized=!1;this._ariaLabelledby=null;this._inputAriaLabel=culture.InputColor.ariaLabels.inputColorInput;this.valueChanged=new Event;addClass(this.hostElement,InputColorClsNames.hostElement);setAttribute(this._dropDown,"role","dialog");setAriaLabel(this._dropDown,culture.InputColor.ariaLabels.dialog);setAttribute(this._dropDown,"aria-modal",!0);setAttribute(this._tbx,"role","combobox");setAttribute(this._tbx,"aria-haspopup","dialog");setAttribute(this._btn.querySelector("button"),"aria-haspopup","dialog");setAriaLabel(this._btn.querySelector("button"),culture.InputColor.ariaLabels.button);this.dropDown.id=getUniqueId(this.hostElement.id+"_dropdown");let s=`<div class="${InputColorClsNames.inputColorBox}"></div>`;this._ePreview=createElement(s,this.hostElement.firstElementChild);if("INPUT"==this._orgTag){this._tbx.type="";this._commitText()}this.value="#ffffff";this.isRequired=!0;this._tbx.value=this._oldText=this.value;this.initialize(e);if(this._textInitialized&&this._tbx.value!==this._oldText){this._oldText=this._tbx.value;this.onTextChanged();this._commitText();this._textInitialized=!1}this.addEventListener(this._colorPicker.hostElement,"click",t=>{let e=t.target;if(e&&"DIV"==e.tagName&&(closest(e,'[wj-part="div-pal"]')||closest(e,'[wj-part="div-pv"]'))){e.style.backgroundColor&&(this.isDroppedDown=!1)}});let i=!e||-1!==e.tabOrder&&e.colorPickerKeyActionTab!==ColorPickerTabKeyAction.None?0:-1;this._colorPicker.tabOrder=i;this._updateInputAriaLabel()}static get controlTemplate(){InputColor._ctrlTemplate||(InputColor._ctrlTemplate=DropDown.controlTemplate);return InputColor._ctrlTemplate}static set controlTemplate(t){InputColor._ctrlTemplate=t}get value(){return this._value}set value(t){this.text=t}get text(){return this._tbx.value}set text(t){if((t=asString(t))!=this.text&&(t||!this.isRequired)&&(!t||Color.fromString(t.replace(/\s+/g,"")))){this._setText(t,!0);this._commitText()}}get inputType(){return this._tbx.type}set inputType(t){t.match(/^(tel|text|)$/i)?this._tbx.type=asString(t):console.warn(`invalid input type '${t}', don't use any input types other than 'tel' or 'text'`)}get showAlphaChannel(){return this._colorPicker.showAlphaChannel}set showAlphaChannel(t){this._colorPicker.showAlphaChannel=t}get showColorString(){return this._colorPicker.showColorString}set showColorString(t){this._colorPicker.showColorString=t}get palette(){return this._colorPicker.palette}set palette(t){this._colorPicker.palette=t}get colorPicker(){return this._colorPicker}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAriaLabel.bind(this))}get colorPickerKeyActionTab(){return this.colorPicker.keyActionTab}set colorPickerKeyActionTab(t){this.colorPicker.keyActionTab=t}onValueChanged(t){this.valueChanged.raise(this,t)}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);if(this.isDroppedDown&&!this.isTouching){this.colorPicker._refreshSelection();let t=this._tbx;this._elRef==t&&setSelectionRange(t,0,this.text.length,!1);this.containsFocus()||this.focus()}}_createDropDown(){this._colorPicker=new ColorPicker(this._dropDown);setCss(this._dropDown,{minWidth:420,minHeight:200});this._colorPicker.valueChanged.addHandler(()=>{this.value=this._colorPicker.value})}_keydown(t){if(!t.defaultPrevented)switch(t.keyCode){case Key.Enter:this._commitText();this.selectAll();break;case Key.Escape:this.text=this.value;this.selectAll();break;case Key.Tab:const e=getActiveElement();if(this.colorPicker.keyActionTab===ColorPickerTabKeyAction.All&&e!==this._tbx){let s=_getFocusableElements(this.colorPicker.hostElement);const i=s[0],n=s[s.length-1];if(t.shiftKey){if(e===i){t.preventDefault();n.focus()}}else if(e===n){t.preventDefault();i.focus()}}else if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();this.keyActionTab===TabKeyAction.CloseAndKeepFocus&&t.preventDefault()}}super._keydown(t)}_commitText(){if(this._value!=this.text){let t=!this.text||!this.text.trim();if(!this.isRequired&&t){this._changeAllValue();this._ePreview.style.backgroundColor="";return}if(Color.fromString(this.text.replace(/\s+/g,""))){if(this.text&&this.text!==this.text.replace(/\s+/g,"")){this.text=this.text.replace(/\s+/g,"");return}this._changeAllValue()}else this.onInvalidInput(new CancelEventArgs)&&(this.text=this._value?this._value:"")}}_changeAllValue(){let t=this._colorPicker;t.value=this.text;this._value=t.value;this._ePreview.style.backgroundColor=this.value;this.onValueChanged()}_copy(t,e){if("text"===t){let t=(e||"").toString();if(t!==this.text){this._tbx.value=t;this._textInitialized=!0}return!0}return!1}getAriaLabelForScreenReader(){return culture.InputColor.ariaLabels.inputColor}_updateInputAriaLabel(){this._tbx&&(this._tbx.id||this.ariaLabelledBy?setAriaLabel(this._tbx,null):setAriaLabel(this._tbx,this._inputAriaLabel))}}InputColor._ctrlTemplate="";_addCultureInfo("ComboBox",{ariaLabels:{comboBoxInput:"ComboBox Input",comboBox:"Combo Box"}});export class ComboBox extends DropDown{constructor(t,e){super(t);this._editable=!1;this._trimText=!0;this._handleWheel=!0;this._delKey=0;this._draggingText=!1;this._textIsComposing="";this._pathHdr=new Binding(null);this._bsCollapse=!0;this._fmtItemHandlers=0;this._emptyValueAction=!1;this._oldIndexToBeRestoredOnBlur=null;this._restoreComboboxTbxVal=!1;this._isWheel=!1;this._selItems=null;this._oldFilter=null;this._keyActionPrintCharacters=KeyAction.OpenDropdown;this._inputElementAriaLabel=culture.ComboBox.ariaLabels.comboBoxInput;this._ariaLabelledby=null;this.itemsSourceChanged=new Event;this.selectedIndexChanged=new Event;let s=this.hostElement;addClass(s,ComboBoxClsNames.hostElement);this.dropDown.id=getUniqueId(s.id+"_dropdown");this.autoExpandSelection=!1;let i=this._tbx;this.addEventListener(i,"compositionstart",()=>{this._composing=!0});this.addEventListener(i,"compositionend",()=>{this._textIsComposing=this.text;this._composing=!1;this._setText(this._textIsComposing,!0);if(!this._textIsComposing&&this.isRequired){this._oldText="";this._oldIndexToBeRestoredOnBlur=null}setTimeout(()=>{this._textIsComposing=""})});this.addEventListener(i,"drag",()=>{this._draggingText=!0});this.addEventListener(s,"wheel",this._wheel.bind(this));"SELECT"==this._orgTag&&this._lbx._initFromSelect(s);let n=this._lbx;n.loadedItems.addHandler(t=>{this.selectedIndex>-1&&(this.selectedIndex=n.selectedIndex)});n.tabOrder=-1;this.isRequired=!0;this.initialize(e);this._updateTbxAriaHaspopup();this._updateInputAriaLabel()}static get controlTemplate(){ComboBox._ctrlTemplate||(ComboBox._ctrlTemplate=DropDown.controlTemplate);return ComboBox._ctrlTemplate}static set controlTemplate(t){ComboBox._ctrlTemplate=t}get itemsSource(){return this._lbx.itemsSource}set itemsSource(t){if(this._lbx.itemsSource!=t){this._lbx.itemsSource=t;this.onItemsSourceChanged()}this._updateBtn()}get collectionView(){return this._lbx.collectionView}get virtualizationThreshold(){return this._lbx.virtualizationThreshold}set virtualizationThreshold(t){this._lbx.virtualizationThreshold=t}get showGroups(){return this._lbx.showGroups}set showGroups(t){this._lbx.showGroups=t}get displayMemberPath(){return this._lbx.displayMemberPath}set displayMemberPath(t){if(this.displayMemberPath===t)return;this._lbx.displayMemberPath=t;let e=this._getDisplayText(void 0,void 0,!0);this.text!=e&&this._setText(e,!0)}get headerPath(){return this._pathHdr.path}set headerPath(t){this._pathHdr.path=asString(t);let e=this._getDisplayText(void 0,void 0,!0);this.text!=e&&this._setText(e,!0)}get selectedValuePath(){return this._lbx.selectedValuePath}set selectedValuePath(t){this._lbx.selectedValuePath=t}get isContentHtml(){return this._lbx.isContentHtml}set isContentHtml(t){if(t!=this.isContentHtml){this._lbx.isContentHtml=asBoolean(t);let e=this._getDisplayText(void 0,void 0,!0);this.text!=e&&this._setText(e,!0)}}get caseSensitiveSearch(){return this._lbx.caseSensitiveSearch}set caseSensitiveSearch(t){this._lbx.caseSensitiveSearch=asBoolean(t)}get trimText(){return this._trimText}set trimText(t){if(t!=this._trimText){this._trimText=asBoolean(t);this.invalidate()}}get itemFormatter(){return this._lbx.itemFormatter}set itemFormatter(t){this._lbx.itemFormatter=asFunction(t);this.selectedIndex=this._lbx.selectedIndex}get formatItem(){return this._lbx.formatItem}get selectedIndex(){return this._lbx.selectedIndex}set selectedIndex(t){t!=this.selectedIndex&&isNumber(t)&&(this._lbx.selectedIndex=t);let e=this._lbx._oldSelectedIndex!=this.selectedIndex;t=this.selectedIndex;let s=this._getDisplayText(t,void 0,!0);if(this.text!=s||e){let t=this._internalSettingText;this._internalSettingText=this._lbx._ignoredItemChangedEvents;this._setText(s,!0);""!=this.text&&(this._emptyValueAction=!1);this._internalSettingText=t}}get selectedItem(){return this._lbx.selectedItem}set selectedItem(t){this._lbx.selectedItem=t}get selectedValue(){return this.collectionView?this._lbx.selectedValue:this.text}set selectedValue(t){this.collectionView?this._lbx.selectedValue=t:null!=t&&(this.text=t.toString())}get isEditable(){return this._editable}set isEditable(t){this._editable=asBoolean(t)}get handleWheel(){return this._handleWheel}set handleWheel(t){this._handleWheel=asBoolean(t)}get maxDropDownHeight(){return this._lbx.maxHeight}set maxDropDownHeight(t){this._lbx.maxHeight=t}get maxDropDownWidth(){let t=this._dropDown,e=t?parseInt(t.style.maxWidth):null;return isNaN(e)?null:e}set maxDropDownWidth(t){let e=this._dropDown.style;t=asNumber(t,!0);e.maxWidth=null==t?"":t+"px";e.minWidth=""}get keyActionPrintCharacters(){return this._keyActionPrintCharacters}set keyActionPrintCharacters(t){this._keyActionPrintCharacters=asEnum(t,KeyAction)}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAndListBoxAriaLabel.bind(this))}_updateInputAndListBoxAriaLabel(){this._updateInputAriaLabel()}getDisplayText(t=this.selectedIndex,e=this._trimText){return this._getDisplayText(t,e)}_getDisplayText(t=this.selectedIndex,e=this._trimText,s){let i,n=this.collectionView;if(this.headerPath&&t>-1&&hasItems(n)){let e=n.items[t];i=e?this._pathHdr.getValue(e):null;i=null!=i?i.toString():"";this.isContentHtml&&(i=toPlainText(i))}else i=this._lbx._getDisplayText(t,s&&void 0!==this.itemFormatter&&!this._hasCustomFormatItem());return e?i.trim():i}_hasCustomFormatItem(){return this.formatItem.hasHandlers}indexOf(t,e,s=!1){let i=this.collectionView,n=this.caseSensitiveSearch;if(hasItems(i)&&null!=t){t=t.toString();n||(t=t.toLowerCase());if(this._trimText&&!s){-1!==this.indexOf(t,!1,!0)||(t=t.trim())}let l=this.selectedIndex,a=this._getDisplayText(l,void 0,!0);if(e){n||(a=a.toLowerCase());if(t==a)return l}else if(!t&&""==a)return l;for(let s=0;s<i.items.length;s++)if(this._lbx.isItemEnabled(s)){a=this._getDisplayText(s,void 0,!0);this.trimText&&(a=a.trim());n||(a=a.toLowerCase());if(e){if(a==t&&!1===this._emptyValueAction)return s}else if(t&&0==a.indexOf(t)||!t&&""==a&&!1===this._emptyValueAction)return s}}return-1}get listBox(){return this._lbx}onItemsSourceChanged(t){this.itemsSourceChanged.raise(this,t)}onSelectedIndexChanged(t){this._updateBtn();this.selectedIndexChanged.raise(this,t)}refresh(t=!0){super.refresh(t);if(this.hostElement&&hasItems(this.collectionView)){this._lbx.refresh();this.selectedIndex>-1&&(this.selectedIndex=this._lbx.selectedIndex)}}onLostFocus(t,e,s){this._trimText&&(this.text=this.text.trim());if(this._composing){this._composing=!1;if(!this.text&&this.isRequired){this._oldText="";this._oldIndexToBeRestoredOnBlur=null}this._setText(this.text,!0)}if((!this.text&&this.isRequired&&!(Array.isArray(this._selItems)&&this._selItems.length>0)||s)&&hasItems(this.collectionView)&&!(this.isRequired&&!this.isEditable&&this.text&&this.indexOf(this.text,!1)>-1&&this.indexOf(this.text,!0)<0)){void 0!==e&&(this.selectedIndex=-1!==e?e:0);null!==this._oldIndexToBeRestoredOnBlur?this.selectedIndex=-1!==this._oldIndexToBeRestoredOnBlur?this._oldIndexToBeRestoredOnBlur:0:null==this.collectionView.currentItem&&(this.selectedIndex=0)}let i=this.text,n=this.collectionView?this.collectionView.items.length:0,l=this.selectedIndex;super.onLostFocus(t);let a=this.collectionView?this.collectionView.items.length:0,h=this.selectedIndex,r=this.text;const o=this._oldFilter;this._oldFilter=null;if(l===h&&i===r){o&&(this.collectionView.filter=o);this._trySelectionUpdateOnItemsSourceChanged(a!==n,i)}}onIsDroppedDownChanging(t){if(!this.isDroppedDown&&!this._hasItems()){t.cancel=!0;return!1}return super.onIsDroppedDownChanging(t)}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);if(this.isDroppedDown){this._fmtItemHandlers=this.formatItem.handlerCount;this._lbx.showSelection()}this._updateTbxAria()}_trySelectionUpdateOnItemsSourceChanged(t,e){if(t&&e){let t=this.indexOf(e,!0);t<0&&(t=this.indexOf(e,!1));this.selectedIndex=t}}_setIsDisabled(t){super._setIsDisabled(t);this._updateBtn()}_updateBtn(){let t=this.collectionView,e=this._tbx,s=this._hasItems();super._updateBtn();this._btn.style.display=this._showBtn&&null!=t?"":"none";enable(this._btn,s&&!this.isDisabled);setAttribute(e,"role",s?"combobox":null);setAttribute(e,"aria-autocomplete",s?"both":null);this._updateTbxAria()}_hasItems(){return hasItems(this.collectionView)}_updateTbxAria(){super._updateTbxAria();let t=this._tbx,e=this.isDroppedDown,s=this.dropDown?this.dropDown.id:null,i=s&&hasItems(this.collectionView),n=this._lbx,l=n.selectedIndex,a=n.hostElement?n.hostElement.children:null,h=n._getElementIndex(l),r=h>-1&&a&&h<a.length?a[h].id:null;setAttribute(t,"aria-controls",i&&e?s:null);setAttribute(t,"aria-expanded",i?e:null);setAttribute(t,"aria-activedescendant",this.isDroppedDown&&r&&r.length?r:null)}_updateInputAriaLabel(){const t=this._tbx;t&&(t.id||this._ariaLabelledby?setAttribute(t,"aria-label",null):setAttribute(t,"aria-label",this._inputElementAriaLabel))}_createDropDown(){if(!this._lbx){this._lbx=new ListBox(this._dropDown);this._lbx._container=this.hostElement}this._lbx.maxHeight=200;this._lbx.selectedIndexChanged.addHandler(()=>{this._updateBtn();let t=this._lbx.selectedIndex;this.selectedIndex=t;this.onSelectedIndexChanged()});this._lbx.itemsChanged.addHandler(()=>{this._updateBtn()})}_wheel(t){this._isWheel=!0;if(this.handleWheel&&!t.defaultPrevented&&!this.isDroppedDown&&!this.isReadOnly&&this.containsFocus()&&this.selectedIndex>-1){let e=this._findNext("",t.deltaY>0?1:-1);e>-1&&(this.selectedIndex=e);t.preventDefault()}this._isWheel=!1}_dropDownClick(t){t.defaultPrevented||t.target!=this._dropDown&&(this.isDroppedDown=!1);this._restoreComboboxTbxVal&&(this._tbx.value=this._getDisplayText(this.selectedIndex,void 0,!0));super._dropDownClick(t)}_setText(t,e,s=!1){if(this._composing||this._settingText)return;this._settingText=!0;if(this.containsFocus()){let t=this.formatItem.handlerCount;if(this._fmtItemHandlers!=t){this._fmtItemHandlers=t;this._lbx.loadList()}}t=[null,void 0,NaN].includes(t)?"":t.toString();let i=this.selectedIndex,n=this.collectionView,l=this._getSelStart(),a=-1,h=!0;if(this.isEditable&&(this._delKey||this._getSelEnd()<t.length||!this.containsFocus())){e=!0;h=!1}i=this.indexOf(t,e);if(h){i<0&&e&&(i=this.indexOf(t,!1));i<0&&l>0&&!s&&(i=this.indexOf(t.substr(0,l),!1));if(!e){let e=this.indexOf(t,!0);e>-1&&i>-1&&e!=i&&(i=e)}}i<0&&this._delKey&&(i=this.indexOf(t,e));if(i<0&&!this.isEditable&&hasItems(n)&&(t&&this.isRequired||this.containsFocus()&&(t||this.isRequired))){let e=this._oldText||"";i=Math.max(0,this.indexOf(e,!1));l=0;for(let s=0;s<t.length&&s<e.length;s++)if(t[s]!=e[s]){l=s;break}}if((!this._delKey||!this.isEditable||this._delKey&&this.isEditable&&t==this._getDisplayText(i,void 0,!0))&&(!this._pristine||this._pristine&&!this.isEditable)||this._isWheel||this._delKey&&""==t&&i>-1){if(i>-1){a=l;t=this._getDisplayText(i,void 0,!0)}let e=this._tbx;t!=e.value&&(e.value=t);a>-1&&this.containsFocus()&&!this.isTouching&&this._updateInputSelection(a)}if(n){if(!t||this.trimText&&""==t.trim()&&!this.containsFocus()&&this.isEditable)if(i>-1)this._oldIndexToBeRestoredOnBlur=i;else{this._oldIndexToBeRestoredOnBlur=this.indexOf(this._oldText,!0);this._oldIndexToBeRestoredOnBlur=this._oldIndexToBeRestoredOnBlur<0?this.indexOf(this._oldText,!1):this._oldIndexToBeRestoredOnBlur}this._restoreComboboxTbxVal=t&&i>-1;n.moveCurrentToPosition(i)}this.containsFocus()||this.isEditable||this.isRequired||t!=t.trim()||!this.trimText||(this._tbx.value=this._getDisplayText(i,this.trimText,!0));!this.containsFocus()&&i>-1&&this.isEditable&&(t=this._getDisplayText(i,this.trimText,!0));!this.containsFocus()&&this._hasItems()&&i<0&&!this.isEditable&&!this.isRequired&&(t="");let r=!1;!t&&i<0&&this.isRequired&&!this.containsFocus()&&(r=!0);this.trimText&&!this.containsFocus()&&this.isEditable&&(this.isRequired&&""==t.trim()?r=!0:t=t.trim());if(r){this.selectedIndex=this._oldIndexToBeRestoredOnBlur;this.selectedIndex<0&&(this.selectedIndex=0)}let o=!this.containsFocus()&&!this.isEditable&&this.trimText;o&&(this._tbx.value=this._getDisplayText(i,!0,!0));this._delKey=0;this._settingText=!1;super._setText(r?this._getDisplayText(this.selectedIndex,void 0,!0):t,e,r,o)}_findNext(t,e,s=this.selectedIndex){let i=this.collectionView,n=i?i.items.length:0,l=this._lbx,a=this.caseSensitiveSearch;if(i&&n&&e){a||(t=t.toLowerCase());this.trimText&&(t=t.trim());for(let i=s+e;i>-1&&i<n;i+=e){let e=this._getDisplayText(i,void 0,!0);a||(e=e.toLowerCase());if(0==e.indexOf(t)){if(!this.dropDown.children[i]||l.isItemEnabled(i))return i}}}return s}_findNextWhenIsEditableFalse(t,e,s=this.selectedIndex){let i=this._findNext(t,e,s);return i!==s?i:-1}_keydown(t){super._keydown(t);if(t.defaultPrevented||this.isReadOnly)return;if(t.altKey)return;if(!hasItems(this.collectionView))return;if(this._elRef!=this._tbx)return;if(this._isHiddenEditor())return;this._delKey=0;let e=this._getSelStart(),s=this._getSelEnd();switch(t.keyCode){case Key.Tab:if(this.isDroppedDown){this.isDroppedDown=!1;this.keyActionTab===TabKeyAction.CloseAndKeepFocus&&t.preventDefault()}break;case Key.Back:case Key.Delete:case 88:if(!t.ctrlKey&&!t.metaKey&&88==t.keyCode)break;if(this._bsCollapse&&!this.isEditable&&e>0&&s==this._tbx.value.length&&hasItems(this.collectionView)){this._setSelRange(e-1,s);e-=1}this._delKey=t.keyCode;break;case Key.Up:case Key.Down:e==this.text.length&&(e=0);this.selectedIndex=this._findNext(this.text.substr(0,e),t.keyCode==Key.Up?-1:1);this._setSelRange(e,this.text.length);t.preventDefault();break;case Key.PageUp:this._lbx._selectPrevPage();this.selectAll();t.preventDefault();break;case Key.PageDown:this._lbx._selectNextPage();this.selectAll();t.preventDefault();break;case Key.Home:case Key.End:let i=this._tbx;setAttribute(i,"aria-activedescendant",null)}this.text.length>0&&["Backspace","Delete","x"].includes(t.key)&&0===e&&s===this.text.length||this._delKey&&1===this.text.length?this._emptyValueAction=!0:this._composing||(this._emptyValueAction=!1)}_afterOpenDropdownByDownArrow(){if(-1===this.selectedIndex){this.selectedIndex=0;this.selectAll()}}_input(t){this._handleDragTextState();this._updateDropDownWhenInput();this._updateComponentText();this._updateEmptyValueFlag();this._resetDragState()}_handleDragTextState(){this._draggingText&&(this._emptyValueAction=""===this.text)}_shouldOpenDropdown(){return this.keyActionPrintCharacters===KeyAction.OpenDropdown}_handleIsEditableFalseInput(){const t=this.text;let e=this.text.length,s=this._findNextWhenIsEditableFalse(t,1,this.selectedIndex-1);if(-1===s){s=this._findNextWhenIsEditableFalse(t,1,-1);if(-1===s){const i=t[t.length-1];s=this._findNextWhenIsEditableFalse(i,1);e=1;-1===s&&(s=this._findNextWhenIsEditableFalse(i,1,-1))}}-1!==s?this._updateSelection(s,e):this._updateComponentText()}_updateSelection(t,e){this._tbx.value=this._getDisplayText(t,void 0,!0);this._updateInputSelection(e);let s=this.collectionView;s&&s.moveCurrentToPosition(t)}_updateComponentText(){const t=this._textIsComposing||this.text;this._setText(t,!1)}_updateEmptyValueFlag(){this.text&&(this._emptyValueAction=!1)}_controlDropdownVisibility(){this.text&&!this.isDroppedDown&&(this.isDroppedDown=!0)}_resetDragState(){this._draggingText=!1}_updateInputSelection(t){let e=this._tbx;this._elRef==e&&this._setSelRange(t,e.value.length)}_getSelStart(){let t=this._tbx;return t&&t.value?t.selectionStart:0}_getSelEnd(){let t=this._tbx;return t&&t.value?t.selectionEnd:0}_setSelRange(t,e){let s=this._tbx;this._elRef!=s||s.readOnly||setSelectionRange(s,t,e)}getAriaLabelForScreenReader(){return culture.ComboBox.ariaLabels.comboBox}_updateDropDownWhenInput(){if(this._shouldOpenDropdown()){let t=this._getSelStart(),e=this._getSelEnd();const s=this._delKey,i=this.text;this._controlDropdownVisibility();this._tbx.value=i;this._setSelRange(t,e);this._delKey=s}}}ComboBox._ctrlTemplate="";_addCultureInfo("MultiSelect",{itemsSelected:"{count:n0} items selected",selectAll:"Select All",ariaLabels:{multiSelectInput:"MultiSelect Input",multiSelect:"Multi Select"}});export class MultiSelect extends ComboBox{constructor(t,e){super(t);this._maxHdrItems=2;this._readOnly=!1;this._hdrFmt=null;this._inputElementAriaLabel=culture.MultiSelect.ariaLabels.multiSelectInput;this.checkedItemsChanged=new Event;addClass(this.hostElement,MultiSelectClsNames.hostElement);this._tbx.readOnly=!0;this.checkedMemberPath=null;this.removeEventListener(this.dropDown,"click");this._lbx.itemsChanged.addHandler(()=>{this._updateHeader(!1)});this._lbx.checkedItemsChanged.addHandler(()=>{this._updateHeader(!1);this.onCheckedItemsChanged()});this.clickAction=ClickAction.Toggle;this.initialize(e);this._updateInputAriaLabel()}static get controlTemplate(){MultiSelect._ctrlTemplate||(MultiSelect._ctrlTemplate=ComboBox.controlTemplate);return MultiSelect._ctrlTemplate}static set controlTemplate(t){MultiSelect._ctrlTemplate=t}get showSelectAllCheckbox(){return this._msLbx.showSelectAllCheckbox}set showSelectAllCheckbox(t){this._msLbx.showSelectAllCheckbox=asBoolean(t)}get showFilterInput(){return this._msLbx.showFilterInput}set showFilterInput(t){this._msLbx.showFilterInput=asBoolean(t)}get delay(){return this._msLbx.delay}set delay(t){this._msLbx.delay=t}get caseSensitiveSearch(){return this._msLbx.caseSensitiveSearch}set caseSensitiveSearch(t){this._msLbx.caseSensitiveSearch=t}get filterInputPlaceholder(){return this._msLbx.filterInputPlaceholder}set filterInputPlaceholder(t){this._msLbx.filterInputPlaceholder=asString(t)}get checkOnFilter(){return this._msLbx.checkOnFilter}set checkOnFilter(t){if(t!=this.checkOnFilter){this._msLbx.checkOnFilter=asBoolean(t);this.checkedItems=[]}}get selectAllLabel(){return this._msLbx.selectAllLabel}set selectAllLabel(t){this._msLbx.selectAllLabel=asString(t)}get checkedMemberPath(){return this._msLbx.checkedMemberPath}set checkedMemberPath(t){this._msLbx.checkedMemberPath=asString(t)}get maxHeaderItems(){return this._maxHdrItems}set maxHeaderItems(t){if(this._maxHdrItems!=t){this._maxHdrItems=asNumber(t);this._updateHeader()}}get headerFormat(){return this._hdrFmt}set headerFormat(t){if(t!=this._hdrFmt){this._hdrFmt=asString(t);this._updateHeader()}}get headerFormatter(){return this._hdrFormatter}set headerFormatter(t){if(t!=this._hdrFormatter){this._hdrFormatter=asFunction(t);this._updateHeader()}}get checkedItems(){return this._msLbx.checkedItems}set checkedItems(t){this._msLbx.checkedItems=null==t?[]:asArray(t);this._updateHeader()}onCheckedItemsChanged(t){this.checkedItemsChanged.raise(this,t)}dispose(){this._lbx.dispose();super.dispose()}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);setTimeout(()=>{if(this.isDroppedDown&&this.containsFocus())if(this.showFilterInput&&!this.isTouching)this._msLbx._filter.focus();else{let t=this.listBox;if(t.selectedIndex<0){let e=0,s=t.checkedItems;s.length&&(e=t.collectionView.items.indexOf(s[0]));t.selectedIndex=Math.max(0,e)}t.showSelection(!0);t.focus()}})}onLostFocus(){this._msLbx.onLostFocus();this.isDroppedDown=!1;super.onLostFocus()}_createDropDown(){let t=createElement("<div></div>",this._dropDown);this._msLbx=new MultiSelectListBox(t);this._lbx=this._msLbx.listBox;let e=this.hostElement;this._lbx.hostElement.id=getUniqueId(e.id+"_listbox");this._lbx.itemsChanged.addHandler(()=>{this.isDroppedDown&&this.refresh()});super._createDropDown()}_updateBtnAria(){let t=this._btn.querySelector("button"),e=this.isDroppedDown,s=this._lbx?this._lbx.hostElement:null,i=s?s.id:null;setAttribute(t,"aria-expanded",e);setAttribute(t,"aria-controls",e?i:null)}_updateTbxAria(){let t=this._tbx,e=this.isDroppedDown,s=this._lbx?this._lbx.hostElement:null,i=s?s.id:null;setAttribute(t,"aria-expanded",e);setAttribute(t,"aria-controls",e?i:null)}get isReadOnly(){return this._readOnly}set isReadOnly(t){this._readOnly=asBoolean(t);toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly)}refresh(t=!0){super.refresh(t);this.hostElement&&this._updateHeader()}_setText(t,e){}_keydown(t){const e=t.altKey&&(38===t.keyCode||40===t.keyCode);if(this.isDroppedDown&&e&&this.showFilterInput){this.isDroppedDown=!1;t.preventDefault()}else{super._keydown(t);hasClass(this._tbx,"wj-grid-ime")||!t.defaultPrevented&&hasItems(this.collectionView)&&t.keyCode>32&&123!==t.keyCode&&(this.isDroppedDown=!0)}}_hasItems(){let t=this.collectionView,e=t?t.sourceCollection:null;return hasItems(t)||e&&e.length&&this.showFilterInput}_updateHeader(t=!0,e=!0){let s="";if(isFunction(this._hdrFormatter))s=this._hdrFormatter(this);else{let t=this.checkedItems,e=[];if(this.displayMemberPath){let s=new Binding(this.displayMemberPath);e=t.reduce((t,e)=>{(e.binding?t.find(t=>t.binding===e.binding):t.find(t=>s.getValue(t)===s.getValue(e)))||t.push(e);return t},[]);t=e}if(t.length>0)if(t.length<=this._maxHdrItems){if(this.headerPath){let e=new Binding(this.headerPath);t=t.map(t=>e.getValue(t))}else if(this.displayMemberPath){let e=new Binding(this.displayMemberPath);t=t.map(t=>e.getValue(t))}this.isContentHtml&&(t=t.map(t=>toPlainText(t)));this.trimText&&(t=t.map(t=>t?t.toString().trim():""));s=t.join(", ")}else s=format(this.headerFormat||culture.MultiSelect.itemsSelected,{count:t.length})}let i=this.inputElement;if(s!=i.value){i.value=s;this.onTextChanged()}t&&this._lbx._updateCheckedList(this.checkedItems);this._updateState()}getAriaLabelForScreenReader(){return culture.MultiSelect.ariaLabels.multiSelect}}MultiSelect._DEF_CHECKED_PATH="$checked";MultiSelect._ctrlTemplate="";_addCultureInfo("Menu",{ariaLabels:{menuButton:"Menu"}});export class Menu extends ComboBox{constructor(t,e){super(t);this._closing=!1;this._cmd=null;this._cmdPath=null;this._cmdParamPath=null;this._subPath=null;this._owner=null;this._isButton=!1;this._keepOpen=!1;this._openOnHover=!1;this._closeOnLeave=!0;this._subMenu=null;this._hoverEnterBnd=this._hoverEnter.bind(this);this._hoverLeaveBnd=this._hoverLeave.bind(this);this._hoverOverBnd=this._hoverOver.bind(this);this._ariaLabel=culture.Menu.ariaLabels.menuButton;this._aFEnabledItem=!1;this._parentMenu=null;this.itemClicked=new Event;Menu._MenuInstanceCount++;let s=this.hostElement,i=this._tbx,n=this._lbx,l=this.dropDown;addClass(s,MenuClsNames.hostElement);i.style.display="none";let a=`<div wj-part="header" class="${InputFormElementsClsNames.formControl}"/>`;this._hdr=this._elRef=createElement(a);i.parentElement.insertBefore(this._hdr,i);removeChild(i);this.isRequired=!1;if("SELECT"==this._orgTag){this.header=s.getAttribute("header");this._lbx.itemsSource&&(this.commandParameterPath="cmdParam")}this.isContentHtml=!0;this.maxDropDownHeight=500;this.addEventListener(this._hdr,"click",t=>{if(!t.defaultPrevented){this._clearHover(t);if(this._isButton){this.isDroppedDown=!1;this._raiseCommand()}else this.isDroppedDown=!this.isDroppedDown}});this.addEventListener(this._hdr,"mousedown",t=>{t.defaultPrevented||this._clearHover(t)});n.lostFocus.addHandler(()=>{this.containsFocus()||(this.isDroppedDown=!1)});addClass(l,MenuClsNames.menuItems);n.formatItem.addHandler(this._formatMenuItem.bind(this));this.initialize(e);setAttribute(l,"role","menu");this._updateBtnAria();this._updateHdrAria();n.tabOrder=0;this._updateLbxAria()}static get controlTemplate(){Menu._ctrlTemplate||(Menu._ctrlTemplate=ComboBox.controlTemplate);return Menu._ctrlTemplate}static set controlTemplate(t){Menu._ctrlTemplate=t}_updateBtnAria(){let t=this._btn.querySelector("button"),e=this.dropDown;setAttribute(t,"aria-expanded",this.isDroppedDown);setAttribute(t,"aria-haspopup","menu");setAttribute(t,"aria-owns",e.id);setAttribute(t,"aria-controls",e.id)}_updateHdrAria(){let t=this.dropDown,e=this.isDisabled?-1:this._orgTabIndex;setAttribute(this._hdr,"role","button");setAttribute(this._hdr,"tabindex",e);setAttribute(this._hdr,"aria-label",this._ariaLabel);if(this.isButton){setAttribute(this._hdr,"aria-expanded");setAttribute(this._hdr,"aria-haspopup");setAttribute(this._hdr,"aria-owns");setAttribute(this._hdr,"aria-controls")}else{setAttribute(this._hdr,"aria-expanded",this.isDroppedDown);setAttribute(this._hdr,"aria-haspopup","menu");setAttribute(this._hdr,"aria-owns",t.id);setAttribute(this._hdr,"aria-controls",t.id)}}_updateLbxAria(){let t=this._lbx,e=this.isDisabled?-1:t.tabOrder;t.itemRole="menuitem";t.tabOrder=e}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){if(t!=this._ariaLabel){this._ariaLabel=t;setAttribute(this._hdr,"aria-label",this._ariaLabel)}}get autoSelectOnFocus(){return this._aFEnabledItem}set autoSelectOnFocus(t){this._aFEnabledItem=t}get header(){return this._hdr.innerHTML}set header(t){this._hdr.innerHTML=asString(t)}get command(){return this._cmd}set command(t){this._cmd=t}get commandPath(){return this._cmdPath}set commandPath(t){this._cmdPath=asString(t)}get commandParameterPath(){return this._cmdParamPath}set commandParameterPath(t){this._cmdParamPath=asString(t)}get subItemsPath(){return this._subPath}set subItemsPath(t){if(t!=this._subPath){this._subPath=t;this.refresh(!0)}}get openOnHover(){return this._openOnHover}set openOnHover(t){this._openOnHover=asBoolean(t);this._updateHoverEvents()}get closeOnLeave(){return this._closeOnLeave}set closeOnLeave(t){this._closeOnLeave=asBoolean(t);this._updateHoverEvents()}get isButton(){return this._isButton}set isButton(t){this._isButton=asBoolean(t);this._updateHdrAria()}get keepOpen(){return this._keepOpen}set keepOpen(t){this._keepOpen=asBoolean(t)}get owner(){return this._owner}set owner(t){this._owner=asType(t,HTMLElement,!0);this._enableDisableItems()}show(t){if(!this.isDroppedDown){let e=this._lbx._ignoredItemChangedEvents;this._lbx._ignoredItemChangedEvents=!0;this.selectedIndex=-1;this._lbx._ignoredItemChangedEvents=e;if(this.onIsDroppedDownChanging(new CancelEventArgs)){let e=this.dropDown,s=this.owner;!s&&t instanceof MouseEvent&&(s=t.target);s instanceof HTMLElement&&(e[Control._OWNR_KEY]=s);if(t instanceof MouseEvent&&this.openOnHover&&this.closeOnLeave){let e=2;t=new Point(t.pageX-pageXOffset-e,t.pageY-pageYOffset-e)}showPopup(e,t,!1,this.isAnimated);this.onIsDroppedDownChanged()}}}hide(){if(this.isDroppedDown&&this.onIsDroppedDownChanging(new CancelEventArgs)){hidePopup(this.dropDown);this.onIsDroppedDownChanged()}}onItemClicked(t){this.itemClicked.raise(this,t)}refresh(t=!0){super.refresh(t);this.hostElement&&this._enableDisableItems()}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);this._updateBtnAria();this._updateHdrAria();if(this.isDroppedDown){this._closing=!0;let t=this._lbx._ignoredItemChangedEvents;this._lbx._ignoredItemChangedEvents=!0;this._defaultItem=this.selectedItem;this.isRequired=!1;this.selectedIndex=-1;this._enableDisableItems();this._closing=!1;this._lbx._ignoredItemChangedEvents=t;if(this._aFEnabledItem){let t=this.dropDown.children;for(let e=0;e<t.length;e++)if(!t[e].classList.contains(ControlStateClsNames.disabled)){this.selectedIndex=e;t[e].focus();break}}else this.dropDown.focus()}else{this._restoreSelectedItem();let t=this._subMenu;t&&(t.isDroppedDown=!1)}}_restoreSelectedItem(){if(!this.selectedItem){let t=this._lbx._checking;this._lbx._checking=!0;this.selectedItem=this._defaultItem;this._lbx._checking=t}}_updateHoverEvents(){let t=this.hostElement,e=this.dropDown,s=this.addEventListener.bind(this),i=this.removeEventListener.bind(this),n="mouseleave";i(t,"mouseenter",this._hoverEnterBnd);i(t,n,this._hoverLeaveBnd);i(e,"mouseover",this._hoverOverBnd);i(e,n,this._hoverLeaveBnd);if(this._openOnHover){s(t,"mouseenter",this._hoverEnterBnd);s(e,"mouseover",this._hoverOverBnd);if(this._closeOnLeave){s(t,n,this._hoverLeaveBnd);s(e,n,this._hoverLeaveBnd)}}}_getSubItems(t){let e=this.subItemsPath,s=t&&e?t[e]:null;return isArray(s)&&s.length?s:null}_formatMenuItem(t,e){let s=e.item;if(this._getSubItems(e.data)){addClass(s,MenuClsNames.subItems);setAttribute(s,"aria-expanded",!1)}else if("-"==s.innerHTML){s.innerHTML="";addClass(s,UtilitesClsNames.separator);setAttribute(s,"role","separator");setAttribute(s,"tabindex")}}_keydown(t){if(!t.defaultPrevented){let e=this._getKeyCode(t);if(this.isDroppedDown)switch(e){case Key.Tab:this.isDroppedDown=!1;this._parentMenu&&this._parentMenu.focus();this.keyActionTab===TabKeyAction.CloseAndKeepFocus&&t.preventDefault();break;case Key.Enter:case Key.Right:if(this._showSubMenu()){t.preventDefault();return}break;case Key.Left:if(this._closeSubMenuAndFocusOwner()){t.preventDefault();return}break;case Key.Escape:this.isDroppedDown=!1;this.focus();this._focusMenuOwner();if(this._parentMenu){this._parentMenu.focus();this._parentMenu.isDroppedDown=!1}t.preventDefault()}if(e==Key.Enter){if(this._isButton){this._restoreSelectedItem();this._raiseCommand();t.preventDefault();return}if(this.isDroppedDown){if(this.selectedIndex>-1){this._raiseCommand();if(this.keepOpen){t.preventDefault();return}}if(this.keepOpen&&this._closeSubMenuAndFocusOwner()){t.preventDefault();return}}else{this.isDroppedDown=!0;t.preventDefault()}}}super._keydown(t)}_afterOpenDropdownByDownArrow(){}_dropDownClick(t){if(!t.defaultPrevented&&t.target!=this.dropDown){this._clearHover(t);if(this._showSubMenu()){t.preventDefault();return}if(this.selectedIndex>-1){this._raiseCommand();if(this.keepOpen){t.preventDefault();return}}}super._dropDownClick(t)}_closeSubMenuAndFocusOwner(){const t=Control.getControl(this.owner);if(!(t instanceof Menu))return!1;const e=t.dropDown,s=t.selectedIndex,i=s>-1?e.children[s]:e;setAttribute(i,"aria-expanded",!1);setAttribute(i,"aria-owns");i.focus();return!0}_showSubMenu(){let t=this._getSubItems(this.selectedItem);if(!t)return null;let e=this.dropDown.children[this.selectedIndex],s=e.getBoundingClientRect(),i=new Point(s.right,s.top);if(0==s.height)return null;let n=this.rightToLeft||"rtl"==this.dropDown.getAttribute("dir");n&&(i.x=s.left);let l=this._subMenu;l&&(l.isDroppedDown=!1);l=new Menu(document.createElement("div"),{owner:this.hostElement,itemsSource:t,autoSelectOnFocus:this._aFEnabledItem,keepOpen:this.keepOpen,itemClicked:(t,e)=>{this.itemClicked.raise(t,e)},formatItem:(t,e)=>{this.formatItem.raise(t,e)}});l._parentMenu=this._parentMenu||this;if(e){setAttribute(e,"aria-expanded",!0);setAttribute(e,"aria-owns",l.dropDown.id)}let a=this.collectionView,h=l.collectionView;a&&a.filter&&h&&!h.filter&&(h.filter=a.filter);"displayMemberPath,selectedValuePath,isContentHtml,command,commandPath,commandParameterPath,maxDropDownWidth,maxDropDownHeight,dropDownCssClass,isAnimated,subItemsPath,openOnHover,closeOnLeave".split(",").forEach(t=>{l[t]=this[t]});let r=l.dropDown;setAttribute(r,"dir",n?"rtl":null);l.show(i);l._rtlDir=n;r[Control._OWNR_KEY]=this.dropDown;return l}_raiseCommand(t){let e=this.selectedItem,s=this._getSubItems(e),i=this._getCommand(e);if(i&&!s){let t=this._getCommandParm(e);if(!this._canExecuteCommand(i,t))return;this._executeCommand(i,t)}let n=this.headerPath;if(n){let t=new Binding(n).getValue(e);t=null==t?"":t.toString();this.header=this.isContentHtml?t:escapeHtml(t)}this.onItemClicked(t);if(this.containsFocus()){let t=this;for(;t&&t.owner;){let e=Control.getControl(t.owner);if(!(e instanceof Menu))break;t=e}if(this.keepOpen){this._enableDisableItems();this._lbx.focus()}else{t.isDroppedDown=!1;t.focus();this._focusMenuOwner()}}}_focusMenuOwner(){let t=this.owner;!t&&this.dropDown&&(t=this.dropDown[Control._OWNR_KEY]);if(!this.containsFocus()&&t instanceof HTMLElement&&t.offsetHeight)if(isIE){let e=document.documentElement,s=e.scrollLeft,i=e.scrollTop;t.focus();e.scrollLeft=s,e.scrollTop=i}else t.focus()}_getCommand(t){let e=t&&this._cmdPath?t[this._cmdPath]:null;return e||this._cmd}_getCommandParm(t){let e=this._cmdParamPath;return t&&e?t[e]:t}_executeCommand(t,e){t&&!isFunction(t)&&(t=t.executeCommand);isFunction(t)&&t(e)}_canExecuteCommand(t,e){if(t){let s=t.canExecuteCommand;if(isFunction(s))return s(e)}return!0}_enableDisableItems(){if(this.collectionView&&(this._cmd||this._cmdPath)){let t=this.collectionView.items;for(let e=0;e<t.length;e++){let s=t[e],i=this._getCommand(s);if(i){let t=this._lbx.hostElement.children[e],n=this._getCommandParm(s);toggleClass(t,ControlStateClsNames.disabled,!this._canExecuteCommand(i,n))}}}}_clearHover(t){this._toHover&&clearTimeout(this._toHover);this._toHover=null;Menu._evtHover=t}_isTargetDisabled(t){return hasClass(t.target,ControlStateClsNames.disabled)}_hoverEnter(t){this._clearHover(t);this._toHover=setTimeout(()=>{this._toHover=null;this.isDroppedDown=!0},Control._HOVER_DELAY)}_hoverOver(t){this._clearHover(t);this._toHover=setTimeout(()=>{this._toHover=null;let e=this.listBox.indexOf(t.target);if(e>-1&&!hasClass(t.target,ControlStateClsNames.disabled)){this.selectedIndex=e;this._subMenu=this._showSubMenu()}},Control._HOVER_DELAY)}_hoverLeave(t){this._clearHover(t);this.isDroppedDown&&(this._toHover=setTimeout(()=>{let e=(t=Menu._evtHover)?document.elementFromPoint(t.clientX,t.clientY):null,s=closest(e,`.${ListBoxClsNames.hostElement}.${MenuClsNames.menuItems}`),i=this._subMenu;if(!s&&!contains(this.hostElement,e,!0)){this.isDroppedDown=!1;i&&(i.isDroppedDown=!1)}},Control._LEAVE_DELAY))}_setIsDisabled(t){super._setIsDisabled(t);setAttribute(this.hostElement,"tabindex",-1);this._updateHdrAria();this._updateLbxAria()}_setTabOrder(t){super._setTabOrder(t);setAttribute(this.hostElement,"tabindex",-1);this._updateHdrAria();this._updateLbxAria()}_getRtlStates(){let t=this.hostElement;return t&&t.isConnected?super._getRtlStates():null!=this._rtlDir&&this._rtlDir}dispose(){if(this._subMenu){this._subMenu.dispose();this._subMenu=null}Menu._MenuInstanceCount--;0===Menu._MenuInstanceCount&&Menu._evtHover&&(Menu._evtHover=null);const t=this._lbx;if(t){t.lostFocus.removeHandler(()=>{this.containsFocus()||(this.isDroppedDown=!1)});t.formatItem&&t.formatItem.removeHandler(this._formatMenuItem)}if(this._toHover){clearTimeout(this._toHover);this._toHover=null}this._cmd=null;this._owner=null;this._defaultItem=null;this._hoverEnterBnd=null;this._hoverLeaveBnd=null;this._hoverOverBnd=null;super.dispose()}}Menu._MenuInstanceCount=0;Menu._ctrlTemplate="";_addCultureInfo("InputTime",{ariaLabels:{inputTime:"Input Time",inputTimeInput:"InputTime Input"}});export class InputTime extends ComboBox{constructor(t,e){super(t);this._format="t";this._inputElementAriaLabel=culture.InputTime.ariaLabels.inputTimeInput;this.valueChanged=new Event;addClass(this.hostElement,InputTimeClsNames.hostElement);this.isEditable=!0;this._value=DateTime.newDate();this._min=this._max=null;this._msk=new _MaskProvider(this._tbx);isIE9()||(this._tbx.type="tel");if("INPUT"==this._orgTag){let t=this._tbx.getAttribute("value");t&&(this.value=Globalize.parseDate(t,"HH:mm:ss"))}this.step=15;this.autoExpandSelection=!0;this.initialize(e);this._commitText();this._updateInputAriaLabel()}static get controlTemplate(){InputTime._ctrlTemplate||(InputTime._ctrlTemplate=ComboBox.controlTemplate);return InputTime._ctrlTemplate}static set controlTemplate(t){InputTime._ctrlTemplate=t}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){this._tbx.type=asString(t)}get value(){return this._value}set value(t){(t=asDate(t,!this.isRequired))&&(t=this._clamp(t));this._setText(t?Globalize.format(t,this.format):"",!0,!0);this.selectedItem&&this.selectedItem.value&&(t=DateTime.fromDateTime(t,this.selectedItem.value));if(t!=this._value&&!DateTime.equals(t,this._value)){this._value=t;this.onValueChanged()}}get text(){return this._tbx.value}set text(t){if(t!=this.text&&(this.text||!this.isRequired)){this._setText(t,!0);this._commitText()}!this.text&&this.isRequired&&(this.selectedIndex=this._oldIndexToBeRestoredOnBlur<0?0:this._oldIndexToBeRestoredOnBlur)}get min(){return this._min}set min(t){this._min=asDate(t,!0);this.isDroppedDown=!1;this._updateItems()}get max(){return this._max}set max(t){this._max=asDate(t,!0);this.isDroppedDown=!1;this._updateItems()}get step(){return this._step}set step(t){if(t!=this.step){this._step=asNumber(t,!0);this.isDroppedDown=!1;this._updateItems()}}get format(){return this._format}set format(t){if(t!=this.format){this._format=asString(t);this._tbx.value=Globalize.format(this.value,this.format);hasItems(this.collectionView)&&this._updateItems()}}get mask(){return this._msk.mask}set mask(t){this._msk.mask=asString(t)}onLostFocus(){super.onLostFocus()}onValueChanged(t){this.valueChanged.raise(this,t)}onItemsSourceChanged(t){super.onItemsSourceChanged(t);this._hasCustomItems=null!=this.itemsSource}refresh(t=!0){super.refresh(t);if(this.hostElement){this._msk.refresh();this._tbx.value=Globalize.format(this.value,this.format);this._updateItems()}}onSelectedIndexChanged(t){if(this.selectedIndex>-1&&!this._settingText){let t=this.value?this.value:DateTime.newDate(),e=null!=this.selectedItem.value?this.selectedItem.value:Globalize.parseDate(this.text,this.format,this.value);this.value=DateTime.fromDateTime(t,e)}super.onSelectedIndexChanged(t)}_clamp(t){null!=this._min&&this._getTime(t)<this._getTime(this._min)&&(t=DateTime.fromDateTime(t,this._min));null!=this._max&&this._getTime(t)>this._getTime(this._max)&&(t=DateTime.fromDateTime(t,this._max));return t}_wheel(t){if(this.handleWheel&&!t.defaultPrevented&&!this.isDroppedDown&&this.value&&this._canChangeValue()&&this.containsFocus()&&this.isEditable){let e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=clamp(-t.deltaY,-1,1),l=(this.value,culture.Globalize.calendar.patterns[this.format]);null==l&&(l=this.format);let a=l.match(getSpecialCharsRegex());if(i-s===e.value.length&&isNumber(this.step)&&this.step>0){let t=DateTime.addMinutes(this.value,this.step*-n);t=this._clamp(t);this.value=t;this.selectAll()}else this._updateTimeValue(n,a,l);t.preventDefault()}super._wheel(t)}_updateInputSelection(t){if(this._delKey)super._updateInputSelection(t);else{let e=this._tbx.value;for(;t<e.length&&!e[t].match(/[a-z0-9]/i);)t++;setSelectionRange(this._tbx,t,this._tbx.value.length)}}_updateItems(){if(this._hasCustomItems)return;let t=[],e=new Date,s=new Date(e.getFullYear(),e.getMonth(),e.getDate()),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59),n=this.step;this.min&&s.setHours(this.min.getHours(),this.min.getMinutes(),this.min.getSeconds());this.max&&i.setHours(this.max.getHours(),this.max.getMinutes(),this.max.getSeconds());if(isNumber(n)&&n>=1)for(let e=s;e<=i;e=DateTime.addMinutes(e,n))t.push({value:e,text:Globalize.format(e,this.format)});let l=this.value;this._settingText=!0;this.displayMemberPath="text";this.selectedValuePath="text";this.itemsSource=t;this._hasCustomItems=!1;this._settingText=!1;!l&&this.isRequired||(this.value=l)}_getTime(t){return 3600*t.getHours()+60*t.getMinutes()+t.getSeconds()}_getText(){let t=Globalize.format,e=this._format;return t(this.value,e)}_canChangeValue(){return!this.isReadOnly&&!this.isDisabled}getSeconds(t){return 3600*t.getHours()+60*t.getMinutes()+t.getSeconds()}_keydown(t){if(!(t.defaultPrevented||t.altKey||t.ctrlKey||t.metaKey)){if(this._isHiddenEditor())return;switch(t.keyCode){case Key.Enter:this._commitText(void 0,!0);this.selectAll();break;case Key.Escape:this.text=Globalize.format(this.value,this.format);this.selectAll();break;case Key.Up:case Key.Down:if(!this.isDroppedDown&&this.value&&this._canChangeValue()&&this.isEditable){let e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=t.keyCode==Key.Up?1:-1,l=culture.Globalize.calendar.patterns[this.format];null==l&&(l=this.format);let a=l.match(getSpecialCharsRegex());if(i-s==e.value.length)super._keydown(t);else{if(!(1==n&&(null===this.max||this.getSeconds(this.value)<this.getSeconds(this.max))||-1==n&&(null===this.min||this.getSeconds(this.value)>this.getSeconds(this.min))))return;this._updateTimeValue(n,a,l)}t.preventDefault()}}}super._keydown(t)}_updateTimeValue(t,e,s){let i=this._tbx,n=i.selectionStart,l=i.value,a=this.value,h={},r={},o=0,d=0,u=0,c=[],_=[],p=i.value.match(getSpecialCharsRegex());if(null==e||null==p){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{let n=t.replaceAll('"',""),a=s.substring(o),u=l.substring(d),c=a.indexOf(t),_=u.indexOf(n),p=a.substring(0,c);h[p]=o;r[p]=d;o=o+c+t.length;d=d+_+n.length;if(i==e.length-1&&-1!=_){p=s.substring(o);h[p]=o;r[p]=d}});c=Object.keys(h);_=Object.values(r)}let m=_.filter(t=>n>=parseInt(t.toString()));m.length>0&&(u=m.length-1);let g=c[u];-1!=g.indexOf("h")||-1!=g.indexOf("H")?a=DateTime.addHours(this.value,t):-1!=g.indexOf("m")?a=DateTime.addMinutes(this.value,t):-1!=g.indexOf("s")?a=DateTime.addSeconds(this.value,t):-1!=g.indexOf("t")&&(a=this.value.getHours()>=12?DateTime.addHours(this.value,-12):DateTime.addHours(this.value,12));a.getDate()!=(new Date).getDate()&&(a=DateTime.fromDateTime(new Date,a));this.value=a;this._reselectText(e,u)}_reselectText(t,e){let s=this._getText(),i=this._tbx,n=0,l=-1,a=-1;t.forEach((t,i)=>{let h=t.replaceAll('"',""),r=s.substring(n),o=r.indexOf(h),d=r.substring(0,o),u=""==d?r.length:d.length;if(i==e&&-1==l){l=n;a=l+u}n=n+o+h.length});if(-1==l){l=n;a=i.value.length}setSelectionRange(i,l,a)}_commitText(t,e){if(this.text||this.isRequired){let t=this.value?Globalize.format(this.value,this.format):"";if(this.text!=t){let s=this.selectedItem&&this.selectedItem.value?this.selectedItem.value:Globalize.parseDate(this.text,this.format,this.value);const i=this._shouldRaiseInvalidInput(e);if(s){!DateTime.sameTime(s,this._clamp(s))?i&&this.onInvalidInput(new CancelEventArgs)&&(this.value=DateTime.fromDateTime(this.value,s)):this.value=DateTime.fromDateTime(this.value,s)}else i&&this.onInvalidInput(new CancelEventArgs)&&(this.text=t)}}else this.value=null}_copy(t,e){if("text"===t){(e||"").toString()!==this.text&&this._setText(e,!0);return!0}return!1}getAriaLabelForScreenReader(){return culture.InputTime.ariaLabels.inputTime}_input(t){this._draggingText&&(""===this.text?this._emptyValueAction=!0:this._emptyValueAction=!1);this._updateDropDownWhenInput();this._setText(""!=this._textIsComposing?this._textIsComposing:this.text,!1);""!=this.text&&(this._emptyValueAction=!1);this._draggingText=!1}}InputTime._ctrlTemplate="";_addCultureInfo("InputDateTime",{ariaLabels:{inputDateTimeInput:"InputDateTime Input",tglDate:"Toggle Calendar",tglTime:"Toggle Time List"}});export class InputDateTime extends InputDate{constructor(t,e){super(t);this._inputAriaLabel=culture.InputDateTime.ariaLabels.inputDateTimeInput;addClass(this.hostElement,InputDateTimeClsNames.hostElement);let s=culture.InputDateTime.ariaLabels;setAriaLabel(this._btn,s.tglDate);setAttribute(this._btn,"aria-haspopup","dialog");setAttribute(this._btn,"aria-expanded",!1);this._updateInputAriaLabel();this.value=new Date;this.format="g";this.isDroppedDownChanged.addHandler(this.inputDateTimeIsDroppedDownChanged,this);this._inputTime=new InputTime(document.createElement("div"),{valueChanged:t=>{let e=this.rangeEnd;this.value=DateTime.fromDateTime(this.value,t.value);this.calendar._rngMode()&&e&&(this.rangeEnd=DateTime.fromDateTime(e,t.value))},isDroppedDownChanged:t=>{t.listBox.containsFocus()&&this.inputElement.focus();this._selectAll();this._updateTbxAria();this.inputDateTimeIsDroppedDownChanged()},keyActionPrintCharacters:0,keyActionTab:0});this._inputTime.dropDown.id=getUniqueId(this.hostElement.id+"_dropdown");let i=this.addEventListener.bind(this);this._btnTm=this.hostElement.querySelector('[wj-part="btn-tm"]');i(this._btnTm,"mousedown",t=>{this._isTouchMoved()||this._btnclick(t)});setAriaLabel(this._btnTm,s.tglTime);setAttribute(this._btnTm,"aria-haspopup","listbox");setAttribute(this._btnTm,"aria-expanded",!1);this._ddDate=this._dropDown;let n=this._ddTime=this._inputTime.dropDown;i(n,"keydown",this._keydown.bind(this),!0);i(n,"blur",()=>{this._updateFocusState()},!0);i(n,"click",t=>{t.defaultPrevented||t.target!=n&&this.hostElement.focus()},!0);this.initialize(e);this._tbx.value!==this._oldText&&this._commitText()}static get controlTemplate(){InputDateTime._ctrlTemplate||(InputDateTime._ctrlTemplate=`<div class="${ControlClsNames.template}"><div class="${InputClsNames.input}"><div class="${InputClsNames.inputGroup} ${InputClsNames.inputBtnVisible}"><input wj-part="input" type="text" class="${InputFormElementsClsNames.formControl}"/><span class="${InputClsNames.inputGroupBtn}"><button wj-part="btn" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.calendar}></span></button><button wj-part="btn-tm" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.clock}></span></button></span></div></div><div wj-part="dropdown" class="${ControlClsNames.content} ${DropDownClsNames.dropDownPanel}"></div></div>`);return InputDateTime._ctrlTemplate}static set controlTemplate(t){InputDateTime._ctrlTemplate=t}get timeMin(){return this._inputTime.min}set timeMin(t){this._inputTime.min=t}get timeMax(){return this._inputTime.max}set timeMax(t){this._inputTime.max=t}get timeFormat(){return this._inputTime.format}set timeFormat(t){this._inputTime.format=t}get timeStep(){return this._inputTime.step}set timeStep(t){this._inputTime.step=t;this._btnTm.style.display=isNumber(t)&&t>0?"":"none"}get inputTime(){return this._inputTime}_fromDateTime(t){return t}_btnclick(t){this._setDropDownByEvent(t);super._btnclick(t)}dispose(){this._setDropdown(this._ddDate);super.dispose();this._inputTime.dispose()}refresh(t=!0){this._inputTime.refresh();super.refresh(t)}_updateBtn(){super._updateBtn();if(this._btnTm){this._btnTm.tabIndex=this._btn.tabIndex;this._btnTm.parentElement.style.display=this._btn.style.display}}_setDropdown(t){if(this._dropDown==t)return!1;this.isDroppedDown&&(this.isDroppedDown=!1);var e=this.dropDownCssClass;this.dropDownCssClass="";this._dropDown=t;this.dropDownCssClass=e;return!0}_updateDropDown(){let t=this._inputTime;if(this._dropDown==t.dropDown){this._commitText();super._updateDropDown();t.isRequired=this.isRequired&&null!=this.value;t.value=this.value;this.isDroppedDown&&t.listBox.showSelection()}else super._updateDropDown()}_mouseWheel(t){if(this.handleWheel&&!t.defaultPrevented&&!this.isDroppedDown&&this.containsFocus()&&null!=this.value&&this._canChangeValue()){let e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=clamp(-t.deltaY,-1,1),l=this.value,a=Globalize.getFullFormat(this.format||Globalize.DefaultDateFormat);null==a&&(a=this.format);let h=a.match(getSpecialCharsRegex());if(i-s===e.value.length&&null!=h||this.selectionMode==DateSelectionMode.Range){l=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,n):DateTime.addDays(this.value,n);this.value=l;let t=this._getText();setSelectionRange(e,0,t.length)}else(1==n&&(null===this.max||this.value<this.max)||-1==n&&(null===this.min||this.value>this.min))&&this._updateDateTimeValue(n,h,a);t.preventDefault()}}_keydown(t){if(!(t.defaultPrevented||t.altKey||t.ctrlKey||t.metaKey)){if(this._isHiddenEditor())return;switch(t.keyCode){case Key.Up:case Key.Down:if(t.keyCode===Key.Up&&this.keyActionUpArrow===KeyAction.OpenDropdown||t.keyCode===Key.Down&&this.keyActionDownArrow===KeyAction.OpenDropdown)break;if(!this.isDroppedDown&&this.value&&this._canChangeValue()){let e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=(e.value,t.keyCode==Key.Up?1:-1),l=this.value,a=Globalize.getFullFormat(this.format||Globalize.DefaultDateFormat);if("g"==this.format&&a.includes("г")){let t=/\"г.\" /;a=a.replace(t,"")}null==a&&(a=this.format);let h=a.match(getSpecialCharsRegex());if(i-s===e.value.length&&null!=h||this.selectionMode==DateSelectionMode.Range){l=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,n):DateTime.addDays(this.value,n);this.value=l;let t=this._getText();setSelectionRange(e,0,t.length)}else(1==n&&(null===this.max||this.value<this.max)||-1==n&&(null===this.min||this.value>this.min))&&this._updateDateTimeValue(n,h,a);t.preventDefault()}break;case Key.Enter:case Key.Space:let e=t.target;if(e===this._btn||e===this._btnTm){this._setDropDownByEvent(t);this.isDroppedDown=!0;t.preventDefault()}}}if(!t.defaultPrevented&&t.altKey&&this.isDroppedDown&&("ArrowUp"===t.key||"ArrowDown"===t.key)){const e=this.dropDown===this._ddDate?this._ddTime:this._ddDate;this._setDropdown(e);this.isDroppedDown=!0;t.preventDefault()}super._keydown(t)}_updateDateTimeValue(t,e,s){let i=this._tbx,n=i.selectionStart,l=i.value,a=this.value,h={},r={},o=0,d=0,u=0,c=[],_=[],p=i.value.match(getSpecialCharsRegex());if(null==e||null==p){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{let n=t.replaceAll('"',""),a=s.substring(o),u=l.substring(d);if(u.startsWith("г.")){u=u.replace("г. ","");d+="г. ".length}let c=a.indexOf(t),_=u.indexOf(n);if(-1==_){let t=p[i];_=u.indexOf(t)}let m=a.substring(0,c);if(""!=m){h[m]=o;r[m]=d}o=o+c+t.length;d=d+_+n.length;if(i==e.length-1&&-1!==_){m=s.substring(o);h[m]=o;r[m]=d}});c=Object.keys(h);_=Object.values(r)}let m=_.filter(t=>n>=parseInt(t.toString()));m.length>0&&(u=m.length-1);let g=new Date,b=new Date;null!==this.timeMax&&(g=new Date(this.value.getFullYear(),this.value.getMonth(),this.value.getDate(),this.timeMax.getHours(),this.timeMax.getMinutes(),this.timeMax.getSeconds()));null!==this.timeMin&&(b=new Date(this.value.getFullYear(),this.value.getMonth(),this.value.getDate(),this.timeMin.getHours(),this.timeMin.getMinutes(),this.timeMin.getSeconds()));let f=c[u];if(-1!=f.indexOf("d"))a=DateTime.addDays(this.value,t);else if(-1!=f.indexOf("M"))a=DateTime.addMonths(this.value,t);else if(-1!=f.indexOf("y"))a=DateTime.addYears(this.value,t);else if(1==t&&(null===this.timeMax||this.value<g)||-1==t&&(null===this.timeMin||this.value>b)){-1!=f.indexOf("h")||-1!=f.indexOf("H")?a=DateTime.addHours(this.value,t):-1!=f.indexOf("m")?a=DateTime.addMinutes(this.value,t):-1!=f.indexOf("s")?a=DateTime.addSeconds(this.value,t):-1!=f.indexOf("t")&&(a=this.value.getHours()>=12?DateTime.addHours(this.value,-12):DateTime.addHours(this.value,12));(this.timeMax&&a>g||this.timeMin&&a<b)&&(a=this.value)}this.value=a;this._reselectText(e,u)}_commitText(t,e){let s=this._tbx.value,i=Globalize.parseDate(s,this.format,this.value),n=new Date,l=new Date;if(i){null!==this.timeMax&&(n=new Date(i.getFullYear(),i.getMonth(),i.getDate(),this.timeMax.getHours(),this.timeMax.getMinutes(),this.timeMax.getSeconds()));null!==this.timeMin&&(l=new Date(i.getFullYear(),i.getMonth(),i.getDate(),this.timeMin.getHours(),this.timeMin.getMinutes(),this.timeMin.getSeconds()));(this.timeMax&&i>n||this.timeMin&&i<l)&&(this.value=DateTime.fromDateTime(i,this.value));super._commitText(t,e)}else super._commitText(t,e)}_updateTbxAria(){super._updateTbxAria();if(!this._inputTime)return;let t=this._tbx,e=this._inputTime._lbx,s=e.selectedIndex,i=e.hostElement?e.hostElement.children:null,n=s>-1&&s<i.length?i[s].id:null;setAttribute(t,"aria-activedescendant",this.isDroppedDown&&this.dropDown===this._ddTime&&n&&n.length?n:null);setAttribute(t,"aria-haspopup",this.inputTime.isDroppedDown?"listbox":"dialog")}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){const e=asEnum(t,TabKeyAction);this._keyActionTab=e;this.inputTime.keyActionTab=e}_setDropDownByEvent(t){let e=closest(t.target,"button")==this._btn?this._ddDate:this._ddTime;this._setDropdown(e)}_updateBtnAria(){let t=this._btn,e=this.isDroppedDown,s=this.dropDown?this.dropDown.id:null,i=this._btnTm;const n=e&&this.dropDown===this._ddDate,l=e&&this.dropDown===this._ddTime;setAttribute(t,"aria-expanded",!!n);setAttribute(t,"aria-controls",n?s:null);setAttribute(i,"aria-expanded",!!l);setAttribute(i,"aria-controls",l?s:null)}inputDateTimeIsDroppedDownChanged(){const t=this.dropDown===this._ddDate?this._btn:this._btnTm;toggleClass(t,InputDateTimeClsNames.showDropDownButton,this.isDroppedDown)}}InputDateTime._ctrlTemplate="";_addCultureInfo("AutoComplete",{ariaLabels:{autoCompleteInput:"AutoComplete Input",autoComplete:"Auto Complete"}});export class AutoComplete extends ComboBox{constructor(t,e){super(t);this._cssMatch=ComboBoxClsNames.stateMatch;this._minLength=2;this._maxItems=6;this._itemCount=0;this._beginsWith=!1;this._delay=Control._SEARCH_DELAY;this._selItems=null;this._query="";this._inCallback=!1;this._srchProps=[];this._oldSelectedIndex=-1;this._inputElementAriaLabel=culture.AutoComplete.ariaLabels.autoCompleteInput;this._isBlurInput=!1;addClass(this.hostElement,AutoCompleteClsNames.hostElement);this._bsCollapse=!1;this.isEditable=!0;this.isRequired=!1;this.listBox.formatItem.addHandler(this._formatListItem,this);this._itemsSourceFnCallbackBnd=this._itemSourceFunctionCallback.bind(this);this.initialize(e);this._updateInputAriaLabel()}static get controlTemplate(){AutoComplete._ctrlTemplate||(AutoComplete._ctrlTemplate=ComboBox.controlTemplate);return AutoComplete._ctrlTemplate}static set controlTemplate(t){AutoComplete._ctrlTemplate=t}get minLength(){return this._minLength}set minLength(t){this._minLength=asNumber(t,!1,!0)}get beginsWithSearch(){return this._beginsWith}set beginsWithSearch(t){this._beginsWith=asBoolean(t)}get maxItems(){return this._maxItems}set maxItems(t){this._maxItems=asNumber(t,!1,!0)}get delay(){return this._delay}set delay(t){this._delay=asNumber(t,!1,!0)}get searchMemberPath(){return this._srchProp}set searchMemberPath(t){this._srchProp=asString(t);this._srchProps=t?t.trim().split(/\s*,\s*/):[]}get itemsSourceFunction(){return this._itemsSourceFn}set itemsSourceFunction(t){if(this._itemsSourceFn!==t){this._itemsSourceFn=asFunction(t);isFunction(this._itemsSourceFn)&&this.itemsSourceFunction(this.text,this.maxItems,this._itemsSourceFnCallbackBnd)}}get cssMatch(){return this._cssMatch}set cssMatch(t){this._cssMatch=asString(t)}onSelectedIndexChanged(t){this._settingText||super.onSelectedIndexChanged(t)}_updateTbxAria(){super._updateTbxAria();let t=this._tbx;setAttribute(t,"aria-autocomplete","list")}_keydown(t){if(!this._isHiddenEditor()){if(!t.defaultPrevented&&this.isDroppedDown)switch(t.keyCode){case Key.Up:case Key.Down:this.selectAll()}super._keydown(t)}}_input(t){this._handleDragTextState();this._updateComponentText();this._updateEmptyValueFlag();this._resetDragState()}_commitText(t){if(t&&this._composing&&this.isDroppedDown&&!isFirefox()&&!isSafari()&&""==this._textIsComposing){this._isBlurInput=!0;this.isDroppedDown=!1;setTimeout(()=>{this.onLostFocus()},this.delay+1)}t&&!this._composing&&(isFirefox()||isSafari())&&getActiveElement()==this.inputElement&&this.onLostFocus()}_setText(t){if(this._isBlurInput&&0==this.text.length){this._tbx.value=t;this._isBlurInput=!1}this.trimText&&!this.containsFocus()&&"string"==typeof t&&(t=t.trim());if(this._composing&&t!=this._oldText){this._oldText=t;this.onTextChanged()}if(!(this._inCallback||this._settingText||(isFirefox()||isSafari())&&this._composing)){this._toSearch||(this._oldSelectedIndex=this.selectedIndex);if(this.selectedIndex>-1&&this._getDisplayText(void 0,void 0,!0)!=t){this._settingText=!0;this.selectedIndex=-1;this._settingText=!1}this._toSearch&&clearTimeout(this._toSearch);if(t!=this._oldText||t!=this.text){"string"!=typeof t&&(t="");let e=this._tbx;const s=this._tbx.selectionStart;e.value!=t&&(e.value=t);this._isWheel&&this.containsFocus()&&this._updateInputSelection(s);this._oldText=t;this.onTextChanged();let i=this.collectionView;if(!t&&i){(this._query||this.selectedIndex<0)&&(this.isDroppedDown=!1);this._query=this._rxHighlight=null;i.filter=null;let t=this.itemsSourceFunction;if(isFunction(t)){this.isDroppedDown=!1;t(this._query,this.maxItems,this._itemsSourceFnCallbackBnd)}if(this.isRequired&&!this.containsFocus()&&!Array.isArray(this._selItems)){const t=this._oldSelectedIndex>-1?this._oldSelectedIndex:0;this.selectedIndex=t}-1==this.selectedIndex&&-1!=this._oldSelectedIndex&&this.onSelectedIndexChanged();return}}if(t!=this._getDisplayText(void 0,void 0,!0)){if(!this.containsFocus()&&this.trimText)if(this.isRequired&&!this.text.trim().length){const t=this._oldSelectedIndex>-1?this._oldSelectedIndex:0;this.selectedIndex=t}else this._tbx.value=this._tbx.value.trim();const i=!this.containsFocus()&&t.length<this.minLength;this.collectionView&&!this.containsFocus()&&(this.collectionView.filter=null);var e=this.indexOf(t,!0),s=this.indexOf(t,!1);if(i)return;if(!this.containsFocus()&&(!t||this.trimText&&!this.text.trim().length||null!=this.collectionView&&e<0&&s<0)&&this.isRequired&&!this.isEditable){const t=this._oldSelectedIndex>-1?this._oldSelectedIndex:hasItems(this.collectionView)?0:-1;t!=this.selectedIndex&&(this.selectedIndex=t)}else if((Array.isArray(this.itemsSource)||"function"==typeof this.itemsSourceFunction)&&!this.containsFocus()&&t&&e<0&&(s<0||s!=e)&&!this.isRequired&&!this.isEditable){this._tbx.value="";this.selectedIndex=-1;this.onSelectedIndexChanged()}else{const e=this._delay>0?setTimeout:(t,e)=>t();this._pendingSearchFn=()=>{this._toSearch=null;let e=this.text;if(!this._composing&&e.trim().length>=this._minLength&&e!=this._query){this._query=e.trim();e=escapeRegExp(e);let t=escapeHtml(e.trim()),s=this.caseSensitiveSearch?"":"i";this._beginsWith||(s+="g");this._rxSrch=this._beginsWith?new RegExp("^"+e+".*",s):new RegExp("(?=.*"+e.replace(/ /g,")(?=.*")+")",s);this._rxHighlight=this._beginsWith?new RegExp("^"+e,s):new RegExp("("+t.replace(/\s+/g,"|")+")",s);let i=this.itemsSourceFunction;isFunction(i)?i(this._query,this.maxItems,this._itemsSourceFnCallbackBnd):this._updateItems()}!t.trim().length&&!this.isEditable&&this.indexOf(t,!0)<0&&(this.selectedIndex=-1);-1==this.selectedIndex&&-1!=this._oldSelectedIndex&&this.onSelectedIndexChanged()};this._toSearch=e(this._pendingSearchFn,this._delay)}}else""===this._tbx.value&&t&&(this._tbx.value=t)}}onLostFocus(t){let e=!1;if(this.isRequired&&!this.isEditable&&this.text&&this.text.length>=this.minLength){e=!0;let t=this.indexOf(this.text,!0);t<0&&(t=this.indexOf(this.text,!1));t>-1&&(this._oldSelectedIndex=t);t<0&&(this._oldSelectedIndex=0)}if(this._toSearch){clearTimeout(this._toSearch);this.text!==this._getDisplayText(void 0,void 0,!0)&&this._pendingSearchFn&&this._pendingSearchFn();e=!1}let s=this.collectionView;if(s&&0===s.items.length){this._oldFilter=s.filter;s.filter=null}super.onLostFocus(t,this._oldSelectedIndex,e)}onGotFocus(t){this._toSearch||(this._oldSelectedIndex=this.selectedIndex);super.onGotFocus(t)}reset(){this._oldSelectedIndex=-1}_itemSourceFunctionCallback(t){this._inCallback=!0;let e=asCollectionView(t||[]);e.moveCurrentToPosition(-1);this.itemsSource=e;this._inCallback=!1;if(this.containsFocus()){let t=this._tbx,e=t.selectionStart,s=t.selectionEnd,i=this.collectionView;this.isDroppedDown=null!=i&&i.items.length>0;setSelectionRange(t,e,s);this.refresh()}}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);if(this.containsFocus()&&!this.isTouching){let t=this.collectionView;if(this.selectedIndex<0&&t){let e=t.items,s=this.text;1==e.length&&e[0]==s?this.selectedIndex=0:setSelectionRange(this._tbx,s.length)}}this._query=""}_updateItems(){let t=this.collectionView;if(t){this._inCallback=!0;t.beginUpdate();this._itemCount=0;t.filter=this._filter.bind(this);t.moveCurrentToPosition(-1);t.endUpdate();this._inCallback=!1;let e=t.items.length,s=this._tbx,i=s.selectionStart,n=s.selectionEnd;this.text.trim()||(e=0);this.isDroppedDown=e>0&&this.containsFocus();e||this.isEditable||(this.selectedIndex=-1);if(1==e&&this.selectedIndex<0){let e=this._getItemText(t.items[0],!1),i=s.value;if(!this.caseSensitiveSearch){e=e.toLowerCase();i=i.toLowerCase()}(e==i||this.trimText&&e.trim()==i)&&(this.selectedIndex=0)}this.isDroppedDown&&setSelectionRange(s,i,n);this.refresh()}}_filter(t){if(this._itemCount>=this._maxItems&&this._query)return!1;let e=[this._getItemText(t,!1)];this._srchProps&&this._srchProps.forEach(s=>{let i=t[s];null!=i&&e.push(i)});this.isContentHtml&&(e=e.map(t=>t.replace(/(<[^>]*>|&[^;]*;)/g,"")));for(let t=0;t<e.length;t++)if(this._rxSrch.test(e[t])){this._itemCount++;return!0}return!1}_getItemText(t,e){let s=t?t.toString():"",i=e&&this.headerPath?this._pathHdr:this._lbx._pathDisplay;if(i){s=i.getValue(t);s=null!=s?s.toString():""}return s}_formatListItem(t,e){this._cssMatch&&this._rxHighlight&&this._query&&(e.item.innerHTML=e.item.innerHTML.replace(this._rxHighlight,(t,e,s,i)=>this._enclosed(i,s,"<",">")||this._enclosed(i,s,"&",";")?t:'<span class="'+this._cssMatch+'">'+t+"</span>"))}_enclosed(t,e,s,i){for(let n=e;n>=0&&t[n]!=i;n--)if(t[n]==s)for(let n=e;n<t.length&&t[n]!=s;n++)if(t[n]==i)return!0;return!1}_wheel(t){super._wheel(t)}getAriaLabelForScreenReader(){return culture.AutoComplete.ariaLabels.autoComplete}_hasCustomFormatItem(){return this.formatItem.getHandler.length>1}}AutoComplete._ctrlTemplate="";_addCultureInfo("MultiAutoComplete",{ariaLabels:{multiAutoCompleteInput:"MultiAutoComplete Input",multiAutoComplete:"MultiAutoComplete",multiAutoCompleteHelperInput:"MultiAutoComplete Helper Input",remove:"Remove"}});export class MultiAutoComplete extends AutoComplete{constructor(t,e){super(t);this._maxSelItems=null;this._lastInputValue="";this._selPath=new Binding(null);this._notAddItm=!1;this._inputElementAriaLabel=culture.MultiAutoComplete.ariaLabels.multiAutoCompleteInput;this._helperInputElementAriaLabel=culture.MultiAutoComplete.ariaLabels.multiAutoCompleteHelperInput;this._ariaLabelledby=null;this.selectedItemsChanged=new Event;addClass(this.hostElement,MultiAutoCompleteClsNames.hostElement);this._wjTpl=this.hostElement.querySelector("."+ControlClsNames.template);this._wjInput=this.hostElement.querySelector("."+InputClsNames.input);this.showDropDownButton=!1;this._selItems=[];this.initialize(e);this.addEventListener(this.hostElement,"keyup",this._keyup.bind(this),!0);this.addEventListener(window,"resize",this._adjustInputWidth.bind(this));this.addEventListener(this._tbx,"focus",()=>{this._itemOff()});this._addHelperInput();this._addScreenReaderHelper();this._initSeltems();this.listBox.itemsChanged.addHandler(()=>{if(-1===this.selectedIndex)return;let t=this.collectionView;(t&&("CollectionView"==t.constructor.name||"ODataVirtualCollectionView"==t.constructor.name)||t.virtualization)&&(this.selectedIndex=-1)});this._refreshHeader();this._updateTabIndex();this._updateInputAriaLabel()}static get controlTemplate(){MultiAutoComplete._ctrlTemplate||(MultiAutoComplete._ctrlTemplate=AutoComplete.controlTemplate);return MultiAutoComplete._ctrlTemplate}static set controlTemplate(t){MultiAutoComplete._ctrlTemplate=t}set showDropDownButton(t){this._showBtn=!1}get maxSelectedItems(){return this._maxSelItems}set maxSelectedItems(t){if(this._maxSelItems!=t){this._maxSelItems=asNumber(t,!0);this._updateMaxItems();this._refreshHeader();this._clearSelIndex()}}get selectedMemberPath(){return this._selPath.path}set selectedMemberPath(t){if((t=asString(t))!==this.selectedMemberPath){this._selPath.path=t;this._initSeltems();this._refreshHeader();this.onSelectedItemsChanged()}}get selectedItems(){return this._selItems}set selectedItems(t){t=Array.from(new Set(t));let e=this._selItems===t;e||null==this._selItems||null==t||this._selItems.length!==t.length||(e=this._selItems.every((e,s)=>e===t[s]));this._selItems=asArray(t);if(!e){if(this.selectedMemberPath&&""!==this.selectedMemberPath&&this._selItems)for(let t=0;t<this._selItems.length;t++){let e=this._selItems[t];this._setSelItem(e,!1)}this._updateMaxItems();this.onSelectedItemsChanged();this._refreshHeader();this._clearSelIndex()}}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAndListBoxAriaLabel.bind(this))}onSelectedItemsChanged(t){this.selectedItemsChanged.raise(this,t)}onIsDroppedDownChanged(t){!this.isDroppedDown&&this.selectedIndex>-1&&!this._notAddItm&&this._addItem(!0);this._notAddItm=!1;super.onIsDroppedDownChanged(t)}refresh(t=!0){super.refresh(t);if(this.hostElement){this._initSeltems();this.isDroppedDown||this._refreshHeader()}}_keydown(t){if(!this.isReadOnly){if(!t.defaultPrevented)switch(t.keyCode){case Key.Back:this._lastInputValue=this._tbx.value;break;case Key.Enter:this._itemOff();this._addItem(!0);isIE()&&setSelectionRange(this._tbx,this._tbx.textContent.length,this._tbx.textContent.length);break;case Key.Tab:if(this.isDroppedDown){this._addItem(!1);this._tbx.value="";this._lbx.selectedIndex=-1;this.isDroppedDown=!1;this.containsFocus()||this.focus();t.preventDefault()}else this._updateFocus();break;case Key.Space:if(""!==this._tbx.value)return;if(!this.isDroppedDown&&!this._tbx.disabled){this.isDroppedDown=!0;this._clearSelIndex()}break;case Key.Escape:this.isDroppedDown&&(this._notAddItm=!0);break;case Key.Left:this._itemOn(!this.rightToLeft);break;case Key.Right:this._itemOn(!!this.rightToLeft);break;case Key.Up:case Key.Down:let e=getActiveElement();if(t.altKey){if(this._tbx==e){this.isDroppedDown=!this.isDroppedDown;this.isDroppedDown||this._tbx.focus();t.preventDefault();return}}else if(this._tbx!==e)return;default:if(t.keyCode===Key.Back||t.keyCode===Key.Delete)return;this._itemOff();null!=this._maxSelItems&&this._selItems.length>=this._maxSelItems&&t.preventDefault()}this._tbx.disabled||super._keydown(t)}}_updateState(){super._updateState();this._wjTpl&&(hasClass(this.hostElement,ControlStateClsNames.focused)||this._itemOff())}_keyup(t){if(!this.isReadOnly&&!t.defaultPrevented)switch(t.keyCode){case Key.Back:0===this._tbx.value.length&&0===this._lastInputValue.length&&this._delItem(!1);break;case Key.Delete:this._delItem(!0)}}_addHelperInput(){let t=document.createElement("input");t.type="text";t.tabIndex=-1;t.className=MultiAutoCompleteClsNames.tokenHelper;t.readOnly=!0;setAttribute(t,"aria-label",this._helperInputElementAriaLabel);setAttribute(t,"role","textbox");this._wjTpl.insertBefore(t,this._wjInput);this._helperInput=t}_addScreenReaderHelper(){let t=document.createElement("div");t.tabIndex=-1;t.className=MultiAutoCompleteClsNames.screenReaderOnly;setAttribute(t,"aria-live","polite");this._wjTpl.insertBefore(t,this._wjInput);this._screenReaderHelper=t}_refreshHeader(){let t=this.hostElement.querySelectorAll("."+MultiAutoCompleteClsNames.token);for(let e=0;e<t.length;e++)this._wjTpl.removeChild(t[e]);let e=this.selectedItems;if(e&&0!==e.length){for(let t=0;t<e.length;t++)this._insertToken(e[t]);this._wjInput.style.cssFloat=this.rightToLeft?"right":"left";this._adjustInputWidth()}else{this._wjInput.style.cssFloat=this.rightToLeft?"right":"left";this._adjustInputWidth()}}_insertToken(t){let e=this._getItemText(t,!0);this.isContentHtml||(e=escapeHtml(e));this._wjTpl.insertBefore(this._createItem(e),this._wjInput)}_updateMaxItems(){null!=this._maxSelItems&&this._selItems&&this._selItems.length>this._maxSelItems&&(this._selItems=this._selItems.slice(0,this._maxSelItems))}_updateFocus(){let t=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive);if(t){removeClass(t,MultiAutoComplete._clsActive);setTimeout(()=>{this._tbx.focus()})}else this._clearSelIndex()}_addItem(t){if(this.selectedItems.indexOf(this.selectedItem)>-1)this._clearSelIndex();else if(this.selectedIndex>-1){this._updateSelItems(this.selectedItem,!0);this._refreshHeader();t&&this._clearSelIndex();this._disableInput(!0)}}_delItem(t){let e,s,i=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive),n=!1;if(t&&!i)return;if(i){s=this._getItemIndex(i);if(s>-1){e=this._selItems[s];n=!0}}else if(this._selItems.length>0){e=this._selItems[this._selItems.length-1];n=!0}const l=this._getItemText(e,!0),a=culture.MultiAutoComplete.ariaLabels.remove;this._screenReaderHelper.textContent=""+(a+" "+l);if(n){this._updateSelItems(e,!1);this._refreshHeader();this._clearSelIndex();this._disableInput(!1)}this._tbx.focus()}_updateSelItems(t,e){if(e){this._selItems&&0!==this._selItems.length||(this._selItems=[]);if(null!=this._maxSelItems&&this._selItems.length>=this._maxSelItems)return;this._selItems.push(t)}else{let e=this._selItems.indexOf(t);this._selItems.splice(e,1)}this._hasSelectedMemeberPath()&&this._setSelItem(t,e);this.onSelectedItemsChanged()}_createItem(t){let e=document.createElement("div"),s=document.createElement("span"),i=document.createElement("span");e.appendChild(s);e.appendChild(i);e.id=getSafeUniqueId(t);setAttribute(e,"aria-label",t);setAttribute(e,"role","button");e.className=MultiAutoCompleteClsNames.token;s.className=MultiAutoCompleteClsNames.tokenLabel;s.innerHTML=t;i.className=MultiAutoCompleteClsNames.tokenClose;i.tabIndex=-1;i.innerHTML="×";e.style.cssFloat=this.rightToLeft?"right":"left";this.addEventListener(e,"click",t=>{this._helperInput.focus();setAttribute(this._helperInput,"aria-activedescendant",e.id);let s=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive);s&&removeClass(s,MultiAutoComplete._clsActive);addClass(e,MultiAutoComplete._clsActive);t.stopPropagation();t.preventDefault()});this.addEventListener(i,"click",t=>{if(this.isReadOnly)return;let s=this._getItemIndex(e);if(s>-1){let t=this._selItems[s];this._updateSelItems(t,!1)}this._wjTpl.removeChild(e);this._adjustInputWidth();this._disableInput(!1);this._tbx.focus();t.stopPropagation()});return e}_itemOn(t){let e,s,i,n=getActiveElement();if(this._tbx!=n||0===this._tbx.value.length){e=this._wjTpl.querySelectorAll("."+MultiAutoCompleteClsNames.token);if(0!==e.length){s=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive);i=this._getItemIndex(s);if(t){if(0===i)return;if(-1===i){addClass(e[e.length-1],MultiAutoComplete._clsActive);this._helperInput.focus();setAttribute(this._helperInput,"aria-activedescendant",e[e.length-1].id)}else{removeClass(s,MultiAutoComplete._clsActive);addClass(e[i-1],MultiAutoComplete._clsActive);this._helperInput.focus();setAttribute(this._helperInput,"aria-activedescendant",e[i-1].id)}}else if(!t){if(-1===i)return;if(i!==e.length-1){removeClass(s,MultiAutoComplete._clsActive);addClass(e[i+1],MultiAutoComplete._clsActive);this._helperInput.focus();setAttribute(this._helperInput,"aria-activedescendant",e[i+1].id)}else{removeClass(s,MultiAutoComplete._clsActive);this._tbx.focus();setAttribute(this._helperInput,"aria-activedescendant")}}}}}_itemOff(){let t=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive);t&&removeClass(t,MultiAutoComplete._clsActive)}_initSeltems(){if(this.selectedMemberPath){this._selItems.splice(0,this._selItems.length);let t=this.collectionView;if(t)for(let e=0;e<t.sourceCollection.length;e++)this._getSelItem(e)&&this._selItems.push(t.sourceCollection[e])}}_getSelItem(t){let e=this.collectionView,s=e?e.sourceCollection[t]:null;return!(!isObject(s)||!this.selectedMemberPath)&&this._selPath.getValue(s)}_setSelItem(t,e){this.itemsSource;isObject(t)&&this._selPath.getValue(t)!=e&&this._selPath.setValue(t,e)}_clearSelIndex(){this.selectedIndex=-1}_hasSelectedMemeberPath(){return this.selectedMemberPath&&""!==this.selectedMemberPath}_disableInput(t){if(null!=this._maxSelItems)if(this._selItems.length<this._maxSelItems){this._tbx.disabled=!1;this._tbx.focus()}else{this._tbx.disabled=!0;this.hostElement.focus()}}_adjustInputWidth(){this._tbx.style.width="60px";let t,e=getElementRect(this.hostElement),s=getElementRect(this._tbx),i=getComputedStyle(this._tbx),n=parseInt(i.paddingLeft,10),l=parseInt(i.paddingRight,10);t=this.rightToLeft?s.left+s.width-e.left-n-l-8:e.left+e.width-s.left-n-l-8;this._tbx.style.width=t+"px";this._tbx.placeholder?this._tbx.style.minWidth="max-content":this._tbx.style.minWidth=""}_getItemIndex(t){let e=this.hostElement.querySelectorAll("."+MultiAutoCompleteClsNames.token);for(let s=0;s<e.length;s++)if(t===e[s])return s;return-1}_setIsDisabled(t){super._setIsDisabled(t);this._updateTabIndex()}_setTabOrder(t){this._orgTabIndex=t;this._updateTabIndex()}_updateTabIndex(){let t=this.hostElement;this._tbx.tabIndex=this.isDisabled?-1:this._orgTabIndex;t.tabIndex=-1}}MultiAutoComplete._clsActive=MultiAutoCompleteClsNames.tokenActive;MultiAutoComplete._ctrlTemplate="";_registerModule("wijmo.input",selfModule);
14
+ import{_getModule,_addCultureInfo,culture,setAriaLabel,disableAutoComplete,isIE,isIE9,asBoolean,asString,asEnum,setSelectionRange,contains,getActiveElement,setAttribute,showPopup,hidePopup,hasClass,addClass,removeClass,toggleClass,removeChild,Control,Key,Event,EventArgs,CancelEventArgs,ControlStateClsNames,GlyphClsNames,ControlClsNames,InputFormElementsClsNames,isNullOrUndefined,tryCast,createElement,hasItems,isObject,isString,asArray,asFunction,asNumber,asType,asCollectionView,closest,escapeHtml,toPlainText,setCss,Binding,Rect,DateTime,assert,isFirefox,_CLS_STATE_DISABLED,UtilitesClsNames,_setAriaLabelBy,setInnerHTMLSafe,getUniqueId,isNumber,enable,isFunction,escapeRegExp,isSafari,setText,isDate,isBoolean,asDate,asInt,Globalize,_ClickRepeater,CollectionView,format,uidGenerator,moveFocus,_isMacOS,clamp,Color,roundTo,_getFocusableElements,_MaskProvider,getSpecialCharsRegex,isEmpty,isEdge,isMobile,setChecked,Point,isArray,getElementRect,getSafeUniqueId,PopupPosition,getElement,isUndefined,isiOS,_registerModule}from"@mescius/wijmo";import*as selfModule from"@mescius/wijmo.input";export const AutoCompleteClsNames={hostElement:"wj-autocomplete"};export const CalendarClsNames={buttonsOutside:"wj-btns-outside",calendarHeader:"wj-calendar-header",calendarMonth:"wj-calendar-month",calendarMultiMonth:"wj-calendar-multimonth",calendarOuter:"wj-calendar-outer",calendarYear:"wj-calendar-year",dayOtherMonth:"wj-day-othermonth",dayToday:"wj-day-today",dayWeekend:"wj-day-weekend",header:"wj-header",hostElement:"wj-calendar",monthSelect:"wj-month-select",weekAfter:"wj-week-after",weekBefore:"wj-week-before",yearPicker:"wj-yearpicker",focused:"wj-state-focus",selectedYear:"wj-select-year",confirmationButtonContainer:"wj-calendar-confirmation-button-container",button:"wj-calendar-button"};export const CollectionViewNavigatorClsNames={hostElement:"wj-collectionview-navigator",pager:"wj-pager"};export const ColorPickerClsNames={colorBox:"wj-colorbox",hostElement:"wj-colorpicker"};export const ComboBoxClsNames={hostElement:"wj-combobox",stateMatch:"wj-state-match"};export const DropDownClsNames={dropDownPanel:"wj-dropdown-panel",hostElement:"wj-dropdown"};export const InputClsNames={input:"wj-input",inputBtnVisible:"wj-input-btn-visible",inputGroup:"wj-input-group",inputGroupBtn:"wj-input-group-btn"};export const InputColorClsNames={hostElement:"wj-inputcolor",inputColorBox:"wj-inputcolorbox"};export const InputDateClsNames={hostElement:"wj-inputdate",inputDateDropDown:"wj-inputdate-dropdown",inputDateDropDownContainer:"wj-inputdate-dropdown-container"};export const InputDateRangeClsNames={hostElement:"wj-inputdaterange"};export const InputDateTimeClsNames={hostElement:"wj-inputdatetime",showDropDownButton:"wj-show-dropdown-button"};export const InputMaskClsNames={hostElement:"wj-inputmask"};export const InputNumberClsNames={hostElement:"wj-inputnumber",numeric:"wj-numeric",showSpinner:"wj-input-show-spinner"};export const InputTimeClsNames={hostElement:"wj-inputtime"};export const ListBoxClsNames={header:"wj-header",hostElement:"wj-listbox",listBoxItem:"wj-listbox-item"};export const MenuClsNames={hostElement:"wj-menu",menuItems:"wj-menu-items",subItems:"wj-subitems"};export const MultiAutoCompleteClsNames={hostElement:"wj-multi-autocomplete",token:"wj-token",tokenActive:"wj-token-active",tokenClose:"wj-token-close",tokenHelper:"wj-token-helper",tokenLabel:"wj-token-label",screenReaderOnly:"wj-sr-only"};export const MultiSelectClsNames={hostElement:"wj-multiselect"};export const MultiSelectListBoxClsNames={header:"wj-header",hostElement:"wj-multiselectlistbox",selectAll:"wj-select-all"};export const PopupClsNames={dialogHeader:"wj-dialog-header",hostElement:"wj-popup",popupBackDrop:"wj-popup-backdrop",dialogBody:"wj-dialog-body",dialogFooter:"wj-dialog-footer"};_addCultureInfo("InputNumber",{ariaLabels:{incVal:"Increase Value",decVal:"Decrease Value",inputNumberInput:"InputNumber Input",inputNumber:"Input Number"}});export class InputNumber extends Control{constructor(t,e){super(t);this._value=null;this._min=null;this._max=null;this._format="";this._step=null;this._showBtn=!0;this._readOnly=!1;this._handleWheel=!0;this._oldText="";this._fromKb=!0;this._inputElementAriaLabel=culture.InputNumber.ariaLabels.inputNumberInput;this._ariaLabelledby=null;this.textChanged=new Event;this.valueChanged=new Event;const s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${InputNumberClsNames.hostElement}`,s,{_tbx:"input",_btnUp:"btn-inc",_btnDn:"btn-dec"},"input");const i=this.inputElement;this.hostElement;setAttribute(i,"role","spinbutton",!0);this._updateInputAriaLabel();const n=culture.InputNumber.ariaLabels;setAriaLabel(this._btnUp.querySelector("button"),n.incVal);setAriaLabel(this._btnDn.querySelector("button"),n.decVal);this._tbx.type.match(/number/i)&&(this.inputType="");const a=this._tbx;a.autocomplete="off";a.spellcheck=!1;this._updateSymbols();const l=this.addEventListener.bind(this);l(a,"keypress",this._keypress.bind(this));l(a,"keydown",this._keydown.bind(this));l(a,"input",this._input.bind(this));isMobile()&&l(a,"beforeinput",this._beforeinput.bind(this));l(a,"blur",()=>{this.text!=this._oldText&&this._setText(this.text)});l(a,"paste",()=>{this._fromKb=!1});l(a,"compositionstart",()=>{this._composing=!0});l(a,"compositionend",()=>{this._composing=!1;setTimeout(()=>{let t=this.text,e=this._oldText,s=this._chrPct;e&&e.indexOf(s)>-1&&t.indexOf(s)<0&&(t+=s);this._setText(t)})});const h=this._clickSpinner.bind(this);l(this._btnUp,"click",h);l(this._btnDn,"click",h);this._rptUp=new _ClickRepeater(this._btnUp.querySelector("button"));this._rptDn=new _ClickRepeater(this._btnDn.querySelector("button"));l(a,"wheel",t=>{if(this.handleWheel&&!t.defaultPrevented&&!t.ctrlKey&&this._isEditable()&&this.containsFocus()){const e=clamp(-t.deltaY,-1,1);this._increment((this.step||1)*e);setTimeout(()=>this.selectAll());t.preventDefault()}});this.value=0;this.isRequired=!0;this.initialize(e)}static get controlTemplate(){InputNumber._ctrlTemplate||(InputNumber._ctrlTemplate=`<div class="${ControlClsNames.template}"><div class="${InputClsNames.input}"><div class="${InputClsNames.inputGroup}"><span wj-part="btn-dec" class="${InputClsNames.inputGroupBtn}" tabindex="-1"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1">-</button></span><input type="tel" wj-part="input" class="${InputFormElementsClsNames.formControl} ${InputNumberClsNames.numeric}"/><span wj-part="btn-inc" class="${InputClsNames.inputGroupBtn}" tabindex="-1"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1">+</button></span></div></div></div>`);return InputNumber._ctrlTemplate}static set controlTemplate(t){InputNumber._ctrlTemplate=t}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){this._tbx.type=asString(t)}get value(){return this._value}set value(t){if(t!=this._value)if(null==(t=asNumber(t,!this.isRequired||null==t&&null==this._value)))this._setText("");else if(!isNaN(t)){const e=Globalize.format(t,this.format);this._setText(e)}}get isRequired(){return this._tbx.required}set isRequired(t){this._tbx.required=asBoolean(t)}get isReadOnly(){return this._readOnly}set isReadOnly(t){this._readOnly=asBoolean(t);this.inputElement.readOnly=this._readOnly;toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly)}get handleWheel(){return this._handleWheel}set handleWheel(t){this._handleWheel=asBoolean(t)}get min(){return this._min}set min(t){if(t!=this._min){this._min=asNumber(t,!0);this._updateAria()}}get max(){return this._max}set max(t){if(t!=this._max){this._max=asNumber(t,!0);this._updateAria()}}get step(){return this._step}set step(t){this._step=asNumber(t,!0);this._updateBtn()}get format(){return this._format}set format(t){if(t!=this.format){this._format=asString(t);this.refresh()}}get text(){return this._tbx.value}set text(t){if(t!=this.text){this._oldText=this.text;this._setText(t)}}get placeholder(){return this._tbx.placeholder}set placeholder(t){this._tbx.placeholder=t}get showSpinner(){return this._showBtn}set showSpinner(t){this._showBtn=asBoolean(t);this._updateBtn()}get repeatButtons(){return!this._rptUp.disabled}set repeatButtons(t){this._rptUp.disabled=this._rptDn.disabled=!asBoolean(t)}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAriaLabel.bind(this))}selectAll(){const t=this._tbx;setSelectionRange(t,0,t.value.length)}clamp(t){return clamp(t,this.min,this.max)}onTextChanged(t){this.textChanged.raise(this,t);this._updateState()}onValueChanged(t){this._updateAria();this.valueChanged.raise(this,t)}dispose(){this._rptUp.element=null;this._rptDn.element=null;super.dispose()}onGotFocus(t){this._oldValue=this.value;if(!this.isTouching){this._tbx.focus();this.selectAll()}super.onGotFocus(t)}onLostFocus(t){if(this._composing){this._composing=!1;this._setText(this.text)}if(this._isEditable()){const t=this.clamp(this.value);if(t==this.value||this.onInvalidInput(new CancelEventArgs)){const e=Globalize.format(t,this.format);this._setText(e)}}super.onLostFocus(t)}refresh(t=!0){super.refresh(t);if(this.hostElement){this._updateSymbols();const t=Globalize.format(this.value,this.format);this._setText(t)}}_isEditable(){return!this.isReadOnly&&!this.isDisabled}_updateSymbols(){const t=culture.Globalize.numberFormat,e=Globalize._parseNumericFormat(this.format);this._chrDec=t["."]||".";this._chrTho=t[","]||",";this._chrNeg=t["-"]||"-";this._chrPls=t["+"]||"+";this._chrPct=t["%"]||"%";this._chrCur=e.curr||t.currency.symbol||"$";this._fmtSpc=e.spec;this._fmtPrc=e.prec;this._rxSym=new RegExp("^[%+\\-() \\"+this._chrDec+"\\"+this._chrCur+"\\"+this._chrNeg+"\\"+this._chrPls+"\\"+this._chrPct+"]*$");this._rxNeg=new RegExp(`^\\s*(\\-|\\${this._chrNeg})|([^e](\\-|\\${this._chrNeg})|\\()`)}_isNumeric(t,e){let s=t==this._chrDec||t>="0"&&t<="9",i="x"==this._fmtSpc;!s&&i&&(s=t>="a"&&t<="f"||t>="A"&&t<="F");s||e||i||(s=t==this._chrPls||t==this._chrNeg||"("==t||")"==t);return s}_getInputRange(t){let e=[0,0],s=this.text,i=!1;for(let n=0;n<s.length;n++)if(this._isNumeric(s[n],t)){if(!i){e[0]=n;i=!0}e[1]=n+1}return e}_flipSign(){const t=this._getSelStartDigits();this.value*=-1;this._setSelStartDigits(t)}_getSelStartDigits(){let t=0,e=this._tbx.selectionStart,s=this._tbx.value;for(let i=0;i<s.length&&i<e;i++)this._isNumeric(s[i],!0)&&t++;return t}_setSelStartDigits(t){const e=this._tbx.value;for(let s=0;s<e.length&&t>=0;s++)if(this._isNumeric(e[s],!0)){if(!t){setSelectionRange(this._tbx,s);break}t--}else if(!t){setSelectionRange(this._tbx,s);break}}_increment(t){if(t){const e=this.clamp(isNumber(this.value)?this.value+t:0),s=Globalize.format(e,this.format,!1,!1);this._setText(s)}}_updateBtn(){const t=this.showSpinner&&!!this.step,e=t;setCss([this._btnUp,this._btnDn],{display:t?"":"none"});toggleClass(this.hostElement,InputNumberClsNames.showSpinner,t);enable(this._btnUp,e);enable(this._btnDn,e);this._updateAria()}_setText(t,e=!1,s=!1){if(this._composing)return;const i=this._tbx,n=this._chrDec,a=this._rxNeg.test(t),l=this._delKey,h=this.containsFocus();t&&this._rxSym.test(t)&&h&&(t=this.isRequired||!l?(a?"-0":"0")+(t.indexOf(n)>-1?n:""):"");this._delKey=!1;l&&0==this.value&&!this.isRequired&&(t="");if(!t){if(!this.isRequired||s){i.value="";if(this._oldText){this._oldText=t;this.onTextChanged()}if(null!=this._value){this._value=null;this.onValueChanged()}this._updateBtn();return}t="0"}const o=t.indexOf(n),r=this._format||(o>-1?"n2":"n0");let d=Globalize.parseFloat(t,r);isFinite(d)||(d=this.clamp(d));if(isNaN(d)){if(this.onInvalidInput(new CancelEventArgs))i.value=this._oldText;else{i.value=t;this.focus()}return}let u=h&&o>-1?2:null,c=Globalize.format(d,r,!1,e,u);a&&d>=0&&!l&&(c=this._chrNeg+c);if(h&&o>-1&&"g"==this._fmtSpc&&0!=this._fmtPrc){c=t;c.indexOf(n)<0&&(c+=n)}if(i.value!=c){i.value=c;d=Globalize.parseFloat(c,r)}if(this.text!=this._oldText){this._oldText=this.text;this.onTextChanged()}if(d!=this._value){this._value=d;this.onValueChanged()}this._updateBtn();this._updateState()}_handleDecimalInput(t){if(0===this._fmtPrc){t.preventDefault();return!0}const e=this._tbx,s=e.value.indexOf(this._chrDec);if(s>-1){t.preventDefault();const i=e.selectionStart<=s?s+1:s;setSelectionRange(e,i);return!0}return!1}_beforeinput(t){if(t.defaultPrevented||this._composing||!this._isEditable())return;switch(t.data){case".":case this._chrDec:this._handleDecimalInput(t);return;case"+":case this._chrPls:this._handlePlusSign();t.preventDefault();return;case"-":case this._chrNeg:this._handleMinusSign();t.preventDefault();return}}_keypress(t){if(!t.defaultPrevented&&!this._composing&&this._isEditable()&&t.charCode&&!t.ctrlKey&&!t.metaKey&&t.keyCode!=Key.Enter){const e=this._tbx,s=String.fromCharCode(t.charCode);if(this._isNumeric(s,!1)){const s=e.maxLength;if(s>-1&&e.value.length>=s&&e.selectionEnd==e.selectionStart){t.preventDefault();return}let i=this._getInputRange(!0),n=e.selectionStart,a=e.selectionEnd;if(n<i[0]&&a<e.value.length){a=Math.max(a,i[0]);setSelectionRange(e,i[0],a)}if(n>=i[1]){const s=null!=this._fmtPrc?this._fmtPrc:2,i=e.value.indexOf(this._chrDec);i>-1&&n-i>s&&t.preventDefault()}}else t.preventDefault();switch(s){case"-":case this._chrNeg:this._handleMinusSign();t.preventDefault();break;case"+":case this._chrPls:this._handlePlusSign();t.preventDefault();break;case".":case this._chrDec:this._handleDecimalInput(t)}if(!t.defaultPrevented&&isIE()){const i=e.value,n=e.selectionStart,a=e.selectionEnd;if(n==a){e.value=i.substr(0,n)+s+i.substr(a);setSelectionRange(e,n+1);t.preventDefault();this._input()}}}}_handlePlusSign(){const t=this._tbx;(this.value<0||this._rxNeg.test(t.value))&&this._flipSign()}_handleMinusSign(){const t=this._tbx;if(this.clamp(-1)>=0)this.value<0&&this._flipSign();else if(this.value&&t.selectionStart===t.selectionEnd)this._flipSign();else if(this.clamp(-1)<0){t.value=this._chrNeg;setSelectionRange(t,1)}}_keydown(t){this._delKey=!1;if(t.defaultPrevented||this._composing)return;var e=hasClass(this._tbx,"wj-grid-ime");if(e&&t.keyCode!=Key.Back&&t.keyCode!=Key.Delete)return;let s=this._tbx,i=s.value,n=s.selectionStart,a=s.selectionEnd;switch(t.keyCode){case 65:if(t.ctrlKey){setTimeout(()=>{this.selectAll()});t.preventDefault()}break;case Key.Up:case Key.Down:if(this.step&&this._isEditable()){this._increment(this.step*(t.keyCode==Key.Up?1:-1));setTimeout(()=>{this.selectAll()});t.preventDefault()}break;case Key.Back:this._delKey=!0;if(a-n<2&&this._isEditable()){const e=i[a-1];if(e==this._chrDec||e==this._chrPct||e==this._chrTho||")"==e){setTimeout(()=>{a=e==this._chrPct?this._getInputRange(!0)[1]:a-1;setSelectionRange(s,a)});t.preventDefault()}}break;case Key.Delete:this._delKey=!0;if(a-n<2&&this._isEditable())if("0"==i&&1==n)setSelectionRange(s,0);else{const e=i[n];if(e==this._chrDec||e==this._chrPct){setTimeout(()=>{setSelectionRange(s,n+1)});t.preventDefault()}}break;case Key.Escape:this.value=this._oldValue;this.selectAll()}e&&this._delKey&&this._isEditable()&&this._setText(null,!1,!0)}_input(){this._composing?this._fromKb=!0:setTimeout(()=>{let t=this._tbx,e=t.value,s=e.indexOf(this._chrDec),i=t.selectionStart,n=this._getSelStartDigits();"p"==this._fmtSpc&&e.length&&e.indexOf(this._chrPct)<0&&(e+=this._chrPct);this._setText(e,this._fromKb);this._fromKb=!0;if(this.containsFocus()){const a=t.value,l=a.indexOf(this._chrDec),h=this._getInputRange(!0);if(e==this._chrNeg+this._chrDec&&l>-1){setSelectionRange(t,l+1);return}if(e[0]==this._chrNeg&&a[0]!=this._chrNeg){if(1==a.length)setSelectionRange(t,1);else{"c"===this._fmtSpc&&this._isNegativeCurrencyByParenthesis(e)&&(n-=1);this._setSelStartDigits(n)}return}e?e==this._chrDec&&l>-1?i=l+1:i<=s&&l>-1||s<0&&l<0?i+=a.length-e.length:s<0&&l>-1&&(i=l):i=l>-1?l:h[1];i=clamp(i,h[0],h[1]);setSelectionRange(t,i)}})}_isNegativeCurrencyByParenthesis(t){return t.length>1&&t[1]===this._chrCur}_clickSpinner(t){if(!t.defaultPrevented&&this._isEditable()&&this.step){this._increment(this.step*(contains(this._btnUp,t.target)?1:-1));if(!this.isTouching){Control.sharedState.InvalidScroll=isEdge();setTimeout(()=>this.selectAll())}}}_updateAria(){const t=this.inputElement;if(this.hostElement){setAttribute(t,"aria-valuemin",this.min);setAttribute(t,"aria-valuemax",this.max);setAttribute(t,"aria-valuenow",this.value);setAttribute(t,"aria-valuetext",this.text);setAttribute(t,"step",this.step);enable(this._btnDn,null==this.min||this.value>this.min);enable(this._btnUp,null==this.max||this.value<this.max)}}_updateInputAriaLabel(){const t=this.inputElement;this._ariaLabelledby?setAttribute(t,"aria-label",null):setAttribute(t,"aria-label",this._inputElementAriaLabel)}getAriaLabelForScreenReader(){return culture.InputNumber.ariaLabels.inputNumber}}InputNumber._ctrlTemplate="";_addCultureInfo("InputMask",{ariaLabels:{inputMaskInput:"InputMask Input",inputMask:"Input Mask"}});export class InputMask extends Control{constructor(t,e){super(t);this._fullEdit=!1;this._inputElementAriaLabel=culture.InputMask.ariaLabels.inputMaskInput;this._ariaLabelledby=null;this.valueChanged=new Event;const s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${InputMaskClsNames.hostElement}`,s,{_tbx:"input"},"input");if("INPUT"==this._orgTag){const t=this._tbx.getAttribute("value");t&&(this.value=t)}this._msk=new _MaskProvider(this._tbx);this.isRequired=!0;this.initialize(e);this.addEventListener(this._tbx,"input",()=>{this.onValueChanged()});this.addEventListener(this._tbx,"blur",this._commitText.bind(this));this.addEventListener(this._tbx,"keydown",t=>{t.keyCode==Key.Enter&&this._commitText()});this._updateInputAriaLabel()}static get controlTemplate(){InputMask._ctrlTemplate||(InputMask._ctrlTemplate=`<div class="${InputClsNames.input}"><div class="${InputClsNames.inputGroup}"><input wj-part="input" class="${InputFormElementsClsNames.formControl}"/></div></div>`);return InputMask._ctrlTemplate}static set controlTemplate(t){InputMask._ctrlTemplate=t}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){this._tbx.type=asString(t)}get value(){return this._tbx.value}set value(t){if(t!=this.value){this._tbx.value=asString(t);t=this._msk._applyMask();this._tbx.value=t;this.onValueChanged()}}get rawValue(){return this._msk.getRawValue()}set rawValue(t){t!=this.rawValue&&(this.value=asString(t))}get mask(){return this._msk.mask||""}set mask(t){const e=this.value;this._msk.mask=asString(t);this.value!=e&&this.onValueChanged()}get promptChar(){return this._msk.promptChar}set promptChar(t){const e=this.value;this._msk.promptChar=t;this.value!=e&&this.onValueChanged()}get overwriteMode(){return this._msk.overwriteMode}set overwriteMode(t){this._msk.overwriteMode=asBoolean(t)}get placeholder(){return this._tbx.placeholder}set placeholder(t){this._tbx.placeholder=t}get maskFull(){return this._msk.maskFull}get isRequired(){return this._tbx.required}set isRequired(t){this._tbx.required=asBoolean(t)}get isReadOnly(){return this._tbx.readOnly}set isReadOnly(t){this._tbx.readOnly=asBoolean(t);toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly)}selectAll(){const t=this._msk.getMaskRange();setSelectionRange(this._tbx,t[0],t[1]+1)}onValueChanged(t){if(this.value!=this._oldValue){this._oldValue=this.value;this.valueChanged.raise(this,t)}this._updateState()}_commitText(){(this.rawValue||this.isRequired)&&(this.maskFull||this.onInvalidInput(new CancelEventArgs));this._updateState()}dispose(){this._msk.input=null;super.dispose()}refresh(t=!0){super.refresh(t);this.hostElement&&this._msk.refresh()}onGotFocus(t){this.selectAll();super.onGotFocus(t)}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAriaLabel.bind(this))}_updateInputAriaLabel(){const t=this.inputElement;!t||t.id||this._ariaLabelledby?setAttribute(t,"aria-label",null):setAttribute(t,"aria-label",this._inputElementAriaLabel)}getAriaLabelForScreenReader(){return culture.InputMask.ariaLabels.inputMask}}InputMask._ctrlTemplate="";_addCultureInfo("ColorPicker",{ariaLabels:{colorPicker:"Color Picker",satAndBrightnessPanel:"Color saturation and brightness panel",huePanel:"Color hue panel",opacityPanel:"Color opacity panel",palettePanel:"Color palette panel",saturation:"Saturation:",hue:"Hue:",opacity:"Opacity:",degrees:"degrees",brightness:"Brightness:",baseColor:"Base color:",shadeColor:"Shade color:"}});export var ColorPickerTabKeyAction;!function(t){t[t.None=0]="None";t[t.All=1]="All"}(ColorPickerTabKeyAction||(ColorPickerTabKeyAction={}));export class ColorPicker extends Control{constructor(t,e){super(t);this._hsb=[.5,1,1];this._alpha=1;this._ariaLabel=culture.ColorPicker.ariaLabels.colorPicker;this.valueChanged=new Event;this.hostElement.setAttribute("role","application");this.hostElement.setAttribute("aria-label",culture.ColorPicker.ariaLabels.colorPicker);let s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${ColorPickerClsNames.hostElement}`,s,{_eSB:"div-sb",_eHue:"div-hue",_eAlpha:"div-alpha",_ePreview:"div-pv",_ePal:"div-pal",_eText:"div-text"});this._palette="#FFF,#000,#F00,#FFC000,#FFFF00,#92D050,#00B050,#00B0F0,#0070C0,#7030A0".split(",");this._updatePalette();this._eHue.style.backgroundImage="url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAD4CAIAAACi6hsPAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAGvSURBVDhPXdBPaM9xHMfxz4pWaxcmtoOhpdXSVpiyHWxqmVpDjaU5rK34XfypjTJ/p+ZPay6jhsOsRrKwaJElf9IQq03WIkv4FeMwMq221tfje1ByeFzfvd7PEKWGEKWTQRZLySWfVRRTQjmVbKWGOhLsZT+HaeY0bbTTQSfdXOcWffTzmAFeMcwoYyT5ygS/mA5hNgphip98J8kHRnnNSwZ4yH1uc4OrdHGR87RximYO0cgedlLLdqqoYAPrWMtKVrCcJSxiPmnMJUQp/Bsyk2xyyKOAQooopYwKtlDNDur5G7SBJo7RQiv/B+2hl3s84CkvGGKEOOYnxolj/mYmhBmDJ5ngCx95xxsGecYj4pB3iENeoZMO2mmlhaMcpIE4ZII6aqhmM3HMMkooopB88sghm0wySCeVlCjMCVFIYx4LWUwOeRSwhmLWU84mqqihll3sppEmjnOSs5zjEl1c4yZ99POE5wwxwns+840fTDFLFKaZZIJxkozxlmEGGSC+GF++Sy89dHOZC8Rr4lVnOMERDrCPBPXEX22jko2UEn+/mnxyWUYWC0gnNUQh/AEc0HJs6cex0gAAAABJRU5ErkJggg==)";this._eHue.style.backgroundSize="contain";if(navigator.appVersion.indexOf("MSIE 9")>-1){this._eSB.children[0].style.filter="progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffffff,endColorstr=#00ffffff,GradientType=1)";this._eSB.children[1].style.filter="progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000,endColorstr=#ff000000,GradientType=0)"}s=ColorPicker._tplCursor;this._cSB=createElement(s);this._cHue=createElement(s);this._cHue.style.width="100%";this._cAlpha=createElement(s);this._cAlpha.style.height="100%";this._eSB.appendChild(this._cSB);this._eHue.appendChild(this._cHue);this._eAlpha.appendChild(this._cAlpha);this._keyActionTab=ColorPickerTabKeyAction.None;const i=this.addEventListener.bind(this),n=this.removeEventListener.bind(this),a=document;i(this.hostElement,"mousedown",t=>{i(a,"mousemove",mouseMove);i(a,"mouseup",mouseUp);this._mouseDown(t)});i(this.hostElement,"touchstart",t=>{i(a,"touchmove",mouseMove);i(a,"touchend",mouseUp);this._mouseDown(t)});const mouseMove=t=>{this._mouseMove(t)},mouseUp=t=>{n(a,"mousemove",mouseMove);n(a,"mouseup",mouseUp);n(a,"touchmove",mouseMove);n(a,"touchend",mouseUp);this._mouseUp(t)};i(this.hostElement,"click",t=>{if(this.isDisabled)return;const e=t.target;if(e&&"DIV"==e.tagName&&contains(this._ePal,e)){const t=e.style.backgroundColor;t&&(this.value=new Color(t).toString());e.focus()}});i(this.hostElement,"keydown",t=>{this.isDisabled||this._keydown(t)});this.value="#ffffff";this.initialize(e);this._updatePanels();this._eSB.setAttribute("role","slider");this._eSB.setAttribute("aria-label",culture.ColorPicker.ariaLabels.satAndBrightnessPanel);this._eSB.setAttribute("aria-valuemin","0");this._eSB.setAttribute("aria-valuemax","100");this._eHue.setAttribute("role","slider");this._eHue.setAttribute("aria-label",culture.ColorPicker.ariaLabels.huePanel);this._eHue.setAttribute("aria-valuemin","0");this._eHue.setAttribute("aria-valuemax","360");this._eAlpha.setAttribute("role","slider");this._eAlpha.setAttribute("aria-label",culture.ColorPicker.ariaLabels.opacityPanel);this._eAlpha.setAttribute("aria-valuemin","0");this._eAlpha.setAttribute("aria-valuemax","100");this._ePal.setAttribute("role","grid");this._ePal.setAttribute("aria-label",culture.ColorPicker.ariaLabels.palettePanel);this._updateTabIndex()}static get controlTemplate(){ColorPicker._ctrlTemplate||(ColorPicker._ctrlTemplate=`<div style="position:relative;width:100%;height:100%"><div style="float:left;width:50%;height:100%;box-sizing:border-box;padding:2px"><div wj-part="div-pal"><div style="float:left;width:10%;box-sizing:border-box;padding:2px"><div style="background-color:black;width:100%"></div><div style="height:6px"></div></div></div><div wj-part="div-text" style="position:absolute;bottom:0px;display:none"></div></div><div style="float:left;width:50%;height:100%;box-sizing:border-box;padding:2px"><div wj-part="div-sb" class="${ColorPickerClsNames.colorBox}" style="float:left;width:89%;height:89%"><div style="position:absolute;width:100%;height:100%;background:linear-gradient(to right, white 0%,transparent 100%)"></div><div style="position:absolute;width:100%;height:100%;background:linear-gradient(to top, black 0%,transparent 100%)"></div></div><div style="float:left;width:1%;height:89%"></div><div style="float:left;width:10%;height:89%"><div wj-part="div-hue" class="${ColorPickerClsNames.colorBox}"></div></div><div style="float:left;width:89%;height:1%"></div><div style="float:left;width:89%;height:10%"><div style="width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAAcSURBVBhXY/iPBBYgAWpKQGkwgMqDAdUk/v8HAM7Mm6GatDUYAAAAAElFTkSuQmCC)"><div wj-part="div-alpha" class="${ColorPickerClsNames.colorBox}"></div></div></div><div style="float:left;width:1%;height:10%"></div><div style="float:left;width:10%;height:10%"><div wj-part="div-pv" class="${ColorPickerClsNames.colorBox}" style="position:static"></div></div></div></div>`);return ColorPicker._ctrlTemplate}static set controlTemplate(t){ColorPicker._ctrlTemplate=t}get showAlphaChannel(){return"none"!=this._eAlpha.parentElement.style.display}set showAlphaChannel(t){this._eAlpha.parentElement.style.display=asBoolean(t)?"":"none"}get showColorString(){return"none"!=this._eText.style.display}set showColorString(t){this._eText.style.display=asBoolean(t)?"":"none";if(asBoolean(t)){this._eText.setAttribute("role","status");this._eText.setAttribute("aria-live","polite")}}get value(){return this._value}set value(t){if(t!=this.value){const e=this.value,s=(t=asString(t)).trim(),i=Color.fromString(s);if(i){const t=i.getHsb();this._value=s;this._eText.innerText=s;if(this._hsb[0]!=t[0]||this._hsb[1]!=t[1]||this._hsb[2]!=t[2]||this._alpha!=i.a){if(0==t[2]){t[0]=this._hsb[0];t[1]=this._hsb[1]}else 0==t[1]&&(t[0]=this._hsb[0]);this._hsb=t;this._alpha=i.a;this.onValueChanged()}else""===e&&this.onValueChanged()}else if(""===s){const e=new Color(t);this._hsb=e.getHsb();this._alpha=e.a;this._value=t;this._eText.innerText=s;this.onValueChanged()}}}get palette(){return this._palette}set palette(t){if((t=(t=asArray(t)).slice(0,10)).every(t=>null!=Color.fromString(t))){this._palette=t;this._updatePalette()}}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){if(t!=this._ariaLabel){this._ariaLabel=t;setAttribute(this.hostElement,"aria-label",this._ariaLabel)}}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=t;if(t==ColorPickerTabKeyAction.All){this.tabOrder=0;this.hostElement.setAttribute("tabindex","-1")}this._updateTabIndex()}_setTabOrder(t){super._setTabOrder(t);this.isDisabled||this._updateTabIndex()}onValueChanged(t){this._refreshSelection();this.valueChanged.raise(this,t)}_mouseDown(t){this._htDown=this._getTargetPanel(t);if(this._htDown){t.preventDefault();this._htDown.focus();this._mouseMove(t)}}_mouseMove(t){if(!this.isDisabled){var e=t.touches?t.touches[0]:t,s=this._htDown;if(s){const t=s.getBoundingClientRect();let i=[...this._hsb],n=this._alpha;if(s==this._eHue)i[0]=clamp((e.clientY-t.top)/t.height,0,.99);else if(s==this._eSB){i[1]=clamp((e.clientX-t.left)/t.width,0,1);i[2]=clamp(1-(e.clientY-t.top)/t.height,0,1)}else s==this._eAlpha&&(n=clamp((e.clientX-t.left)/t.width,0,1));this._updateColor(i,n)}}}_mouseUp(t){this._htDown=null}_updateColor(t=this._hsb,e=this._alpha){const s=this._hsb[0]!==t[0]||this._hsb[1]!==t[1]||this._hsb[2]!==t[2],i=this._alpha!==e;if(s||i){this._hsb=t;this._alpha=e;const s=Color.fromHsb(t[0],t[1],t[2],e);this._value=s.toString();this._eText.innerText=this._value;this.onValueChanged()}}_updatePalette(){const t=new Color("#fff"),e=new Color("#000");this._ePal.innerHTML="";this._ePal.className="palette-grid";const s=Array.from({length:6},()=>{const t=document.createElement("div");t.className="palette-row";t.setAttribute("role","row");return t}),i=this.getActualTabIndex();for(let n=0;n<this._palette.length;n++){const a=new Color(this._palette[n]),l=a.getHsb(),h=this._makePalEntry(a);h.innerHTML="&#8203";h.setAttribute("role","columnheader");h.setAttribute("aria-label",`${culture.ColorPicker.ariaLabels.baseColor} ${a.toString()}`);if(0===n){this._ePalMainFirst=h;this._ePalMainFirst.setAttribute("tabindex",i)}else h.setAttribute("tabindex","-1");s[0].appendChild(h);for(let a=0;a<5;a++){const h=0===l[1]?Color.interpolate(t,e,.1*a+(l[2]>.5?.05:.55)):Color.fromHsb(l[0],.1+.2*a,1-.1*a),o=this._makePalEntry(h);o.setAttribute("role","gridcell");o.setAttribute("aria-label",`${culture.ColorPicker.ariaLabels.shadeColor} ${h.toString()}`);if(0===n&&0===a){this._ePalShadeFirst=o;this._ePalShadeFirst.setAttribute("tabindex",i)}else setAttribute(o,"tabindex","-1");s[a+1].appendChild(o)}}s.forEach(t=>{this._ePal.appendChild(t)})}_makePalEntry(t){const e=document.createElement("div");e.className="palette-gridcell";setCss(e,{backgroundColor:t.toString()});return e}_updatePanels(){const t=Color.fromHsb(this._hsb[0],1,1,1),e=Color.fromHsb(this._hsb[0],this._hsb[1],this._hsb[2],1);this._eSB.style.backgroundColor=t.toString();this._eAlpha.style.background=`linear-gradient(to right, transparent 0%, ${e.toString()} 100%)`;navigator.appVersion.indexOf("MSIE 9")>-1&&(this._eAlpha.style.filter=`progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000,endColorstr=${e.toString()}, GradientType = 1)`);const s=this.value.trim();this._ePreview.style.backgroundColor=s;this._cHue.style.top=(100*this._hsb[0]).toFixed(0)+"%";this._cSB.style.left=(100*this._hsb[1]).toFixed(0)+"%";this._cSB.style.top=(100-100*this._hsb[2]).toFixed(0)+"%";this._cAlpha.style.left=(100*this._alpha).toFixed(0)+"%";const i=this.getColorsDiv(),n=getActiveElement();if(this.keyActionTab===ColorPickerTabKeyAction.All&&!this.hostElement.contains(n)){if(this.isDisabled)return;let t=!1;for(let e=0;e<i.length;e++){const n=i[e].style.backgroundColor;if(Color.fromString(s).equals(Color.fromString(n))){i[e].focus();t=!0;break}}t||i[0].focus()}}getColorsDiv(){const t=Array.from(this._ePal.querySelectorAll('[role="columnheader"]')),e=Array.from(this._ePal.querySelectorAll('[role="gridcell"]'));return t.concat(e)}_getTargetPanel(t){const e=t.target;return contains(this._eSB,e)?this._eSB:contains(this._eHue,e)?this._eHue:contains(this._eAlpha,e)?this._eAlpha:null}getActualTabIndex(){const t=this.tabOrder.toString();return this.keyActionTab===ColorPickerTabKeyAction.All&&!0!==this.isDisabled?t:"-1"}_updateTabIndex(){const t=this.getActualTabIndex();this._eSB.setAttribute("tabindex",t);this._eHue.setAttribute("tabindex",t);this._eAlpha.setAttribute("tabindex",t);this._ePalMainFirst.setAttribute("tabindex",t);this._ePalShadeFirst.setAttribute("tabindex",t)}_setIsDisabled(t){super._setIsDisabled(t);this._updateTabIndex()}_updateAriaValues(){const t=this._hsb;this._eSB.setAttribute("aria-valuenow",(100*t[1]).toString());this._eSB.setAttribute("aria-valuetext",`${culture.ColorPicker.ariaLabels.saturation} ${Math.round(100*t[1])}%, ${culture.ColorPicker.ariaLabels.brightness} ${Math.round(100*t[2])}%`);this._eHue.setAttribute("aria-valuenow",(360*t[0]).toString());this._eHue.setAttribute("aria-valuetext",`${culture.ColorPicker.ariaLabels.hue} ${Math.round(360*t[0])} ${culture.ColorPicker.ariaLabels.degrees}`);this._eAlpha.setAttribute("aria-valuenow",(100*this._alpha).toString());this._eAlpha.setAttribute("aria-valuetext",`${culture.ColorPicker.ariaLabels.opacity} ${Math.round(100*this._alpha)}%`)}_keydown(t){const e=t.target;this._isInColorPalette(e)?this._handleColorNavigation(t,e):e!==this._eSB?e!==this._eHue?e!==this._eAlpha||this._handleAlphaNavigation(t):this._handleHSBNavigation(t,"hue"):this._handleHSBNavigation(t,"sb")}_isInColorPalette(t){return t&&"DIV"===t.tagName&&contains(this._ePal,t)}_handleColorNavigation(t,e){const s=this.getColorsDiv(),i=this.palette.length,n=s.findIndex(t=>t===e);let a=null;switch(t.key){case"ArrowDown":n<s.length-1&&(a=s[n+i]);break;case"ArrowUp":n>0&&(a=s[n-i]);break;case"ArrowRight":{const t=n+1;t<s.length&&(a=s[t]);break}case"ArrowLeft":{const t=n-1;t>=0&&(a=s[t]);break}}if(a){const e=a.style.backgroundColor;e&&(this.value=new Color(e).toString());a.focus();t.preventDefault()}}_handleHSBNavigation(t,e){let s=[...this._hsb];s=s.map(t=>roundTo(t,2));const adjust=(t,e,i)=>{const n=Math.round(100*s[t]);s[t]=clamp((n+e)/100,0,i)};switch(t.key){case"ArrowLeft":"sb"===e&&adjust(1,-1,1);break;case"ArrowRight":"sb"===e&&adjust(1,1,1);break;case"ArrowUp":"sb"===e?adjust(2,1,1):adjust(0,-1,.99);break;case"ArrowDown":"sb"===e?adjust(2,-1,1):adjust(0,1,.99)}if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(t.key)){this._updateColor(s,void 0);t.preventDefault()}}_refreshSelection(){this._updatePanels();this._updateAriaValues()}_handleAlphaNavigation(t){let e=this._alpha;switch(t.key){case"ArrowLeft":e=clamp(e-.01,0,1);break;case"ArrowRight":e=clamp(e+.01,0,1);break;default:return}this._updateColor(void 0,e);t.preventDefault()}}ColorPicker._ctrlTemplate="";ColorPicker._tplCursor='<div class="wj-colorpicker-cursor"></div>';_addCultureInfo("CollectionViewNavigator",{ariaLabels:{byPage:{btnFirst:"Navigate to first page",btnPrev:"Navigate to previous page",btnNext:"Navigate to next page",btnLast:"Navigate to last page"},byItem:{btnFirst:"Navigate to first item",btnPrev:"Navigate to previous item",btnNext:"Navigate to next item",btnLast:"Navigate to last item"}}});export class CollectionViewNavigator extends Control{constructor(t,e){super(t);this._view=null;this._byPage=!1;this._fmt="{current:n0} / {count:n0}";this._liveRegionON=!1;this._ariaLabel="";const s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${CollectionViewNavigatorClsNames.pager} ${CollectionViewNavigatorClsNames.hostElement}`,s,{_btnFirst:"btn-first",_btnPrev:"btn-prev",_txtCurr:"txt-curr",_btnNext:"btn-next",_btnLast:"btn-last"},"input");this.hostElement.tabIndex=-1;this._updateAriaLabels();const i=uidGenerator();this._txtCurr.id=i;[this._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(t=>{setAttribute(t.firstElementChild,"aria-controls",this._txtCurr.id)});setAttribute(this.hostElement.firstElementChild,"role","group");setAttribute(this._txtCurr,"role","status");this._rptNext=new _ClickRepeater(this._btnNext.querySelector("button"));this._rptPrev=new _ClickRepeater(this._btnPrev.querySelector("button"));this.addEventListener(this.hostElement,"click",this._click.bind(this));this.addEventListener(this.hostElement,"keydown",this._keydown.bind(this));setAttribute(this.hostElement,"role","navigation");this._addA11yRelatedHandlers();this.initialize(e);this._update()}static get controlTemplate(){CollectionViewNavigator._ctrlTemplate||(CollectionViewNavigator._ctrlTemplate=`<div class="${InputClsNames.inputGroup}"><span wj-part="btn-first" class="${InputClsNames.inputGroupBtn}"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}"><span class="${GlyphClsNames.stepBackward}"></span></button></span><span wj-part="btn-prev" class="${InputClsNames.inputGroupBtn}"> <button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}"><span class="${GlyphClsNames.left}"></span> </button></span><span wj-part="txt-curr" tabIndex="0"></span><span wj-part="btn-next" class="${InputClsNames.inputGroupBtn}"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}"><span class="${GlyphClsNames.right}"></span></button></span><span wj-part="btn-last" class="${InputClsNames.inputGroupBtn}"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}"><span class="${GlyphClsNames.stepForward}"></span></button></span></div>`);return CollectionViewNavigator._ctrlTemplate}static set controlTemplate(t){CollectionViewNavigator._ctrlTemplate=t}get cv(){return this._view}set cv(t){if(t!=this._view){let e=this._view;if(e){e.collectionChanged.removeHandler(this._collectionChanged);e.currentChanged.removeHandler(this._currentChanged)}e=this._view=asType(t,"ICollectionView",!0);this._update();if(e){e.collectionChanged.addHandler(this._collectionChanged,this);e.currentChanged.addHandler(this._currentChanged,this)}}}get byPage(){return this._byPage}set byPage(t){if(t!=this._byPage){this._byPage=asBoolean(t);this._update();this._updateAriaLabels()}}get headerFormat(){return this._fmt}set headerFormat(t){if(t!=this._fmt){this._fmt=asString(t);this._update()}}get repeatButtons(){return!this._rptNext.disabled}set repeatButtons(t){this._rptNext.disabled=this._rptPrev.disabled=!asBoolean(t)}get ariaLabel(){if(this.hostElement){const t=this.hostElement.getAttribute("aria-label");if(t)return t}return this._ariaLabel}set ariaLabel(t){if(this.ariaLabel!==t){this._ariaLabel=t;this.hostElement&&setAttribute(this.hostElement,"aria-label",t)}}get isDisabled(){return this._isDisabled}set isDisabled(t){this._setIsDisabled(t)}focus(){const t=this._e;t&&t.offsetHeight&&(this.isDisabled||moveFocus(t,0)||this._txtCurr.tabIndex>=0&&this._txtCurr.focus())}_update(){const t=this._view,e=this._byPage,s=t?e?t.pageIndex:t.currentPosition:0,i=t?e?t.pageCount:t.itemCount:0;if(this.isDisabled)[this._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(t=>{enable(t,!1)});else{enable(this._btnFirst,t&&s>0);enable(this._btnPrev,t&&s>0);enable(this._txtCurr,null!=t);enable(this._btnNext,t&&s<i-1);enable(this._btnLast,t&&s<i-1)}this._updateTabIndex();this._txtCurr.textContent=format(this._fmt,{current:t?s+1:0,count:t?i:0,currentItem:t?t.currentPosition+1:0,itemCount:t?t.itemCount:0,currentPage:t?t.pageIndex+1:0,pageCount:t?t.pageCount:0})}_currentChanged(){this._update()}_collectionChanged(){this._update()}_click(t){const e=t.target,s=this._view,i=this._byPage;if(s){contains(this._btnFirst,e)?i?s.moveToFirstPage():s.moveCurrentToFirst():contains(this._btnPrev,e)?i?s.moveToPreviousPage():s.moveCurrentToPrevious():contains(this._btnNext,e)?i?s.moveToNextPage():s.moveCurrentToNext():contains(this._btnLast,e)&&(i?s.moveToLastPage():s.moveCurrentToLast());(this.byPage?s.pageIndex>=s.pageCount-1||s.pageIndex<=0:s.currentPosition>=s.itemCount-1||s.currentPosition<=0)&&!this.isDisabled&&this._txtCurr.tabIndex>=0&&this._txtCurr.focus();t.preventDefault()}}_updateAriaLabels(){const t=culture.CollectionViewNavigator.ariaLabels[this._byPage?"byPage":"byItem"];setAttribute(this._btnFirst.firstElementChild,"aria-label",t.btnFirst);setAttribute(this._btnPrev.firstElementChild,"aria-label",t.btnPrev);setAttribute(this._btnNext.firstElementChild,"aria-label",t.btnNext);setAttribute(this._btnLast.firstElementChild,"aria-label",t.btnLast)}_addA11yRelatedHandlers(){this.addEventListener(this._txtCurr,"focus",t=>{if(this._txtCurr===document.activeElement){setAttribute(this._txtCurr,"aria-live","off");setAttribute(this._txtCurr,"aria-label",this._txtCurr.textContent);this._liveRegionON=!1}});this.addEventListener(this._txtCurr,"blur",t=>{this._txtCurr!==document.activeElement&&this._txtCurr.removeAttribute("aria-label")});[this._btnFirst.firstElementChild,this._btnPrev.firstElementChild,this._btnNext.firstElementChild,this._btnLast.firstElementChild].forEach(t=>{this.addEventListener(t,"focus",t=>{setTimeout(()=>{if(!this._liveRegionON){const t=_isMacOS()?"polite":"assertive";setAttribute(this._txtCurr,"aria-live",t);this._liveRegionON=!0}})})})}_setTabOrder(t){const e=this._e,s=null!=this._txtCurr.getAttribute("disabled");this._orgTabIndex=t;if(this.isDisabled||s){e.tabIndex=-1;this._txtCurr.tabIndex=-1}else s||(this._txtCurr.tabIndex=this._orgTabIndex)}_keydown(t){if(contains(this._txtCurr,t.target)&&(t.ctrlKey||t.metaKey)&&("A"===t.key||"a"===t.key)){t.preventDefault();const e=document.createRange();e.selectNodeContents(this._txtCurr);const s=window.getSelection();s.removeAllRanges();s.addRange(e)}}_setIsDisabled(t){if((t=!!asBoolean(t,!0))!=this.isDisabled){const e=this._e;if(e){this._isDisabled=t;toggleClass(e,ControlStateClsNames.disabled,t);this._update();this._txtCurr.tabIndex=t?-1:this._orgTabIndex}}}_updateTabIndex(){[this._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(t=>{if(this._isDisabled)t.firstElementChild.setAttribute("tabindex","-1");else{t.firstElementChild.disabled?t.firstElementChild.setAttribute("tabindex","-1"):t.firstElementChild.setAttribute("tabindex",this._orgTabIndex.toString())}})}}CollectionViewNavigator._ctrlTemplate="";_addCultureInfo("Listbox",{ariaLabels:{listBox:"list box"}});export class ListBox extends Control{constructor(t,e){super(t,null,!0);this._cv=null;this._itemFormatter=null;this._pathDisplay=new Binding("");this._pathValue=new Binding("");this._pathChecked=new Binding("");this._html=!1;this._shGroups=!1;this._checkedItems=[];this._itemRole="option";this._caseSensitive=!1;this._addMode=!1;this._isShiftDown=!1;this._shouldClearOnShift=!0;this._vThreshold=ListBox._VTHRESH;this._isVirtual=!1;this._children=[];this._ignoreItemFormatterTextArray=[];this._itemFormatterHelper=document.createElement("div");this._clientHeight=-1;this._itemHeight=30;this._itemsAbove=-1;this._itemsBelow=-1;this._eSizer=document.createElement("div");this._ePadTop=document.createElement("div");this._ePadBot=document.createElement("div");this._checking=!1;this._ignoredItemChangedEvents=!1;this._search="";this._fmtItemHandlers=0;this._itemCount=0;this._oldSel=null;this._container=null;this._oldSelectedIndex=-1;this._ariaLabel=culture.Listbox.ariaLabels.listBox;this._isNeedUpdateBnd=!0;this.selectedIndexChanged=new Event;this.itemsChanged=new Event;this.loadingItems=new Event;this.loadedItems=new Event;this.itemChecked=new Event;this.checkedItemsChanged=new Event;this.formatItem=new Event(()=>{this.invalidate()});this._handleKeyUp=t=>{if("Shift"===t.key){this._isShiftDown=!1;this._shouldClearOnShift=!0}};this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${ListBoxClsNames.hostElement}`,null,null);const s=this.hostElement;setAttribute(s,"role","listbox",!0);this._updateAriaLabel();"SELECT"==this._orgTag&&this._initFromSelect(this.hostElement);this.addEventListener(s,"click",this._click.bind(this));this.addEventListener(s,"keydown",this._keydown.bind(this));this.addEventListener(s,"keypress",this._keypress.bind(this));this.addEventListener(s,"keyup",this._handleKeyUp.bind(this));this.addEventListener(s,"wheel",t=>{if(s.scrollHeight>s.offsetHeight&&(t.deltaY<0&&0==s.scrollTop||t.deltaY>0&&s.scrollTop+s.offsetHeight>=s.scrollHeight)){t.preventDefault();t.stopPropagation();t.stopImmediatePropagation()}});[this._eSizer,this._ePadTop,this._ePadBot].forEach(t=>{t.tabIndex=-1;setAttribute(t,"aria-hidden",!0);setCss(t,{pointerEvents:"none",opacity:"0"})});this.initialize(e);this._updateViewRange();this.addEventListener(this.hostElement,"scroll",t=>{this._updateViewRange()})}get ariaLabelledBy(){return this.hostElement.getAttribute("aria-labelledby")}set ariaLabelledBy(t){_setAriaLabelBy(this,this.hostElement,t,this._updateAriaLabel.bind(this))}get itemsSource(){return this._items}set itemsSource(t){if(this._items!=t){if(this._cv){this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._items=t;this._cv=asCollectionView(t);if(null!=this._cv){this._cv.currentChanged.addHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this)}this._populateList();this.onItemsChanged();this.onSelectedIndexChanged()}}get collectionView(){return this._cv}get virtualizationThreshold(){return this._vThreshold}set virtualizationThreshold(t){if(t!=this._vThreshold){const e=this._getVirtual();this._vThreshold=asNumber(t,!1,!0);e!=this._getVirtual()&&this._populateList()}}get showGroups(){return this._shGroups}set showGroups(t){if(t!=this._shGroups){this._shGroups=asBoolean(t);this._populateList()}}get isContentHtml(){return this._html}set isContentHtml(t){if(t!=this._html){this._html=asBoolean(t);this._populateList()}}get itemFormatter(){return this._itemFormatter}set itemFormatter(t){if(t!=this._itemFormatter){this._itemFormatter=asFunction(t);this._populateList()}}get displayMemberPath(){return this._pathDisplay.path}set displayMemberPath(t){if(t!=this.displayMemberPath){this._pathDisplay.path=asString(t);this._populateList()}}get selectedValuePath(){return this._pathValue.path}set selectedValuePath(t){this._pathValue.path=asString(t)}get checkedMemberPath(){return this._pathChecked.path}set checkedMemberPath(t){if(t!=this.checkedMemberPath){this._pathChecked.path=asString(t);setAttribute(this.hostElement,"aria-multiselectable",""!==this.checkedMemberPath?"true":"false");this._populateList()}}get caseSensitiveSearch(){return this._caseSensitive}set caseSensitiveSearch(t){this._caseSensitive=asBoolean(t)}get itemRole(){return this._itemRole}set itemRole(t){if(t!=this.itemRole){this._itemRole=asString(t);this._populateList()}}getDisplayValue(t,e){let s=null;if(t>-1&&hasItems(this._cv)){s=this._cv.items[t];this.displayMemberPath&&(s=this._pathDisplay.getValue(s))}let i=null!=s?s.toString():"";this._itemFormatter&&!e&&(i=this._itemFormatter(t,i));return i}getDisplayText(t){return this._getDisplayText(t)}_getDisplayText(t,e){if(e&&this._ignoreItemFormatterTextArray[t])return this._ignoreItemFormatterTextArray[t];const s=this._getChild(t);return null!=s?s.textContent:""}isItemEnabled(t){var e=this._getChild(t);return null!=e&&!e.hasAttribute("disabled")&&!hasClass(e,ControlStateClsNames.disabled)&&!hasClass(e,UtilitesClsNames.separator)}get selectedIndex(){return this._cv?this._cv.currentPosition:-1}set selectedIndex(t){if(this._cv){this._oldSelectedIndex=this._cv.currentPosition;this._cv.moveCurrentToPosition(asNumber(t))}}get selectedItem(){return this._cv?this._cv.currentItem:null}set selectedItem(t){this._cv&&this._cv.moveCurrentTo(t)}get selectedValue(){let t=this.selectedItem;t&&this.selectedValuePath&&(t=this._pathValue.getValue(t));return t}set selectedValue(t){let e=this._cv,s=e?e.items:null,i=this.selectedValuePath,n=-1;if(s){for(let e=0;e<s.length;e++){const a=s[e],l=i?this._pathValue.getValue(a):a;if(l===t||DateTime.equals(l,t)){n=e;break}if(this.isContentHtml&&isString(l)&&l.indexOf("<")>-1&&toPlainText(l)===t){n=e;break}}this.selectedIndex=n}}get maxHeight(){const t=this.hostElement,e=t?parseFloat(t.style.maxHeight):null;return isNaN(e)?null:e}set maxHeight(t){const e=this.hostElement;if(e){t=asNumber(t,!0);e.style.maxHeight=null==t?"":t+"px"}}showSelection(t=this.containsFocus()){let e=this.hostElement,s=this._children,i=this._getSelectedElement(!1),n=new Rect(0,0,0,0);if(i!=this._oldSel){this._updateItemAttributes(i,!0);this._updateItemAttributes(this._oldSel,!1);this._oldSel=i}i instanceof HTMLElement?n=this._getBoundingClientRect(i):this._children.length>0&&(n=this._getBoundingClientRect(this._getChild(0)));let a=this._getBoundingClientRect(e),l=0;if(this._shGroups){l=this._itemHeight;if(!this._isVirtual){const t=s[0];t&&t.offsetHeight&&hasClass(t,ListBoxClsNames.header)&&(l=t.offsetHeight)}}n.bottom>a.bottom?e.scrollTop+=n.bottom-a.bottom:n.top<a.top+l&&(e.scrollTop-=a.top+l-n.top);this._updateViewRange();i=this._getSelectedElement(!0);setAttribute(e,"aria-activedescendant",i?i.id:null);if(t){(i&&!contains(i,getActiveElement())?i:e).focus()}e.tabIndex=i?-1:this._orgTabIndex}loadList(){this._populateList()}getItemChecked(t){const e=this._cv.items[t],s=this._pathChecked;return isObject(e)&&s.path?s.getValue(e):this._getCheckboxState(t)}setItemChecked(t,e){this._setItemChecked(t,e,!0)}toggleItemChecked(t){this.setItemChecked(t,!this.getItemChecked(t))}get checkedItems(){return this._checkedItems}set checkedItems(t){t=Array.from(new Set(t));const e=asArray(t,!1);if(!this._arrayEquals(e,this._checkedItems)){this._updateCheckedList(e);if(!this._arrayEquals(e,this._checkedItems)){this._checkedItems=e;this.onCheckedItemsChanged()}}}indexOf(t){return(t=closest(t,"."+ListBoxClsNames.listBoxItem))?t[ListBox._DIDX_KEY]:-1}onSelectedIndexChanged(t){this.selectedIndexChanged.raise(this,t)}onItemsChanged(t){this.itemsChanged.raise(this,t)}onLoadingItems(t){this.loadingItems.raise(this,t)}onLoadedItems(t){this.loadedItems.raise(this,t)}onItemChecked(t){this.itemChecked.raise(this,t)}onCheckedItemsChanged(t){this.checkedItemsChanged.raise(this,t)}onFormatItem(t){this.formatItem.raise(this,t)}refresh(t=!0){super.refresh(t);if(this.hostElement){const t=this._cv?this._cv.items.length:0,e=this.formatItem.handlerCount;if(t!=this._itemCount||e!=this._fmtItemHandlers){this._fmtItemHandlers=e;this._populateList()}else this._updateViewRange()}}_updateAriaLabel(){this.hostElement&&(this.ariaLabelledBy?setAriaLabel(this.hostElement,null):setAriaLabel(this.hostElement,this._ariaLabel))}_updateCheckedList(t){let e=this._cv,s=this._pathChecked,i=new Map;if(s&&e){const n=e.sourceCollection;if(n&&n.length){isObject(n[0])||(s=null);t.forEach(t=>{i.set(t,!0)});this._checking=!0;const e=[];n.forEach(t=>{const n=i.has(t);n&&e.push(t);s&&this._isNeedUpdateBnd&&s.setValue(t,n)});this._checking=!1;t=e}e.items.forEach((t,e)=>{this._setItemChecked(e,i.has(t),!1)})}}_getBoundingClientRect(t){if(!t.offsetHeight){let e=this.indexOf(t),s=this.hostElement;if(e>-1&&s){e=this._getElementIndex(e);const t=s.getBoundingClientRect();return new Rect(0,t.top-s.scrollTop+e*this._itemHeight,t.width,this._itemHeight)}}return Rect.fromBoundingRect(t.getBoundingClientRect())}_updateItemAttributes(t,e){if(t){const s=this.checkedMemberPath?"true"===t.getAttribute("aria-selected"):null;toggleClass(t,ControlStateClsNames.selected,e);this._isMenuItem()||setAttribute(t,"aria-selected",this._getAriaSelected(e,s));t.tabIndex=e?this._orgTabIndex:-1}}_getCheckedItems(){let t=this._cv,e=this._pathChecked,s=[];t&&e&&e.path&&(s=t.sourceCollection.filter((s,i)=>{if(t.filter&&!t.filter(s))return!!this._addMode&&e.getValue(s);if(isObject(s))return e.getValue(s);{const e=t.items[i]==s?i:t.items.indexOf(s);return this.getItemChecked(e)}}));return s}_arrayEquals(t,e){if(t==e)return!0;if(!t||!e||t.length!=e.length)return!1;for(let s=0;s<t.length;s++)if(!this._isEqual(t[s],e[s]))return!1;return!0}_getChild(t){t=this._getElementIndex(t);return this._children[t]}_getElementIndex(t){if(this._shGroups){const e=this._children;for(let s=0;s<=t&&s<e.length;s++){const i=e[s];hasClass(i,ListBoxClsNames.header)&&t++}}return t}_setItemChecked(t,e,s=!0){let i=this._cv.items[t],n=this._pathChecked,a=!1,l=this.selectedIndex,h=this._checking;if(isObject(i)&&n.path){if(!!n.getValue(i)!=e){const t=tryCast(this._cv,"IEditableCollectionView");a=!0;this._checking=!0;if(t){t.editItem(i);n.setValue(i,e);t.commitEdit()}else{n.setValue(i,e);t.refresh()}this._checking=h}}else if(s){const t=this._findArrayItem(this._checkedItems,i);(e&&t<0||!e&&t>=0)&&(a=!0)}this._setCheckboxState(t,e);if(s){if(a){this._checkedItems=this._checkedItemsUpdate(i,e);this.onItemChecked();this.onCheckedItemsChanged()}l!=this.selectedIndex&&this.onSelectedIndexChanged()}return a}_checkedItemsUpdate(t,e){const s=this._cv.sourceCollection,i=this._checkedItems;let n=0;if(e){for(let e=0;e<s.length;e++){const a=s[e];if(n<i.length&&this._isEqual(a,i[n]))n++;else if(this._isEqual(a,t))return i.slice(0,n).concat([t]).concat(i.slice(n))}return i}{const e=this._findArrayItem(i,t);return i.slice(0,e).concat(i.slice(e+1))}}_isEqual(t,e){return t===e||Number.isNaN(t)&&Number.isNaN(e)}_findArrayItem(t,e){if(!Number.isNaN(e))return t.indexOf(e);for(let e=0;e<t.length;e++)if(Number.isNaN(t[e]))return e;return-1}_cvCollectionChanged(){if(!this._checking){this._populateList();this.onItemsChanged()}}_cvCurrentChanged(){if(!this._checking){this.showSelection();this._ignoredItemChangedEvents||this.onSelectedIndexChanged()}}_populateList(){const t=this.hostElement,e=this._cv;this._itemCount=e?e.items.length:0;this._isVirtual=this._getVirtual();this._oldSel=null;this._itemsAbove=-1;this._itemsBelow=-1;if(t){let s,i=this.containsFocus();this.onLoadingItems();this._children=[];const n=this._children;t.textContent="";if(e){let i,a=0,l=[];this._ignoreItemFormatterTextArray=[];if(this._shGroups&&e.groups&&e.groups.length){s={};for(let t=0;t<e.groups.length;t++){const n=e.groups[t];s[a]=n;i=this._createHeaderItem(n,t);l.push(i);for(let e=0;e<n.items.length;e++,a++){i=this._createItem(a,t);l.push(i)}}}else for(let t=0;t<e.items.length;t++,a++){i=this._createItem(a);l.push(i)}let h=this._isVirtual?document.createElement("div"):t,o=0;setInnerHTMLSafe(h,l.join(""));for(let t=0;t<h.children.length;t++){const s=h.children[t];o==e.currentPosition&&(this._oldSel=s);s[ListBox._DIDX_KEY]=s.className.indexOf(ListBoxClsNames.header)<0?o++:-1;n.push(s)}}if(this.formatItem.hasHandlers&&e){let t=0,i=e.items,a=new FormatItemEventArgs(0,null,null);for(let e=0;e<n.length;e++){a._item=n[e];if(this._shGroups&&hasClass(a._item,ListBoxClsNames.header)){a._index=-1;a._data=s[t]}else{a._index=t;a._data=i[t++]}this.onFormatItem(a)}}if(this._isVirtual){let e=this._getCanvasContext(),s=null,i=0;for(let t=0;t<n.length;t++){const a=n[t],l=e.measureText(a.textContent);if(l.width>i){s=a;i=l.width}}if(s){let e=!1,i=t.style.display,a=t.style.position;if(!t.parentElement){e=!0;(this._container||document.body).appendChild(t);setCss(t,{display:"",position:"absolute"})}t.appendChild(s);const l=s.style.whiteSpace;s.style.whiteSpace="nowrap";this._ePadTop.style.width=s.offsetWidth+"px";this._itemHeight=s.offsetHeight||this._itemHeight;s.style.whiteSpace=l;this._eSizer.style.height=n.length*this._itemHeight+"px";t.appendChild(this._eSizer);this._clientHeight=t.clientHeight;removeChild(this._eSizer);if(e){removeChild(t);setCss(t,{display:i,position:a})}removeChild(s)}else this._ePadTop.style.width="";this._updateViewRange()}this.checkedItems=this._getCheckedItems();const a=this._getSelectedElement(!0);if(i){(a||t).focus()}else a&&this.showSelection();t.tabIndex=a?-1:this._orgTabIndex;this.onLoadedItems()}}_getCanvasContext(){const t=document.createElement("canvas").getContext("2d"),e=getComputedStyle(this.hostElement);e.fontSize&&e.fontFamily&&(t.font=`${e.fontSize} ${e.fontFamily.split(",")[0]}`);return t}_getVirtual(){if(this._itemCount<=this._vThreshold)return!1;const t=this.hostElement;if(t){const e=getComputedStyle(t);if(parseInt(e.columnCount)>1||e.display.indexOf("flex")>-1||e.display.indexOf("grid")>-1)return!1}return!0}_getMaxSupportedCssHeight(){let t=265e5;isIE()?t=15e5:isFirefox()&&(t=175e5);return t}_updateViewRange(){const t=this.hostElement,e=this._itemHeight,s=this._children;if(!(t&&t.parentElement&&this._isVirtual&&s))return!1;const i=t.scrollTop;assert(e*s.length<this._getMaxSupportedCssHeight(),`The number of items (${s.length}) exceeds the maximum number of items (${Math.floor(this._getMaxSupportedCssHeight()/e)}) allowed for this browser.`);const n=Math.max(t.clientHeight,this._clientHeight),a=Math.floor(i/e),l=Math.min(s.length,Math.ceil((i+n)/e)-a),h=Math.max(0,s.length-a-l);if(a==this._itemsAbove&&h==this._itemsBelow)return!1;this._itemsAbove=a;this._itemsBelow=h;const o=document.createDocumentFragment(),r=this.containsFocus();this._ePadTop.style.height=a*e+"px";o.appendChild(this._ePadTop);if(this.showGroups&&!hasClass(s[a],ListBoxClsNames.header))for(let t=a;t>=0;t--)if(hasClass(s[t],ListBoxClsNames.header)){o.appendChild(s[t]);break}for(let t=a;t<=a+l&&t<s.length;t++)o.appendChild(s[t]);this._ePadBot.style.height=h*e+"px";o.appendChild(this._ePadBot);t.textContent="";t.appendChild(o);const d=(a+l+h)*e-t.scrollHeight;this._ePadBot.style.height=this._ePadBot.offsetHeight-d+"px";const u=this._getSelectedElement(!0);if(r){(u||t).focus({preventScroll:!0})}t.tabIndex=u?-1:this._orgTabIndex;return!0}_getSelectedElement(t){let e=this.selectedIndex,s=this._getElementIndex(e),i=s>-1?this._children[s]:null;t&&i&&!i.offsetHeight&&(i=null);return i}_handleResize(){this._updateViewRange()}_createItem(t,e){const s=this._cv.items[t],i=t==this._cv.currentPosition;let n=this.getDisplayValue(t),a=this.getDisplayValue(t,void 0!==this.itemFormatter);if(1!=this._html){n=escapeHtml(n);a=escapeHtml(a)}a=a.replace(/\bstyle\s*=/gi,"data-style=");this._itemFormatterHelper.innerHTML=a;a=this._itemFormatterHelper.textContent;this._ignoreItemFormatterTextArray.push(a);let l=null;if(this.checkedMemberPath){l=!1;isObject(s)?l=!!this._pathChecked.getValue(s):this._checkedItems&&(l=this._checkedItems.indexOf(s)>-1);n='<label class="wj-checklist-item"><span class="wj-checklist-base" role="checkbox" aria-hidden="true"><span class="wj-checklist-mark"></span></span><span class="wj-checklist-caption">'+n+"</span></label>"}let h=ListBoxClsNames.listBoxItem;i&&(h+=" "+ControlStateClsNames.selected);l&&(h+=" "+ControlStateClsNames.checked);if(this._html){const t=[UtilitesClsNames.separator,ControlStateClsNames.disabled];if(n.indexOf(t[0])>-1||n.indexOf(t[1])>-1){const e=createElement(n);t.forEach(t=>{hasClass(e,t)&&(h+=" "+t)})}}const o="aria-describedby = listGroup-"+e;return`<div id="${"listitem-"+t}" class="${h}" \n role="${this.itemRole}" \n ${void 0!==e?o:""}\n ${this._getAriaSelected(i,l)&&!this._isMenuItem()?'aria-selected="true"':""} \n tabindex="${i&&!this.isDisabled?this._orgTabIndex:-1}">${n}</div>`}_getAriaSelected(t,e){return!!(null!=e?e:t)||null}_createHeaderItem(t,e){const s=escapeHtml(t.name);return`<div id="${"listGroup-"+e}" class="${ListBoxClsNames.listBoxItem} ${ListBoxClsNames.header} ${ControlStateClsNames.disabled}" role="group" tabindex="-1">`+s+"</div>"}_click(t){if(0==t.button&&!t.defaultPrevented){const e=this.indexOf(t.target);if(e>-1){this.selectedIndex=e;if(this.checkedMemberPath){const s=this._getCheckbox(e);if(s){const i=closest(s,".wj-listbox-item");if(t.target==s||t.target==i){i.focus({preventScroll:!0});this.setItemChecked(e,s.checked)}}else{const t=this._children[this._getElementIndex(e)];if(t){t.focus({preventScroll:!0});this.setItemChecked(e,"true"!==t.getAttribute("aria-selected"))}}}else{closest(t.target,"."+ListBoxClsNames.listBoxItem).focus({preventScroll:!0})}}}}_keydown(t){const e=this.selectedIndex;if(!t.defaultPrevented){if(65==t.keyCode&&(t.ctrlKey||t.metaKey)){const e=this.collectionView;if(this.checkedMemberPath&&hasItems(e)){const s=this._children,i=[];let n=!0;for(let t=0;t<s.length;t++){if(hasClass(s[t],_CLS_STATE_DISABLED))continue;const a=e.items[t];i.push(a);n&&!this.checkedItems.includes(a)&&(n=!1)}i.length!==e.items.length?this.checkedItems=n?this.checkedItems.filter(t=>!i.includes(t)):[...this.checkedItems,...i]:this.checkedItems=this.checkedItems.length!=e.items.length?e.items:[];t.preventDefault();return}}if(!t.altKey&&!t.metaKey){t.shiftKey&&(this._isShiftDown=!0);switch(t.keyCode){case Key.Down:t.preventDefault();this._selectNext(t.shiftKey);break;case Key.Up:t.preventDefault();this._selectPrev(t.shiftKey);break;case Key.Home:t.preventDefault();t.ctrlKey&&t.shiftKey?this._selectRange(0):this._selectFirst();break;case Key.End:t.preventDefault();t.ctrlKey&&t.shiftKey?this._selectRange(this._children.length-1):this._selectLast();break;case Key.PageDown:t.preventDefault();this._selectNextPage();break;case Key.PageUp:t.preventDefault();this._selectPrevPage();break;case Key.Space:if(this.checkedMemberPath&&e>-1){const s=this._children[this._getElementIndex(e)];if(s&&this.isItemEnabled(e)&&!s.hasAttribute("disabled")){const i="true"===s.getAttribute("aria-selected");this.setItemChecked(e,!i);t.preventDefault()}}}}}}_getCheckboxState(t){const e=this._children[this._getElementIndex(t)];if(e)return"true"===e.getAttribute("aria-selected")}_setCheckboxState(t,e){const s=this._getElementIndex(t),i=this._children[s];if(i){if(i.querySelector(".wj-checklist-mark")){i.setAttribute("aria-selected",e.toString());toggleClass(i,ControlStateClsNames.checked,e)}else{const t=this._getCheckbox(s);if(t){t.checked=e;const s=closest(t,"."+ListBoxClsNames.listBoxItem);if(s){toggleClass(s,ControlStateClsNames.checked,e);setAttribute(s,"aria-selected",!!e||null)}}}}}_getCheckbox(t){const e=this._children;return this.hostElement&&t>-1&&t<e.length?e[t].querySelector("input[type=checkbox]"):null}_keypress(t){if(!t.defaultPrevented&&!(t.target instanceof HTMLInputElement)&&(t.charCode>32||32==t.charCode&&this._search)){t.preventDefault();this._search+=String.fromCharCode(t.charCode);this._toSearch&&clearTimeout(this._toSearch);this._toSearch=setTimeout(()=>{this._toSearch=null;this._search=""},Control._SEARCH_DELAY);let e=this._findNext();if(e<0&&this._search.length>1){this._search=this._search[this._search.length-1];e=this._findNext()}e>-1&&(this.selectedIndex=e)}}_selectNext(t=!1){const e=this.selectedIndex,s=this._findNextEnabled(e+1);if(s>-1){t&&this._selectRange(s);this.selectedIndex=s}return s>-1}_selectPrev(t=!1){const e=this.selectedIndex,s=this._findPrevEnabled(e-1);if(s>-1){t&&this._selectRange(s);this.selectedIndex=s}return s>-1}_findNextEnabled(t){for(let e=t;e<this._children.length;e++)if(this.isItemEnabled(e))return e;return-1}_findPrevEnabled(t){for(let e=t;e>=0;e--)if(this.isItemEnabled(e))return e;return-1}_selectFirst(){for(let t=0;t<this._children.length;t++)if(this.isItemEnabled(t)){this.selectedIndex=t;return!0}return!1}_selectLast(){for(let t=this._children.length-1;t>=0;t--)if(this.isItemEnabled(t)){this.selectedIndex=t;return!0}return!1}_selectNextPage(){let t=this.hostElement.offsetHeight,e=this._children,s=this._cv?this._cv.items.length:0,i=0;if(t>0)for(let n=this.selectedIndex+1;n<s;n++){const s=e[n].scrollHeight||this._itemHeight;if(i+s>t&&this.isItemEnabled(n)){this.selectedIndex=n;return!0}i+=s}return this._selectLast()}_selectPrevPage(){let t=this.hostElement.offsetHeight,e=this._children,s=0;if(t>0)for(let i=this.selectedIndex-1;i>0;i--){const n=e[i].scrollHeight||this._itemHeight;if(s+n>t&&this.isItemEnabled(i)){this.selectedIndex=i;return!0}s+=n}return this._selectFirst()}_findNext(){if(this.hostElement){let t=this._children.length,e=this.selectedIndex;(e<0||1==this._search.length)&&e++;let s=this._search,i=this.caseSensitiveSearch;i||(s=s.toLowerCase());for(let n=0;n<t;n++){const a=(e+n)%t;if(this.isItemEnabled(a)){let t=this.getDisplayText(a).trim();i||(t=t.toLowerCase());if(0==t.indexOf(s))return a}}}return-1}_initFromSelect(t){let e=t.children,s=[],i=-1;for(let n=0;n<e.length;n++){const a=e[n];if("OPTION"==a.tagName){a.hasAttribute("selected")&&(i=s.length);a.innerHTML?s.push({hdr:a.innerHTML,val:a.getAttribute("value"),cmdParam:a.getAttribute("cmd-param")}):s.push({hdr:`<div class="${UtilitesClsNames.separator}"></div>`});t.removeChild(a);n--}}if(s){this.displayMemberPath="hdr";this.selectedValuePath="val";this.itemsSource=s;this.selectedIndex=i}}_setIsDisabled(t){super._setIsDisabled(t);this._updateTabIndex()}_setTabOrder(t){super._setTabOrder(t);this.isDisabled||this._updateTabIndex()}_isMenuItem(){return"menuitem"===this.itemRole||"menuitemcheckbox"===this.itemRole||"menuitemradio"===this.itemRole}_updateTabIndex(){const t=this.hostElement,e=this._getSelectedElement(!0);if(e){e.tabIndex=this.isDisabled?-1:this._orgTabIndex;t.tabIndex=-1}else t.tabIndex=this.isDisabled?-1:this._orgTabIndex}_selectRange(t){if(-1===this.selectedIndex)return;if(this._shouldClearOnShift&&this._isShiftDown){this.checkedItems=[];this._shouldClearOnShift=!1}const e=Math.min(this.selectedIndex,t),s=Math.max(this.selectedIndex,t),i=this.collectionView.items.slice(e,s+1);this.checkedItems=Array.from(new Set([...this.checkedItems,...i]))}dispose(){if(this._cv){this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv=null}this._items=null;if(this._toSearch){clearTimeout(this._toSearch);this._toSearch=null}this._children=null;this._eSizer=null;this._ePadTop=null;this._ePadBot=null;this._itemFormatterHelper=null;this._ignoreItemFormatterTextArray=null;this._checkedItems=null;super.dispose()}}ListBox._DIDX_KEY="$WJ-DIDX";ListBox._VTHRESH=Number.MAX_VALUE/2;export class FormatItemEventArgs extends EventArgs{constructor(t,e,s){super();this._index=asNumber(t);this._data=e;this._item=asType(s,HTMLElement,!0)}get index(){return this._index}get data(){return this._data}get item(){return this._item}}_addCultureInfo("MultiSelectListBox",{filterPlaceholder:"Filter",selectAll:"Select All",ariaLabels:{multiSelectListBox:"Multi select list box"}});export class MultiSelectListBox extends Control{constructor(t,e){super(t);this._ariaLabel=culture.MultiSelectListBox.ariaLabels.multiSelectListBox;this._selectAllLabel=null;this._filterPlaceholder=null;this._filterText="";this._checkOnFilter=!0;this._delay=Control._SEARCH_DELAY;this.checkedItemsChanged=new Event;this.selectedIndexChanged=new Event;const s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${MultiSelectListBoxClsNames.hostElement}`,s,{_selectAll:"select-all",_filter:"filter",_lbHost:"list-box"});this._selectAll.style.display="none";this._filter.style.display="none";this._lbx=new ListBox(this._lbHost,{checkedMemberPath:MultiSelectListBox._DEF_CHECKED_PATH,loadedItems:()=>this._updateCheckAllCheckbox(),checkedItemsChanged:t=>this.onCheckedItemsChanged(t),selectedIndexChanged:()=>this.onSelectedIndexChanged()});this._cbSelectAll=this._selectAll.querySelector("input[type=checkbox]");this._spSelectAll=this._selectAll.querySelector("label>span");const i=culture.MultiSelectListBox;setText(this._spSelectAll,i.selectAll);this._filter.placeholder=i.filterPlaceholder;this.initialize(e);this.addEventListener(this._filter,"input",()=>{if(this._filter.value!=this._filterText){this._filterText=this._filter.value;this._toSearch&&clearTimeout(this._toSearch);this._toSearch=setTimeout(()=>{this._toSearch=null;this._applyFilter()},this.delay)}});this.addEventListener(this._cbSelectAll,"click",t=>{const e=this._lbx.collectionView;hasItems(e)&&(this.checkedItems=t.target.checked?e.items:[])});this.addEventListener(this.hostElement,"keydown",t=>{const e=this.showFilterInput?this._filter:null,s=this._lbx;if(e&&t.keyCode==Key.F3){setSelectionRange(e,0,e.value.length);t.preventDefault()}if(getActiveElement()==e){let e=!t.altKey;switch(t.keyCode){case Key.Escape:case Key.F4:case Key.Tab:e=!1}e&&t.stopPropagation()}if(!s.containsFocus())switch(t.keyCode){case Key.Up:case Key.Down:this._lbx.focus();if(!t.altKey){const e=s.selectedIndex+(t.keyCode==Key.Up?-1:1);s.selectedIndex=Math.max(0,e)}t.preventDefault()}},!0);this.hostElement.tabIndex=-1;this._lbx.tabOrder=this._orgTabIndex;this._updateAriaLabel()}static get controlTemplate(){MultiSelectListBox._ctrlTemplate||(MultiSelectListBox._ctrlTemplate=`<div class="${ControlClsNames.template} ${ListBoxClsNames.hostElement}"><input wj-part="filter" class="${InputFormElementsClsNames.formControl}" tabindex="-1"><div wj-part="select-all" class="${MultiSelectListBoxClsNames.header} ${MultiSelectListBoxClsNames.selectAll} ${ListBoxClsNames.listBoxItem}"><label><input type="checkbox" tabindex="-1"> <span></span></label></div><div wj-part="list-box"/></div>`);return MultiSelectListBox._ctrlTemplate}static set controlTemplate(t){MultiSelectListBox._ctrlTemplate=t}get itemsSource(){return this._lbx.itemsSource}set itemsSource(t){this._lbx.itemsSource=t}get collectionView(){return this._lbx.collectionView}get virtualizationThreshold(){return this._lbx.virtualizationThreshold}set virtualizationThreshold(t){this._lbx.virtualizationThreshold=t}get displayMemberPath(){return this._lbx.displayMemberPath}set displayMemberPath(t){this._lbx.displayMemberPath=t}get isContentHtml(){return this._lbx.isContentHtml}set isContentHtml(t){this._lbx.isContentHtml=t}get caseSensitiveSearch(){return this._lbx.caseSensitiveSearch}set caseSensitiveSearch(t){this._lbx.caseSensitiveSearch=t}get delay(){return this._delay}set delay(t){this._delay=asNumber(t,!1,!0)}get showGroups(){return this._lbx.showGroups}set showGroups(t){this._lbx.showGroups=t}get checkOnFilter(){return this._checkOnFilter}set checkOnFilter(t){if(t!=this.checkOnFilter){this._checkOnFilter=asBoolean(t);this.checkedItems=[]}}get selectedIndex(){return this._lbx.selectedIndex}set selectedIndex(t){this._lbx.selectedIndex=t}get listBox(){return this._lbx}get showFilterInput(){return""==this._filter.style.display}set showFilterInput(t){if(t!=this.showFilterInput){this._filter.style.display=asBoolean(t)?"":"none";if(!this.showFilterInput){this._filter.value="";this._applyFilter()}}}get filterInputPlaceholder(){return this._filterPlaceholder}set filterInputPlaceholder(t){if(t!=this._filterPlaceholder){this._filterPlaceholder=asString(t);this.refresh()}}get showSelectAllCheckbox(){return""==this._selectAll.style.display}set showSelectAllCheckbox(t){this._selectAll.style.display=asBoolean(t)?"":"none"}get selectAllLabel(){return this._selectAllLabel}set selectAllLabel(t){if(t!=this._selectAllLabel){this._selectAllLabel=asString(t);this.refresh()}}get checkedMemberPath(){const t=this.listBox.checkedMemberPath;return t!=MultiSelectListBox._DEF_CHECKED_PATH?t:null}set checkedMemberPath(t){t=asString(t);this.listBox.checkedMemberPath=t||MultiSelectListBox._DEF_CHECKED_PATH}get checkedItems(){return this.listBox.checkedItems}set checkedItems(t){this.listBox.checkedItems=asArray(t)}get ariaLabelledBy(){return this.hostElement.getAttribute("aria-labelledby")}set ariaLabelledBy(t){_setAriaLabelBy(this,this.hostElement,t,this._updateAriaLabel.bind(this))}_updateAriaLabel(){const t=culture.MultiSelectListBox;setAriaLabel(this._selectAll,t.selectAll);setAriaLabel(this._filter,t.filterPlaceholder);this.hostElement&&(this.ariaLabelledBy?setAriaLabel(this.hostElement,null):setAriaLabel(this.hostElement,this._ariaLabel))}onCheckedItemsChanged(t){this._updateCheckAllCheckbox();this.checkedItemsChanged.raise(this,t);t._items&&"object"==typeof t._items[0]&&(this.checkedMemberPath||MultiSelectListBox._DEF_CHECKED_PATH)in t._items[0]&&setTimeout(()=>{this._lbx._updateCheckedList(this.checkedItems)},0)}onSelectedIndexChanged(t){this.selectedIndexChanged.raise(this,t)}refresh(t=!0){super.refresh(t);if(this.hostElement){const t=culture.MultiSelectListBox;this._filter.placeholder=null!=this._filterPlaceholder?this._filterPlaceholder:t.filterPlaceholder;this._spSelectAll&&setText(this._spSelectAll,null!=this._selectAllLabel?this._selectAllLabel:t.selectAll);this._updateCheckAllCheckbox()}}dispose(){this.listBox.dispose();super.dispose()}_applyFilter(){const t=this._lbx,e=t.collectionView,s=this._filter.value,i=s?new RegExp(escapeRegExp(s),t.caseSensitiveSearch?"":"i"):null,n=this.displayMemberPath,a=n?new Binding(n):null,l=this.checkOnFilter?null:this.checkedItems;e.filter=t=>{if(null!=i){if(l&&l.indexOf(t)>-1)return!0;a&&(t=a.getValue(t));this.isContentHtml&&(t=toPlainText(t));return null!=t&&i.test(t.toString())}return!0};t.selectedIndex=Math.max(0,t.selectedIndex);this._checkOnFilter&&(this.checkedItems=i?e.items:[])}_updateCheckAllCheckbox(){const t=this._lbx.collectionView,e=this._cbSelectAll;if(hasItems(t)){const s=t.items.length,i=this.checkedItems.length;setChecked(e,i==s||0!=i&&null);e.disabled=!1}else{setChecked(e,!1);e.checked=!1;e.disabled=!0}}_setIsDisabled(t){super._setIsDisabled(t);this.hostElement.tabIndex=-1;this.isDisabled?this._lbx.tabOrder=-1:this._lbx.tabOrder=this._orgTabIndex}_setTabOrder(t){this._orgTabIndex=t;this._lbx.tabOrder=t}tryForceClearDelayAndFilter(){if(this._toSearch){const t=this._delay;this._filterText=this._filter.value;this._toSearch&&clearTimeout(this._toSearch);this._toSearch=setTimeout(()=>{this._toSearch=null;this._applyFilter()},0);this._delay=t}}onLostFocus(){this.tryForceClearDelayAndFilter();super.onLostFocus()}}MultiSelectListBox._DEF_CHECKED_PATH="$checked";MultiSelectListBox._ctrlTemplate="";_addCultureInfo("Calendar",{ariaLabels:{calendar:"Calendar",chooseDate:"Choose Date",chooseMonth:"Choose Month",monthView:"Month View",yearView:"Year View",selectYear:"Select Year",prvMo:"Previous Month",today:"Select Today",nxtMo:"Next Month",prvYr:"Previous Year",currMo:"Current Month",nxtYr:"Next Year"},buttons:{ok:"OK",cancel:"Cancel"}});export var DateSelectionMode;!function(t){t[t.None=0]="None";t[t.Day=1]="Day";t[t.Month=2]="Month";t[t.Range=3]="Range"}(DateSelectionMode||(DateSelectionMode={}));export var ShowMonthPicker;!function(t){t[t.None=0]="None";t[t.FirstMonth=1]="FirstMonth";t[t.LastMonth=2]="LastMonth";t[t.FirstAndLastMonths=3]="FirstAndLastMonths";t[t.AllMonths=4]="AllMonths";t[t.Outside=5]="Outside"}(ShowMonthPicker||(ShowMonthPicker={}));export var CalendarTabKeyAction;!function(t){t[t.None=0]="None";t[t.All=1]="All"}(CalendarTabKeyAction||(CalendarTabKeyAction={}));export class Calendar extends Control{constructor(t,e){super(t);this._yrPicker=!0;this._mtPicker=ShowMonthPicker.FirstMonth;this._wksBefore=0;this._wksAfter=0;this._rngMin=0;this._rngMax=0;this._min=null;this._max=null;this._readOnly=!1;this._handleWheel=!0;this._fdw=null;this._selMode=DateSelectionMode.Day;this._ariaLabel=culture.Calendar.ariaLabels.calendar;this._tmYrHidden=0;this._fmtYrMo="y";this._fmtYr="yyyy";this._fmtDayHdr="ddd";this._fmtDay="d ";this._fmtMonths="MMM";this._fmtDayTitle="dddd";this.valueChanged=new Event;this.rangeEndChanged=new Event;this.rangeChanged=new Event;this.displayMonthChanged=new Event;this.formatItem=new Event(()=>{this.invalidate()});this._updateCellFocus=(t,e)=>{toggleClass(t,CalendarClsNames.focused,e);setAttribute(t,"tabIndex",e?"0":"-1");e&&this.containsFocus()&&!this._isButtonFocused()&&t.focus()};this.cancelButtonClicked=new Event;this.OKButtonClicked=new Event;this._enterKeyDownToSetValue=new Event;this._value=this._rngEnd=DateTime.newDate();this._month=this._getMonth(this._value);this._cals=[this];this._createChildren();this._createYearPicker();const s=this.hostElement,i=this.addEventListener.bind(this);i(s,"keydown",this._keydown.bind(this));i(s,"click",this._click.bind(this));this._focusValue=DateTime.newDate();setAttribute(s,"role","application");setAttribute(this.hostElement,"aria-label",this._ariaLabel);this._keyActionTab=CalendarTabKeyAction.None;this._rptUp=new _ClickRepeater(this._btnPrv);this._rptDn=new _ClickRepeater(this._btnNxt);this.addEventListener(s,"wheel",t=>{if(this.handleWheel&&!t.defaultPrevented&&!this.isReadOnly&&this.containsFocus()){t.deltaY<0?this._btnPrv.click():this._btnNxt.click();t.preventDefault()}});this.initialize(e);this.refresh(!0)}static get controlTemplate(){Calendar._ctrlTemplate||(Calendar._ctrlTemplate=`<div class="${ControlClsNames.content} ${CalendarClsNames.calendarOuter}"><div wj-part="tbl-header" class=${CalendarClsNames.calendarHeader}><div wj-part="btn-month" class=${CalendarClsNames.monthSelect} role="button" aria-live="polite"><span wj-part="span-month"></span> <span class=${GlyphClsNames.down}></span></div><div class="${InputFormElementsClsNames.btnGroup}"><button wj-part="btn-prev" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.left}></span></button><button wj-part="btn-today" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.circle}></span></button><button wj-part="btn-next" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.right}></span></button></div></div><table wj-part="tbl-month" class=${CalendarClsNames.calendarMonth} role="grid"></table><table wj-part="tbl-year" class=${CalendarClsNames.calendarYear} role="grid"></table></div>`);return Calendar._ctrlTemplate}static set controlTemplate(t){Calendar._ctrlTemplate=t}get value(){return this._value}set value(t){if((!DateTime.sameDate(t,this._value)||!DateTime.sameTime(t,this._value))&&(!(this.showConfirmationButtons&&DateTime.sameDate(t,this.rangeEnd)&&DateTime.sameTime(t,this.rangeEnd))||this._isSpaceDownForSetValue)){this._clearingRangeEnd=!DateTime.equals(this._value,t);this.rangeEnd=null;this._clearingRangeEnd=!1;t=asDate(t,!0);t=this._clamp(t);if(this._valid(t)||null==t){this.ensureVisible(t||new Date);if(!DateTime.equals(this._value,t)){this._value=t;this.focusMode&&(this._focusValue=t);this.invalidate(!1);this.onValueChanged()}}if(!this.value){const t=this.min,e=this.max,s=this.displayMonth;e&&e<s?this.ensureVisible(e):t&&t>s&&this.ensureVisible(t)}}}get focusValue(){return this._focusValue}set focusValue(t){t=asDate(t,!0);t=this._clamp(t);if(this._valid(t)||null==t){this.ensureVisible(t||new Date);this._focusValue=t;this._getCalendars().forEach(e=>{e._focusValue=t});this.invalidate(!1)}}get rangeEnd(){return this._rngEnd}set rangeEnd(t){t=asDate(t,!0);if((t=this._clamp(t))&&this._value&&this._rngMode()){t<this._value&&(t=this._value);const e=this._rngMin,s=this._rngMax;if(e&&e>0||s&&s>0){const i=this._value,n=Math.ceil((t.getTime()-i.getTime())/864e5)+1;e&&e>0&&n<e&&(t=DateTime.addDays(i,e-1));s&&s>0&&n>s&&(t=DateTime.addDays(i,s-1))}}if((this._valid(t)||null==t)&&!DateTime.equals(this._rngEnd,t)){this._rngEnd=t;this.ensureVisible(t);this.invalidate(!1);this._clearingRangeEnd||this.onRangeEndChanged()}}get rangeMin(){return this._rngMin}set rangeMin(t){if((t=asNumber(t,!0,!0))!=this._rngMin){this._rngMin=t;this._syncProp(this,"rangeMin");this._rngMode()&&this._rngEnd&&(this.rangeEnd=this._rngEnd)}}get rangeMax(){return this._rngMax}set rangeMax(t){if((t=asNumber(t,!0,!0))!=this._rngMax){this._rngMax=t;this._syncProp(this,"rangeMax");this._rngMode()&&this._rngEnd&&(this.rangeEnd=this._rngEnd)}}get min(){return this._min}set min(t){if((t=asDate(t,!0))!=this.min){this._min=t;this._syncProp(this,"min");this.refresh();!this.value&&t&&t>this.displayMonth&&this.ensureVisible(t)}}get max(){return this._max}set max(t){if((t=asDate(t,!0))!=this.max){this._max=t;this._syncProp(this,"max");this.refresh();!this.value&&t&&t<this.displayMonth&&this.ensureVisible(t)}}get selectionMode(){return this._selMode}set selectionMode(t){const e=DateSelectionMode;if((t=asEnum(t,e))!=this._selMode){this._selMode=t;this._mthMode()&&(this.monthView=!1);t!=e.Range||this._rngEnd||(this._rngEnd=this._value);this.refresh();this._syncProp(this,"selectionMode")}}get isReadOnly(){return this._readOnly}set isReadOnly(t){this._readOnly=asBoolean(t);toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly);this._syncProp(this,"isReadOnly")}get handleWheel(){return this._handleWheel}set handleWheel(t){if(this._handleWheel!=t){this._handleWheel=asBoolean(t);this._syncProp(this,"handleWheel")}}get repeatButtons(){return!this._rptUp.disabled}set repeatButtons(t){this._rptUp.disabled=this._rptDn.disabled=!asBoolean(t);this._syncProp(this,"repeatButtons")}get showYearPicker(){return this._yrPicker}set showYearPicker(t){if(t!=this._yrPicker){this._yrPicker=asBoolean(t);this._syncProp(this,"showYearPicker")}}get showMonthPicker(){return this._mtPicker}set showMonthPicker(t){if(t!=this._mtPicker){const e=ShowMonthPicker;isBoolean(t)&&(t=t?e.FirstMonth:e.None);this._mtPicker=asEnum(t,e);toggleClass(this.hostElement,InputFormElementsClsNames.btnsOutside,this._getShowMonthPicker()==e.Outside);this.refresh();this._syncProp(this,"showMonthPicker")}}get firstDayOfWeek(){return this._fdw}set firstDayOfWeek(t){if(t!=this._fdw){if((t=asNumber(t,!0))&&(t>6||t<0))throw"firstDayOfWeek must be between 0 and 6 (Sunday to Saturday).";this._fdw=t;this.refresh();this._syncProp(this,"firstDayOfWeek")}}get displayMonth(){return this._month}set displayMonth(t){t=asDate(t);t=this._getMonth(t);const e=this._getDisplayMonthRange();e.to&&t>e.to&&(t=e.to);e.from&&t<e.from&&(t=e.from);if(!DateTime.equals(this.displayMonth,t)){this._month=t;this.invalidate(!0);this.onDisplayMonthChanged()}}get monthCount(){const t=this.hostElement;return t?t.querySelectorAll("."+CalendarClsNames.hostElement).length+1:0}set monthCount(t){const e=this.hostElement;if(t!=this.monthCount&&e){const s=e.querySelectorAll("."+CalendarClsNames.hostElement);t=asInt(t,!1);assert(t>0,"monthCount must be >= 1.");assert(1==t||!closest(e.parentElement,"."+CalendarClsNames.hostElement),"Only top-level calendars can set monthCount.");for(let t=0;t<s.length;t++){const e=s[t];removeChild(e);this._getCalendar(e).dispose()}this._cals=[this];for(let s=1;s<t;s++){const t=new Calendar(document.createElement("div"),{itemFormatter:this.itemFormatter,itemValidator:this.itemValidator,formatItem:(t,e)=>this.onFormatItem(e)});t._selMode=this._selMode;t._value=this._value;t._rngEnd=this._rngEnd;for(const e in this)if(!/^(_.*|constructor|displayMonth|monthCount|hostElement|rightToLeft|isUpdating|isTouching|keyActionTab)$/.test(e)){const s=this[e];isFunction(s)||s instanceof Event||(t[e]=s)}this._cals.push(t);e.appendChild(t.hostElement)}this.updateCalendarsTabindex();toggleClass(e,CalendarClsNames.calendarMultiMonth,t>1);this._syncProp(this,"displayMonth")}}get formatYearMonth(){return this._fmtYrMo}set formatYearMonth(t){if(t!=this._fmtYrMo){this._fmtYrMo=asString(t);this._syncProp(this,"formatYearMonth");this.invalidate()}}get formatDayHeaders(){return this._fmtDayHdr}set formatDayHeaders(t){if(t!=this._fmtDayHdr){this._fmtDayHdr=asString(t);this._syncProp(this,"formatDayHeaders");this.invalidate()}}get formatDays(){return this._fmtDay}set formatDays(t){if(t!=this._fmtDay){this._fmtDay=asString(t);this._syncProp(this,"formatDays");this.invalidate()}}get formatYear(){return this._fmtYr}set formatYear(t){if(t!=this._fmtYr){this._fmtYr=asString(t);this._syncProp(this,"formatYear");this.invalidate()}}get formatMonths(){return this._fmtMonths}set formatMonths(t){if(t!=this._fmtMonths){this._fmtMonths=asString(t);this._syncProp(this,"formatMonths");this.invalidate()}}get showHeader(){return"none"!=this._tbHdr.style.display}set showHeader(t){if(t!=this.showHeader){this._tbHdr.style.display=asBoolean(t)?"":"none";this._syncProp(this,"showHeader")}}get monthView(){return"none"!=this._tbMth.style.display}set monthView(t){if(t!=this.monthView){this._tbMth.style.display=t?"":"none";this._tbYr.style.display=t?"none":"";if(!t&&this.isThisMainCalendar()){const t=this.focusValue.getDate(),e=DateTime.clone(this.displayMonth);e.setDate(t);this.focusValue=e}this.refresh();const e=culture.Calendar.ariaLabels;setAriaLabel(this._btnPrv,t?e.prvMo:e.prvYr);setAriaLabel(this._btnTdy,t?e.today:e.currMo);setAriaLabel(this._btnNxt,t?e.nxtMo:e.nxtYr);setAriaLabel(this._btnMth,t?e.monthView:e.yearView);this._updateMonthButtonAria();this._syncProp(this,"monthView")}}get weeksBefore(){return this._wksBefore}set weeksBefore(t){if(t!=this._wksBefore){this._wksBefore=Math.floor(asNumber(t,!1,!0));this._syncProp(this,"weeksBefore");this.invalidate()}}get weeksAfter(){return this._wksAfter}set weeksAfter(t){if(t!=this._wksAfter){this._wksAfter=Math.floor(asNumber(t,!1,!0));this._syncProp(this,"weeksAfter");this.invalidate()}}get itemFormatter(){return this._itemFormatter}set itemFormatter(t){if(t!=this._itemFormatter){this._itemFormatter=asFunction(t);this._syncProp(this,"itemFormatter");this.invalidate()}}get itemValidator(){return this._itemValidator}set itemValidator(t){if(t!=this._itemValidator){this._itemValidator=asFunction(t);this._syncProp(this,"itemValidator");this.invalidate()}}hitTest(t){const e=t instanceof MouseEvent?t.target:t instanceof Element?t:null;assert(null!=e,"MouseEvent or Element expected");return e?e[Calendar._DATE_KEY]:null}ensureVisible(t){if(null!=t){const e=this._getCalendars(),s=e.indexOf(this),i=e[0],n=e[e.length-1];t<i.displayMonth||!this.monthView&&this.focusMode?this.displayMonth=DateTime.addMonths(this._getMonth(t),s):t>n.displayMonth&&(this.displayMonth=DateTime.addMonths(this._getMonth(t),s-e.length+1))}}onValueChanged(t){this.valueChanged.raise(this,t);this._syncProp(this,"value")}onRangeEndChanged(t){this.rangeEndChanged.raise(this,t);this._syncProp(this,"rangeEnd");this._value&&this._rngEnd&&this.onRangeChanged(t)}onRangeChanged(t){this.rangeChanged.raise(this,t)}onDisplayMonthChanged(t){this.displayMonthChanged.raise(this,t);this._syncProp(this,"displayMonth")}onFormatItem(t){this.formatItem.raise(this,t)}_containsFocusImpl(t){return super._containsFocusImpl(t)||this._lbYears._containsFocusImpl(t)}dispose(){this._rptUp.element=null;this._rptDn.element=null;this._lbYears.dispose();super.dispose()}refresh(t=!0){const e=this.hostElement,s=this.containsFocus();if(!e)return;super.refresh(t);t&&this._updateContent();this._updateSelection();const i=this._getDisplayMonthRange(),n=this.displayMonth,a=null==i.from||n>i.from,l=null==i.to||n<i.to;enable(this._btnPrv,a);enable(this._btnNxt,l);a&&l||this.containsFocus()||this.focus();let h=!0;const o=DateTime.newDate(),r=this._min&&this._min>o,d=this._max&&this._max<o;(r||d)&&(h=!1);enable(this._btnTdy,h);if(s&&!this._isButtonFocused()){const t=(this.monthView?this._tbMth:this._tbYr).querySelector("td."+ControlStateClsNames.selected)||e;t&&!this.focusMode&&t.focus()}const u=this._getCalendars();u.length>1&&this.isThisMainCalendar()&&u.forEach((e,s)=>{s>0&&e.refresh(t)})}_getShowMonthPicker(){const t=ShowMonthPicker,e=this._getCalendars(),s=e.indexOf(this),i=this.showMonthPicker;switch(i){case t.FirstMonth:case t.Outside:return 0==s?i:0;case t.LastMonth:return s==e.length-1?i:0;case t.FirstAndLastMonths:return 0==s||s==e.length-1?i:0;case t.AllMonths:return i}return 0}_getDisplayMonthRange(){const t={from:null,to:null};if(this.min||this.max){const e=this._getCalendars(),s=e.indexOf(this),i=this._mthMode()?DateTime.addYears:DateTime.addMonths;this.min&&(t.from=i(this._getMonth(this.min),s));this.max&&(t.to=i(this._getMonth(this.max),s-e.length+1))}return t}_getCalendar(t){return Control.getControl(t)}_getCalendars(){const t=closest(this.hostElement,"."+CalendarClsNames.calendarMultiMonth);return(t?this._getCalendar(t):this)._cals}_syncProp(t,e){if(!this._syncing){const s=this._getCalendars();if(s&&s.length>1){let i=t[e],n=this._mthMode()?DateTime.addYears:DateTime.addMonths;"displayMonth"==e&&(i=n(i,-s.indexOf(t)));s[0].deferUpdate(()=>{this._syncing=!0;s.forEach((s,a)=>{if(s!=t){const t=s.displayMonth;s[e]="displayMonth"==e?n(i,a):i;if("value"==e){s.displayMonth=t;this._rngMode()&&(s.rangeEnd=null)}}});this._syncing=!1})}}}_updateContent(){const t=this.displayMonth,e=Globalize.format,s=DateTime,i=this._getShowMonthPicker();setText(this._spMth,e(t,this._fmtYrMo));const n=this._btnMth.querySelector("."+GlyphClsNames.down);n&&(n.style.display=this._mthMode()||!i?"none":"");const a=closest(this._btnTdy,"."+InputFormElementsClsNames.btnGroup);a&&(a.style.display=i?"":"none");const l=null!=this._fdw?this._fdw:Globalize.getFirstDayOfWeek(),h=s.addDays(t,-(t.getDay()-l+7)%7),o=s.monthLast(t);let r=this._tbMth.querySelectorAll("th");this._updateMonthButtonAria();for(let t=0;t<7&&t<r.length;t++){const i=s.addDays(h,t);setText(r[t],e(i,this._fmtDayHdr));setAttribute(r[t],"tabIndex","-1");setAttribute(r[t],"abbr",e(i,this._fmtDayTitle))}let d=!1;this._dateViewContainsFocus()&&(d=!0);const u=this._tbMth.querySelectorAll("tr");for(let t=1;t<u.length;t++)removeChild(u[t]);d&&this.focus();let c=s.addDays(h,-7*this._wksBefore);for(let t=0;t<this._wksBefore;t++)c=this._addWeek(c,CalendarClsNames.weekBefore);for(;c<=o;)c=this._addWeek(c);for(let t=0;t<this._wksAfter;t++)c=this._addWeek(c,CalendarClsNames.weekAfter);r=this._tbYr.querySelectorAll("td");const _=this._tbYr.querySelectorAll("th");_.length&&setText(_[0],e(t,this._fmtYr));for(let i=0;i<r.length;i++){c=s.newDate(t.getFullYear(),i,1);const n=r[i],a=!this._monthInValidRange(c);n[Calendar._DATE_KEY]=c;const l=Globalize.format(c,"MMMM yyyy");setText(n,e(c,this._fmtMonths));toggleClass(n,ControlStateClsNames.disabled,a);setAriaLabel(n,l);setAttribute(n,"tabIndex","-1");setAttribute(n,"abbr",l)}this._confirmationButtonContainer&&(this._confirmationButtonContainer.style.display=this.showConfirmationButtons?"":"none");this._updateButtonTabIndex()}_updateSelection(){const t=Calendar._DATE_KEY,e=DateTime;let s=this._tbMth.querySelectorAll("td");for(let i=0;i<s.length;i++){let n=this.rangeEnd;this._rngMode()||(n=null);const a=s[i],l=a[t],h=this.value,o=this._selMode&&null!=h&&e.sameDate(l,h),r=this._selMode&&null!=h&&e.sameDate(l,n),d=this._selMode&&null!=h&&l>h&&null!=n&&l<=n;toggleClass(a,ControlStateClsNames.selected,o);toggleClass(a,ControlStateClsNames.multiSelected,d);toggleClass(a,ControlStateClsNames.lastSelected,r);setAttribute(a,"aria-selected",!!o||null);this._customizeCell(i,l,a)}s=this._tbYr.querySelectorAll("td");for(let e=0;e<s.length;e++){const i=s[e],n=i[t],a=this._sameMonth(n,this.value);toggleClass(i,ControlStateClsNames.selected,a);setAttribute(i,"aria-selected",!!a||null)}this.focusMode&&!0!==this.isDisabled&&-1!==this.tabOrder&&this._updateFocusInAccessibilityMode()}_updateFocusInAccessibilityMode(){const t=Calendar._DATE_KEY,e=DateTime,s=this._getCalendars();for(let i=0;i<s.length;i++){const n=s[i]._tbMth.querySelectorAll("td");for(let s=0;s<n.length;s++){const i=n[s],a=i[t],l=this._selMode&&null!=this.focusValue&&e.sameDate(a,this.focusValue)&&!hasClass(i,CalendarClsNames.dayOtherMonth);this._updateCellFocus(i,l)}}const i=s[0]._tbYr.querySelectorAll("td");for(let e=0;e<i.length;e++){const s=i[e],n=s[t],a=null!=this.focusValue&&this._sameMonth(n,this.focusValue);this._updateCellFocus(s,a)}}_addWeek(t,e){const s=this._createElement("tr",this._tbMth,e),i=DateTime;for(let e=0;e<7;e++){const n=this._createElement("td",s),a=i.addDays(t,e);n[Calendar._DATE_KEY]=a;setText(n,Globalize.format(a,this._fmtDay));setAriaLabel(n,Globalize.format(a,"D"));const l=!this._valid(a),h=a.getDay(),o=a.getMonth()!=this.displayMonth.getMonth();toggleClass(n,CalendarClsNames.dayToday,i.sameDate(a,i.newDate()));toggleClass(n,CalendarClsNames.dayWeekend,0==h||6==h);toggleClass(n,CalendarClsNames.dayOtherMonth,o);toggleClass(n,ControlStateClsNames.invalid,l||!this._inValidRange(a));setAttribute(n,"aria-disabled",l||!this._inValidRange(a))}return i.addDays(t,7)}_customizeCell(t,e,s){isFunction(this.itemFormatter)&&this.itemFormatter(e,s);if(this.formatItem.hasHandlers){const i=new FormatItemEventArgs(t,e,s);this.onFormatItem(i)}}_canChangeValue(){return!this._readOnly&&this._selMode!=DateSelectionMode.None}_valid(t){return!(!isDate(t)||!DateTime.sameDate(t,this._clamp(t)))&&(!isFunction(this.itemValidator)||this.itemValidator(t))}_inValidRange(t){const e=DateTime.fromDateTime;return!(this.min&&t<e(this.min,t))&&!(this.max&&t>e(this.max,t))}_monthInValidRange(t){if(this.min||this.max){const e=t.getFullYear(),s=t.getMonth(),i=DateTime,n=i.newDate(e,s,1),a=i.newDate(e,s+1,0);if(this.min&&this.min>a)return!1;if(this.max&&this.max<n)return!1}return!0}_sameMonth(t,e){return isDate(t)&&isDate(e)&&t.getMonth()==e.getMonth()&&t.getFullYear()==e.getFullYear()}_getValidDate(t,e){if(isDate(t)){let s=t.getFullYear(),i=t.getMonth()+(e?0:1),n=e?1:0,a=DateTime,l=a.newDate(s,i,n),h=e?1:-1;for(let t=0;t<31;t++){if(this._valid(l))return l;l=a.addDays(l,h)}}return null}_clamp(t){if(t){const e=DateTime.fromDateTime;if(this.min){const s=e(this.min,t);t<s&&(t=s)}if(this.max){const s=e(this.max,t);t>s&&(t=s)}}return t}_createChildren(){const t=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${CalendarClsNames.hostElement}`,t,{_tbHdr:"tbl-header",_btnMth:"btn-month",_spMth:"span-month",_btnPrv:"btn-prev",_btnTdy:"btn-today",_btnNxt:"btn-next",_tbMth:"tbl-month",_tbYr:"tbl-year"});this._tbYr.style.display="none";const e=culture.Calendar.ariaLabels;setAriaLabel(this._tbMth,e.chooseDate);setAriaLabel(this._tbYr,e.chooseMonth);setAriaLabel(this._btnPrv,e.calendar);setAriaLabel(this._btnMth,e.monthView);setAriaLabel(this._btnPrv,e.prvMo);setAriaLabel(this._btnTdy,e.today);setAriaLabel(this._btnNxt,e.nxtMo);let s=this._createElement("tr",this._tbMth,CalendarClsNames.header);for(let t=0;t<7;t++){this._createElement("th",s).setAttribute("scope","col")}s=this._createElement("tr",this._tbYr,CalendarClsNames.header);this._showYearListBoxButton=this._createElement("th",s);this._showYearListBoxButton.setAttribute("colspan","4");this._showYearListBoxButton.setAttribute("scope","col");setAriaLabel(this._showYearListBoxButton,e.selectYear);toggleClass(this._showYearListBoxButton,CalendarClsNames.selectedYear);this._showYearListBoxButton.setAttribute("role","button");this._showYearListBoxButton.setAttribute("tabIndex","-1");for(let t=0;t<3;t++){s=this._createElement("tr",this._tbYr);for(let t=0;t<4;t++)this._createElement("td",s)}}_createYearPicker(){const t=this.hostElement,e=this._createElement("div",null,`${DropDownClsNames.dropDownPanel} ${CalendarClsNames.yearPicker}`);e.tabIndex=this._orgTabIndex;this._lbYears=new ListBox(e,{lostFocus:t=>{hidePopup(e);this._tmYrHidden=Date.now();this.removeEventListener(window,"touchstart");if(t.selectedIndex>-1){const e=DateTime.clone(this.displayMonth);e.setFullYear(t.selectedIndex+t.itemsSource[0]);this.displayMonth=e;this.focusMode&&(this.focusValue=e)}this.keyActionTab===CalendarTabKeyAction.All&&this._showYearListBoxButton.focus()}});setAriaLabel(this._lbYears.hostElement,culture.Calendar.ariaLabels.selectYear);this.addEventListener(e,"keydown",e=>{switch(e.keyCode){case Key.Enter:t.focus();break;case Key.Space:t.focus();e.preventDefault();break;case Key.Escape:this._lbYears.selectedIndex=-1;t.focus()}e.defaultPrevented&&e.stopPropagation()});this.addEventListener(e,"click",e=>{t.focus()})}_createElement(t,e,s){const i=document.createElement(t);s&&addClass(i,s);e&&e.appendChild(i);return i}_click(t){if(!t.defaultPrevented&&0==t.button){let e=!1,s=t.target;if(contains(this._btnMth,s)&&!this._mthMode()&&this._getShowMonthPicker()){this.monthView=!this.monthView;e=!0}else if(contains(this._btnPrv,s)){this._navigate(-1);if(this.focusMode){const t=DateTime.addMonths(this.focusValue,-1);this.focusValue=t}e=!0}else if(contains(this._btnNxt,s)){this._navigate(1);if(this.focusMode){const t=DateTime.addMonths(this.focusValue,1);this.focusValue=t}e=!0}else if(contains(this._btnTdy,s)){this._navigate(0);this.focusMode&&(this.focusValue=this.value);e=!0}if(s&&!e&&this._yrPicker&&contains(this._tbYr,s)&&closest(s,"."+CalendarClsNames.header)){this._showYearPickerAction(t);return}if(s&&!e){const t=closest(s,"td");if(t){const s=this.hitTest(t),i=DateTime.fromDateTime;if(this.monthView){if(s&&this._canChangeValue()){const t=i(s,this._value);this._inValidRange(t)&&this._valid(t)&&(this._rngMode()&&this.value&&!this.rangeEnd&&t>=this.value?this.rangeEnd=t:this.value=t);e=!0}}else if(s){this.displayMonth=s;if(this._mthMode()){if(this._canChangeValue()){const t=i(this.displayMonth,this.value);this._inValidRange(t)&&(this.value=t)}}else this.monthView=!0;e=!0}}}if(e){t.preventDefault();this.focusMode||0===t.detail||this.focus()}}}_keydown(t){this._isSpaceDownForSetValue=!1;if(t.defaultPrevented)return;if(t.altKey)switch(t.keyCode){case Key.Up:case Key.Down:return;case Key.End:this._navigate(0);t.preventDefault();return}const e=t.target;if(("Enter"===t.key||"Space"===t.code)&&e&&this.keyActionTab===CalendarTabKeyAction.All){if(contains(this._btnMth,e)&&!this._mthMode()&&this._getShowMonthPicker()){this.monthView=!this.monthView;"Space"===t.code&&t.preventDefault();return}if(this._yrPicker&&contains(this._tbYr,e)&&closest(e,"."+CalendarClsNames.header)){this._showYearPickerAction(t);return}}if(this.focusMode){if(("Enter"===t.key||"Space"===t.code)&&e.classList.contains(CalendarClsNames.focused)){const s=closest(e,"td");if(s){const e=this.hitTest(s);this._isSpaceDownForSetValue="Space"===t.code;this.setFocusModeValue(e,t)}"Space"===t.code&&t.preventDefault();return}if(!contains(this._tbMth,t.target)&&(!contains(this._tbYr,t.target)||contains(this._tbYr.firstElementChild,t.target)))return;if("Tab"===t.key&&this.monthView){const e=this._getCalendars();if(this!==e[t.shiftKey?0:e.length-1]){const e=DateTime.addMonths(this.focusValue,t.shiftKey?-1:1);this.focusValue=e;t.preventDefault()}}}if(t.ctrlKey||t.metaKey||t.shiftKey&&!this._rngMode())return;let s=this._getKeyCode(t),i=0,n=0,a=!0;if(this.monthView)switch(s){case Key.Left:i=-1;break;case Key.Right:i=1;break;case Key.Up:i=-7;break;case Key.Down:i=7;break;case Key.PageDown:n=t.altKey?12:1;break;case Key.PageUp:n=t.altKey?-12:-1;break;case Key.Home:case Key.End:if(this._canChangeValue()&&!t.shiftKey){const t=this.value||this.displayMonth,e=this._getValidDate(t,s==Key.Home);if(e){this.value=DateTime.fromDateTime(e,this.value);this._rngEnd=null}}break;default:a=!1}else switch(s){case Key.Left:n=-1;break;case Key.Right:n=1;break;case Key.Up:n=-4;break;case Key.Down:n=4;break;case Key.PageDown:n=t.altKey?120:12;break;case Key.PageUp:n=t.altKey?-120:-12;break;case Key.Home:n=this.value?-this.value.getMonth():0;break;case Key.End:n=this.value?11-this.value.getMonth():0;break;case Key.Enter:this._mthMode()?a=!1:this.monthView=!0;break;default:a=!1}if(this._canChangeValue()&&(i||n)){let e=t.shiftKey&&null!=this.rangeEnd?this.rangeEnd:this.focusMode?this.focusValue:this.value;const s=DateTime;if(e){e=s.addDays(e,i);e=s.addMonths(e,n)}else e=this._getValidDate(new Date,!0);if(n&&!this._valid(e)){const t=e.getMonth();for(let i=1;i<31&&!this._valid(e);i++){const n=s.addDays(e,+i),a=s.addDays(e,-i);this._valid(n)&&n.getMonth()==t?e=n:this._valid(a)&&a.getMonth()==t&&(e=a)}}for(let t=0;t<31&&!this._valid(e);t++)e=s.addDays(e,i>0||n>0?1:-1);t.shiftKey&&this._rngMode()&&e>this.value?this.rangeEnd=e:this.focusMode?this.focusValue=e:this.value=e}a&&t.preventDefault()}_getMonth(t){const e=DateTime;t=t||e.newDate();return e.newDate(t.getFullYear(),t.getMonth(),1)}_mthMode(){return this.selectionMode==DateSelectionMode.Month}_rngMode(){return this.selectionMode==DateSelectionMode.Range}_navigate(t){let e=this.monthView,s=this.displayMonth,i=DateTime;switch(t){case 0:{const t=i.newDate();this._canChangeValue()&&(this.value=e?i.fromDateTime(t,this.value):this._getMonth(t));s=this._getMonth(t);break}case 1:s=i.addMonths(s,e?1:12);break;case-1:s=i.addMonths(s,e?-1:-12)}this.displayMonth=s}_setTabOrder(t){super._setTabOrder(t);this._lbYears.tabOrder=this._orgTabIndex;this._getCalendars().forEach(e=>{e.tabOrder!=t&&(e.tabOrder=t)});this.updateCalendarsTabindex()}_showYearPickerAction(t){const e=t.target;if(Date.now()-this._tmYrHidden<600){t.preventDefault();return}var s=this.displayMonth.getFullYear(),i=this.min?this.min.getFullYear():s-100,n=this.max?this.max.getFullYear():s+100,a=[];for(let t=i;t<=n;t++)a.push(t);const l=this._lbYears,h=l.hostElement,o=closest(e,"."+CalendarClsNames.header),r=this.hostElement,d=closest(r,"."+InputDateClsNames.inputDateDropDown)||r;l.itemsSource=a;l.selectedIndex=s-a[0];setAttribute(h,"dir",this.rightToLeft?"rtl":null);setCss(h,{minWidth:"",width:o.offsetWidth});showPopup(h,o,!1,!1,d);requestAnimationFrame(()=>{l.showSelection(!0)});this.addEventListener(window,"touchstart",t=>{if(!contains(h,t.target)){hidePopup(h);this._tmYrHidden=Date.now();this.removeEventListener(window,"touchstart")}});t.preventDefault()}get focusMode(){return this._focusMode}set focusMode(t){this._focusMode=t;this._getCalendars().forEach(e=>{e.focusMode!==t&&(e.focusMode=t)});this.updateCalendarsTabindex();this.invalidate()}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=t;this._updateButtonTabIndex()}_isButtonFocused(){const t=getActiveElement();if(!t)return!1;const e=t.getAttribute("role"),s=t.type;return e&&"button"===e.toLowerCase()||s&&"button"===s.toLowerCase()}_isSameMonth(t,e){return t.getMonth()===e.getMonth()}_dateViewContainsFocus(){const t=this._tbYr.querySelectorAll("td"),e=Array.from(t).find(t=>t===getActiveElement());return this._tbMth.contains(getActiveElement())||void 0!==e}_updateMonthButtonAria(){const t=culture.Calendar.ariaLabels,e=this.monthView?t.monthView:t.yearView;setAriaLabel(this._btnMth,`${e}, ${Globalize.format(this.displayMonth,this._fmtYrMo)}`)}_isDayValid(t){return this._valid(t)&&this._inValidRange(t)}cancelButtonClick(t){this.cancelButtonClicked.raise(this,t)}oneCancelButtonClick(t){this.cancelButtonClick(t)}OKButtonClick(t){this.OKButtonClicked.raise(this,t)}onOkButtonClick(t){this.OKButtonClick(t);this.setFocusModeValue(this.focusValue)}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){if(this.ariaLabel!==t&&this.hostElement){this._ariaLabel=t;setAttribute(this.hostElement,"aria-label",t)}}_updateButtonTabIndex(){const t=this.tabOrder.toString();if(this.keyActionTab===CalendarTabKeyAction.All&&!0!==this.isDisabled){setAttribute(this._btnMth,"tabindex",t);setAttribute(this._btnPrv,"tabindex",t);setAttribute(this._btnTdy,"tabindex",t);setAttribute(this._btnNxt,"tabindex",t);setAttribute(this._showYearListBoxButton,"tabindex",t)}else{setAttribute(this._btnMth,"tabindex","-1");setAttribute(this._btnPrv,"tabindex","-1");setAttribute(this._btnTdy,"tabindex","-1");setAttribute(this._btnNxt,"tabindex","-1");setAttribute(this._showYearListBoxButton,"tabindex","-1")}setAttribute(this._btnOK,"tabindex",t);setAttribute(this._btnCancel,"tabindex",t)}_onEnterKeyDownToSetValue(t){this._enterKeyDownToSetValue.raise(this,t)}get showConfirmationButtons(){return this._showConfirmationButtons}set showConfirmationButtons(t){this._showConfirmationButtons=t;this._getCalendars().forEach(e=>{e._showConfirmationButtons=t})}_setIsDisabled(t){super._setIsDisabled(t);this._updateButtonTabIndex()}updateCalendarsTabindex(){const t=this.focusMode||-1===this.tabOrder?-1:0;this._getCalendarsHostElements().forEach(e=>{e.tabIndex=t})}setFocusModeValue(t,e){const s=DateTime.fromDateTime;if(this.monthView){if(t&&this._canChangeValue()){const i=s(t,this._value);if(this._inValidRange(i)&&this._valid(i))if(this._rngMode()&&this.value&&!this.rangeEnd&&i>=this.value)this.rangeEnd=i;else{e&&this._enterKeyDownToSetValue.raise(this,e);this.value=i}}}else if(t){this.displayMonth=t;if(this._mthMode()){if(this._canChangeValue()){const t=s(this.displayMonth,this.value);this._inValidRange(t)&&(this.value=t)}}else this.monthView=!0}}_getCalendarsHostElements(){return this._getCalendars().filter((t,e)=>e>0).map(t=>t.hostElement)}updateConfirmationButtons(t){if(!this._confirmationButtonContainer){const e=`<div class="${CalendarClsNames.confirmationButtonContainer}"></div>`;this._confirmationButtonContainer=createElement(e);this._btnOK=createElement(`<button wj-part="btn-ok" class="${InputFormElementsClsNames.btn} ${CalendarClsNames.button}"></button>`);this._btnCancel=createElement(`<button wj-part="btn-cancel" class="${InputFormElementsClsNames.btn} ${CalendarClsNames.button}"></button>`);const s=culture.Calendar.buttons;setText(this._btnOK,s.ok);setText(this._btnCancel,s.cancel);const i=this.addEventListener.bind(this);i(this._btnCancel,"click",this.oneCancelButtonClick.bind(this));i(this._btnOK,"click",this.onOkButtonClick.bind(this));this._confirmationButtonContainer.appendChild(this._btnOK);this._confirmationButtonContainer.appendChild(this._btnCancel);t.appendChild(this._confirmationButtonContainer)}}setFocusValueToFirstOrLastCalendar(t){const e=this._getCalendars();let s;s=this.monthView?t?e[0].displayMonth:e[e.length-1].displayMonth:e[0].displayMonth;const i=this.focusValue.getDate(),n=new Date(s.getFullYear(),s.getMonth()+1,0).getDate(),a=new Date(s.getFullYear(),s.getMonth(),Math.min(i,n));this.focusValue=a}isCalendarDateCell(t){return!isNullOrUndefined(t[Calendar._DATE_KEY])&&"td"===t.tagName.toLowerCase()}isThisMainCalendar(){return this==this._getCalendars()[0]}}Calendar._DATE_KEY="$WJ-DATE";Calendar._ctrlTemplate="";export function softTouch(){return _getModule("wijmo.touch")}export function getDragDropTouch(){var t=softTouch();return t&&t.DragDropTouch&&t.DragDropTouch.getInstance?t.DragDropTouch.getInstance():null}_addCultureInfo("DropDown",{ariaLabels:{tgl:"Toggle Dropdown"}});export var ClickAction;!function(t){t[t.Select=0]="Select";t[t.Open=1]="Open";t[t.Toggle=2]="Toggle"}(ClickAction||(ClickAction={}));export var KeyAction;!function(t){t[t.ChangeSelectionOnly=0]="ChangeSelectionOnly";t[t.OpenDropdown=1]="OpenDropdown"}(KeyAction||(KeyAction={}));export var TabKeyAction;!function(t){t[t.CloseAndKeepFocus=0]="CloseAndKeepFocus";t[t.CloseAndMoveFocus=1]="CloseAndMoveFocus"}(TabKeyAction||(TabKeyAction={}));export class DropDown extends Control{constructor(t,e){super(t);this._clickAction=ClickAction.Select;this._showBtn=!0;this._autoExpand=!0;this._animate=!1;this._internalSettingText=!1;this._oldText="";this._keyActionDownArrow=KeyAction.ChangeSelectionOnly;this._keyActionUpArrow=KeyAction.ChangeSelectionOnly;this._keyActionTab=TabKeyAction.CloseAndMoveFocus;this._touchMove=!1;this._isDropdownOpened=!1;this.textChanged=new Event;this.isDroppedDownChanging=new Event;this.isDroppedDownChanged=new Event;const s=this.getTemplate();this.applyTemplate(`${ControlClsNames.hostElement} ${ControlClsNames.content} ${DropDownClsNames.hostElement}`,s,{_tbx:"input",_btn:"btn",_dropDown:"dropdown"},"input");let i;this.hostElement&&this.hostElement.id&&(i=this.hostElement.id);i&&this._dropDown&&this._dropDown.setAttribute("dropdown-id",i);this._dropDown.style.display="none";const n=culture.DropDown.ariaLabels;setAriaLabel(this._btn.querySelector("button"),n.tgl);this._elRef=this._tbx;const a=this._tbx;disableAutoComplete(a);this._createDropDown();this._updateTbxAriaHaspopup();this._updateBtn();this._updateTbx();const l=this.hostElement;addClass(l,ControlStateClsNames.collapsed);this.addEventListener(window,"resize",()=>{this.isDroppedDown&&this.invalidate()});const h=this.dropDown,o=this.addEventListener.bind(this),r=this._updateFocusState.bind(this);o(h,"blur",r,!0);o(h,"focus",r);const d=this._keydown.bind(this);o(l,"keydown",d);o(h,"keydown",d);const u=this._keypress.bind(this);o(l,"keypress",u,!0);o(h,"keypress",u,!0);const c=this._input.bind(this);o(a,"input",c);o(a,"beforeinput",t=>{"historyUndo"!==t.inputType&&"historyRedo"!==t.inputType||t.preventDefault()});o(a,"blur",()=>{this._commitText(!0,!1)},!0);o(a,"click",()=>{this._autoExpand&&this._expandSelection()});o(a,"touchstart",()=>{this.isTouching&&"none"===a.getAttribute("inputmode")&&a.removeAttribute("inputmode")});o(a,"mousedown",t=>{if(this._isTouchMoved())t.preventDefault();else switch(this._clickAction){case ClickAction.Open:if(!this.isDroppedDown){t.preventDefault();this.focus();this.isDroppedDown=!0}break;case ClickAction.Toggle:t.preventDefault();this.focus();this.isDroppedDown=!this.isDroppedDown}});o(this._btn,"mousedown",t=>{this._isTouchMoved()||this._btnclick(t)});removeChild(h);isIE()&&this._elRef==this._tbx&&o(l,"mouseup",t=>{if(!t.defaultPrevented&&0==t.button&&hasClass(t.target,InputFormElementsClsNames.btn)){const e=getActiveElement();e&&e!=t.target&&setTimeout(()=>{e.focus()})}});isIE9()&&o(a,"keyup",()=>{this._setText(this.text,!1)});o(h,"click",this._dropDownClick.bind(this))}static get controlTemplate(){DropDown._ctrlTemplate||(DropDown._ctrlTemplate=`<div class="${ControlClsNames.template}"><div class="${InputClsNames.input}"><div class="${InputClsNames.inputGroup} ${InputClsNames.inputBtnVisible}"><input wj-part="input" type="text" class="${InputFormElementsClsNames.formControl}"><span wj-part="btn" class="${InputClsNames.inputGroupBtn}"><button class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.down}></span></button></span></div></div><div wj-part="dropdown" class="${ControlClsNames.content} ${DropDownClsNames.dropDownPanel}"></div></div>`);return DropDown._ctrlTemplate}static set controlTemplate(t){DropDown._ctrlTemplate=t}_isTouchMoved(){const t=getDragDropTouch();return t&&t.isDragging}get text(){return this._tbx.value}set text(t){if(t!=this.text){this._setText(t,!0);this._commitText()}}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){this._tbx.type=asString(t)}get isReadOnly(){return this._tbx.readOnly}set isReadOnly(t){this._tbx.readOnly=asBoolean(t);toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly);this.isReadOnly&&this._toggleDropDown(!1)}get isRequired(){return this._tbx.required}set isRequired(t){this._tbx.required=asBoolean("boolean"==typeof t?t:this.isRequired)}get placeholder(){return this._tbx.placeholder}set placeholder(t){this._tbx.placeholder=t}get clickAction(){return this._clickAction}set clickAction(t){this._clickAction=asEnum(t,ClickAction)}get isDroppedDown(){const t=this._dropDown;return t&&"none"!=t.style.display}set isDroppedDown(t){const e=this.hostElement,s=this._dropDown,i=this.containsFocus(),n=new Set(["InputDateTime","WjInputDateTime"]);if(!e||!s)return;let a=!this.isReadOnly;this.isTouching&&(a=!0);t=asBoolean(t)&&!this.isDisabled&&a&&e.offsetWidth>0;this.isDroppedDown&&!t&&this.isDisabled&&(t=this.isDroppedDown);if(t||"INPUT"!=getActiveElement().tagName||this.inputElement===getActiveElement()||!this._isInvalidInputCancelled){if(t!=this.isDroppedDown&&(n.has(this.constructor.name)||!this._isInvalidInputCancelled||!this.isDroppedDown&&this._isInvalidInputCancelled)&&this.onIsDroppedDownChanging(new CancelEventArgs)){this._toggleDropDown(t);i&&(this.isTouching&&this.showDropDownButton?e.focus():this.selectAll());this._updateFocusState();this._updateBtn();this._updateTbx();toggleClass(e,ControlStateClsNames.collapsed,!this.isDroppedDown);this.onIsDroppedDownChanged()}}else{this._isDropdownOpened=this.isDroppedDown;this._toggleDropDown(t)}}_toggleDropDown(t){const e=this.hostElement,s=this._dropDown;if(t){this._minWidthDropdown=s.style.minWidth;s.style.display="";this._updateDropDown();this.addEventListener(window,"touchstart",t=>{const s=Control._touching;for(let s=t.target;s;){if(s==e)return;s=s[Control._OWNR_KEY]||s.parentNode}Control._touching=!0;this.isDroppedDown=!1;Control._touching=s})}else{this.removeEventListener(window,"touchstart");hidePopup(s);s.style.minWidth=this._minWidthDropdown}}get dropDown(){return this._dropDown}get dropDownCssClass(){return this._cssClass}set dropDownCssClass(t){if(t!=this._cssClass){removeClass(this._dropDown,this._cssClass);this._cssClass=asString(t);addClass(this._dropDown,this._cssClass)}}get showDropDownButton(){return this._showBtn}set showDropDownButton(t){this._showBtn=asBoolean(t);this._updateBtn()}get autoExpandSelection(){return this._autoExpand}set autoExpandSelection(t){this._autoExpand=asBoolean(t)}get isAnimated(){return this._animate}set isAnimated(t){this._animate=asBoolean(t)}get keyActionDownArrow(){return this._keyActionDownArrow}set keyActionDownArrow(t){this._keyActionDownArrow=asEnum(t,KeyAction)}get keyActionUpArrow(){return this._keyActionUpArrow}set keyActionUpArrow(t){this._keyActionUpArrow=asEnum(t,KeyAction)}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=asEnum(t,TabKeyAction)}selectAll(){const t=this._tbx;this._elRef==t&&setSelectionRange(t,0,this.text.length);this.containsFocus()||this.focus()}onTextChanged(t){this.textChanged.raise(this,t);this._updateState()}onIsDroppedDownChanging(t){this.isDroppedDownChanging.raise(this,t);return!t.cancel}onIsDroppedDownChanged(t){this.isDroppedDownChanged.raise(this,t)}onGotFocus(t){this.isTouching||contains(this._dropDown,getActiveElement())||this.selectAll();super.onGotFocus(t)}onLostFocus(t){this._commitText();this.isDroppedDown=!1;super.onLostFocus(t)}_containsFocusImpl(t){return super._containsFocusImpl(t)||this.isDroppedDown&&contains(this._dropDown,t)}dispose(){this.isDroppedDown=!1;const t=this._dropDown;if(t){this._dropDown=null;removeChild(t);const e=Control.getControl(t);e&&e.dispose()}super.dispose()}refresh(t=!0){super.refresh(t);const e=this.hostElement;if(e&&e.offsetHeight&&this.isDroppedDown){const t=getActiveElement();this.isAnimated&&""!=this._dropDown.style.opacity||showPopup(this._dropDown,e,!1,!1,null==this.dropDownCssClass);t instanceof HTMLElement&&t!=getActiveElement()&&t.focus()}}_handleResize(){this.isDroppedDown&&this.refresh()}_dropDownClick(t){t.stopPropagation()}_expandSelection(){let t=this._tbx,e=t.value,s=t.selectionStart,i=t.selectionEnd;if(e&&s==i){const n=this._getCharType(e,s);if(n>-1){for(;i<e.length&&this._getCharType(e,i)==n;i++);for(;s>0&&this._getCharType(e,s-1)==n;s--);s!=i&&setSelectionRange(t,s,i)}}}_getCharType(t,e){const s=t[e];return s>="0"&&s<="9"?0:s>="a"&&s<="z"||s>="A"&&s<="Z"?1:-1}_keydown(t){if(!t.defaultPrevented&&!this._isHiddenEditor()){switch(t.keyCode){case Key.Escape:case Key.Enter:if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();t.preventDefault()}break;case Key.F4:this.toggleDropDown(t);break;case Key.Up:this.handleUpArrowKey(t);break;case Key.Down:this.handleDownArrowKey(t)}if(!t.defaultPrevented&&t.keyCode==Key.Escape&&isIE()){const e=this._tbx;if(t.target==e){const t=e.value;e.value=t+" ";e.value=t}}}}toggleDropDown(t){if(this.isHostVisible()){this.isDroppedDown=!this.isDroppedDown;t.preventDefault()}}handleUpArrowKey(t){t.altKey?this.toggleDropDown(t):this.keyActionUpArrow!==KeyAction.OpenDropdown||this.isDroppedDown||this.openDropDown(t)}handleDownArrowKey(t){if(t.altKey)this.toggleDropDown(t);else if(this.keyActionDownArrow===KeyAction.OpenDropdown&&!this.isDroppedDown){this.openDropDown(t);this._afterOpenDropdownByDownArrow()}}_afterOpenDropdownByDownArrow(){}openDropDown(t){if(this.isHostVisible()){this.isDroppedDown=!0;t.preventDefault()}}isHostVisible(){const t=this.hostElement;return!(!t||!t.offsetHeight)}_isHiddenEditor(){return hasClass(this._tbx,"wj-grid-ime")}_keypress(t){"AltLeft"!=t.code&&"AltRight"!=t.code||t.preventDefault()}_input(t){this._setText(this.text,!1)}_btnclick(t){if(!t.defaultPrevented&&0==t.button){this._isInvalidInputCancelled=!1;t.preventDefault();if(this.isTouching){this._tbx.getAttribute("inputmode");this._tbx.setAttribute("inputmode","none");this.isDroppedDown=!this.isDroppedDown;this.selectAll()}else{this.focus();this.isDroppedDown=!this.isDroppedDown}}}_setText(t,e,s,i){let n=!1;if((t=(t||"").toString())!=this._tbx.value){this._tbx.value=t;if(s||!t){this.onTextChanged();n=!0}}if(t!=this._oldText){this._oldText=t;this._internalSettingText||n||this.onTextChanged()}i&&(this._tbx.value=this._tbx.value.trim());this._updateState()}_updateBtn(){this._btn.style.display=this._showBtn?"":"none";this._updateBtnAria()}_updateBtnAria(){const t=this._btn.querySelector("button"),e=this.isDroppedDown,s=this.dropDown?this.dropDown.id:null;setAttribute(t,"aria-expanded",!!e);setAttribute(t,"aria-controls",e?s:null)}_updateTbx(){this._updateTbxAria()}_updateTbxAria(){const t=this._tbx,e=this.isDroppedDown,s=this.dropDown?this.dropDown.id:null;setAttribute(t,"aria-controls",e?s:null);setAttribute(t,"aria-expanded",e)}_updateTbxAriaHaspopup(){const t=this._tbx,e=this.dropDown&&this.dropDown.getAttribute("role");setAttribute(t,"aria-haspopup",e)}_createDropDown(){}_commitText(t,e){}_updateDropDown(){if(this.isDroppedDown){this._commitText();const t=this.dropDown;setAttribute(t,"dir",this.rightToLeft?"rtl":null);showPopup(t,this.hostElement,!1,this._animate,null==this.dropDownCssClass)}}_shouldRaiseInvalidInput(t){return isNullOrUndefined(t)?!this._containsFocus():t}}DropDown._ctrlTemplate="";_addCultureInfo("Popup",{ariaLabels:{close:"close",backdrop:"backdrop",isDraggable:"draggable",isResizable:"resizable",popupVisible:"visible",popupHide:"hidden",popup:"popup"}});export var PopupTrigger;!function(t){t[t.None=0]="None";t[t.ClickOwner=1]="ClickOwner";t[t.ClickPopup=2]="ClickPopup";t[t.Click=3]="Click";t[t.BlurOwner=4]="BlurOwner";t[t.BlurPopup=8]="BlurPopup";t[t.Blur=12]="Blur";t[t.ClickOrBlur=15]="ClickOrBlur";t[t.DownOwner=16]="DownOwner";t[t.DownPopup=32]="DownPopup";t[t.Down=48]="Down";t[t.EnterOwner=64]="EnterOwner";t[t.EnterPopup=128]="EnterPopup";t[t.Enter=192]="Enter";t[t.LeaveOwner=256]="LeaveOwner";t[t.LeavePopup=512]="LeavePopup";t[t.Leave=768]="Leave"}(PopupTrigger||(PopupTrigger={}));var _Edges;!function(t){t[t.None=0]="None";t[t.Left=1]="Left";t[t.Top=2]="Top";t[t.Right=4]="Right";t[t.Bottom=8]="Bottom";t[t.LeftTop=3]="LeftTop";t[t.RightTop=6]="RightTop";t[t.RightBottom=12]="RightBottom";t[t.LeftBottom=9]="LeftBottom"}(_Edges||(_Edges={}));export class Popup extends Control{constructor(t,e){super(t);this._owner=null;this._ariaLabel=culture.Popup.ariaLabels.popup;this._modal=!1;this._position=PopupPosition.BelowLeft;this._showTrigger=PopupTrigger.ClickOwner;this._hideTrigger=PopupTrigger.Blur;this._hideAnim=[];this._fadeIn=!0;this._fadeOut=!0;this._removeOnHide=!0;this._draggable=!1;this._resizable=!1;this._result=null;this._resultEnter=null;this._resultSubmit=null;this._callback=null;this._visible=!1;this._ownerClickBnd=this._ownerClick.bind(this);this._ownerDownBnd=this._ownerDown.bind(this);this._ownerBlurBnd=this._ownerBlur.bind(this);this._ownerEnterBnd=this._ownerEnter.bind(this);this._ownerLeaveBnd=this._ownerLeave.bind(this);this._mousedownBnd=this._mousedown.bind(this);this._mousemoveBnd=this._mousemove.bind(this);this._mousedragBnd=this._mousedrag.bind(this);this._mouseupBnd=this._mouseup.bind(this);this._hideBnd=this.hide.bind(this);this._lastShow=0;this._initialOwner=null;this._activeEdge=_Edges.None;this.showing=new Event;this.shown=new Event;this.hiding=new Event;this.hidden=new Event;this.resizing=new Event;this.resized=new Event;this.dragging=new Event;this.dragged=new Event;this.sizeChanging=new Event;this.sizeChanged=new Event;this.positionChanging=new Event;this.positionChanged=new Event;const s=this.hostElement;Popup._PopupInstanceCount++;addClass(s,`${ControlClsNames.hostElement} ${ControlClsNames.content} ${PopupClsNames.hostElement}`);if(this.hostElement){this._initialOwner=this.hostElement.parentElement;setAttribute(this.hostElement,"role","dialog")}s.getAttribute("tabindex")||(s.tabIndex=0);hidePopup(s,!1);const i=this.addEventListener.bind(this);i(s,"compositionstart",()=>{this._composing=!0});i(s,"compositionend",()=>{this._composing=!1});i(window,"resize",()=>{!this.isVisible||this._dragged||this.isTouching||this.invalidate()});i(s,"keydown",t=>{if(!t.defaultPrevented){const e=10,i=t.ctrlKey&&t.altKey&&!t.shiftKey,n=t.ctrlKey&&t.shiftKey&&!t.altKey;if(i||n){const s=this.hostElement.getBoundingClientRect(),a=Rect.fromBoundingRect(s);if(i&&this.isDraggable){t.preventDefault();switch(t.keyCode){case Key.Left:a.left=Math.max(0,a.left-e);break;case Key.Right:a.left=Math.min(window.innerWidth-a.width,a.left+e);break;case Key.Up:a.top=Math.max(0,a.top-e);break;case Key.Down:a.top=Math.min(window.innerHeight-a.height,a.top+e)}const s=new PopupBoundsChangingEventArgs(a);if(this.onPositionChanging(s)){setCss(this.hostElement,{left:a.left+window.scrollX,top:a.top+window.scrollY,transform:"none"});this.onPositionChanged()}}else if(n&&this.isResizable){t.preventDefault();const e=10,s=window.getComputedStyle(this.hostElement),i=Math.max(parseInt(s.minWidth)||0,Popup._SZ_MIN),n=Math.max(parseInt(s.minHeight)||0,Popup._SZ_MIN);if(this._activeEdge===_Edges.None)switch(t.keyCode){case Key.Up:this._activeEdge=_Edges.Top;break;case Key.Down:this._activeEdge=_Edges.Bottom;break;case Key.Left:this._activeEdge=_Edges.Left;break;case Key.Right:this._activeEdge=_Edges.Right}const l=this._activeEdge===_Edges.Top||this._activeEdge===_Edges.Bottom,h=this._activeEdge===_Edges.Left||this._activeEdge===_Edges.Right;if(l&&![Key.Up,Key.Down].includes(t.keyCode)||h&&![Key.Left,Key.Right].includes(t.keyCode))return;if(this._activeEdge!==_Edges.None){let s=0;switch(t.keyCode){case Key.Up:case Key.Left:s=-e;break;case Key.Down:case Key.Right:s=e}switch(this._activeEdge){case _Edges.Top:{const t=Math.min(Math.max(a.top+s,0),a.bottom-n);a.height=a.bottom-t;a.top=t;break}case _Edges.Bottom:{const t=Math.min(Math.max(a.bottom+s,a.top+n),window.innerHeight);a.height=t-a.top;break}case _Edges.Left:{const t=Math.min(Math.max(a.left+s,0),a.right-i);a.width=a.right-t;a.left=t;break}case _Edges.Right:{const t=Math.min(Math.max(a.right+s,a.left+i),window.innerWidth);a.width=t-a.left;break}}a.left=Math.max(0,Math.min(a.left,window.innerWidth-a.width));a.top=Math.max(0,Math.min(a.top,window.innerHeight-a.height));const l=new PopupBoundsChangingEventArgs(a);if(this.onSizeChanging(l)){setCss(this.hostElement,{left:a.left+window.scrollX,top:a.top+window.scrollY,width:a.width,height:a.height,transform:"none"});this.onSizeChanged()}}}}if(t.keyCode==Key.Escape&&!this._composing){t.preventDefault();this.hide()}if(t.keyCode==Key.Enter&&!this._composing){const e=this.dialogResultEnter;if(e){t.preventDefault();this._validateAndHide(e)}}if(t.keyCode==Key.Tab&&this.modal){t.preventDefault();moveFocus(s,t.shiftKey?-1:1)}}});i(document,"keyup",t=>{t.ctrlKey||t.shiftKey||this._activeEdge===_Edges.None||(this._activeEdge=_Edges.None)});i(s,"click",t=>{const e=t.target;if(e instanceof HTMLElement){if(e instanceof HTMLButtonElement&&"submit"==e.type){const e=this.hostElement,s=this.dialogResultSubmit;if(e instanceof HTMLFormElement&&s&&e.reportValidity()){t.preventDefault();this.hide(s)}}const s=e.className.match(/\bwj-hide[\S]*\b/);if(s&&s.length>0){t.preventDefault();t.stopPropagation();this.hide(s[0])}}});const n=this._toggle.bind(this),a=PopupTrigger;this.addEventListener(s,"click",t=>{this._ignoreClick||n(t,a.ClickPopup)},!0);this.addEventListener(s,"mousedown",t=>{this._ignoreClick=!1;n(t,a.DownPopup)},!0);this.addEventListener(s,"mouseenter",t=>{t.target==s&&n(t,a.EnterPopup)},!0);this.addEventListener(s,"mouseleave",t=>{t.target==s&&n(t,a.LeavePopup)},!0);this.addEventListener(s,"blur",t=>{this.containsFocus()||n(t,a.BlurPopup)},!0);i(document,"wheel",t=>{if(this.isVisible&&this._modal){for(let e=t.target;e&&e!=document.body;e=e.parentElement)if(e.scrollHeight>e.clientHeight)return;t.preventDefault()}});this.initialize(e);this._updateAriaLabel()}get ariaLabelledBy(){return this.hostElement.getAttribute("aria-labelledby")}set ariaLabelledBy(t){_setAriaLabelBy(this,this.hostElement,t,this._updateAriaLabel.bind(this))}get owner(){return this._owner}set owner(t){let e=this._owner;if(e){this.removeEventListener(e,"click");this.removeEventListener(e,"mousedown");this.removeEventListener(e,"mouseenter");this.removeEventListener(e,"mouseleave");this.removeEventListener(e,"blur")}e=this._owner=null!=t?getElement(t):null;if(e){this.addEventListener(e,"click",this._ownerClickBnd,!0);this.addEventListener(e,"mousedown",this._ownerDownBnd,!0);this.addEventListener(e,"mouseenter",this._ownerEnterBnd,!0);this.addEventListener(e,"mouseleave",this._ownerLeaveBnd,!0);this.addEventListener(e,"blur",this._ownerBlurBnd,!0)}}get position(){return this._position}set position(t){this._position=asEnum(t,PopupPosition)}get content(){return this.hostElement.firstElementChild}set content(t){if(t!=this.content){this.hostElement.innerHTML="";t instanceof HTMLElement&&this.hostElement.appendChild(t)}}get showTrigger(){return this._showTrigger}set showTrigger(t){this._showTrigger=asEnum(t,PopupTrigger)}get hideTrigger(){return this._hideTrigger}set hideTrigger(t){this._hideTrigger=asEnum(t,PopupTrigger)}get fadeIn(){return this._fadeIn}set fadeIn(t){this._fadeIn=asBoolean(t)}get fadeOut(){return this._fadeOut}set fadeOut(t){this._fadeOut=asBoolean(t)}get removeOnHide(){return this._removeOnHide}set removeOnHide(t){if((t=asBoolean(t))!=this.removeOnHide){this._removeOnHide=t;if(!this.isVisible){const e=this.hostElement;if(t)removeChild(e);else if(e&&document.body){e.style.display="none";document.body.appendChild(e)}}}}get modal(){return this._modal}set modal(t){this._modal=asBoolean(t);setAttribute(this.hostElement,"aria-modal",t?"true":null)}get isDraggable(){return this._draggable}set isDraggable(t){this._draggable=asBoolean(t);this._updateAriaLabel()}get isResizable(){return this._resizable}set isResizable(t){this._resizable=asBoolean(t);this._updateAriaLabel()}get dialogResult(){return this._result}set dialogResult(t){this._result=t}get dialogResultEnter(){return this._resultEnter}set dialogResultEnter(t){this._resultEnter=t}get dialogResultSubmit(){return this._resultSubmit}set dialogResultSubmit(t){this._resultSubmit=asString(t)}get isVisible(){const t=this.hostElement;return this._visible&&null!=t&&t.offsetHeight>0}show(t,e){this._lastShow=Date.now();if(!this.isVisible){const s=this.hostElement;this.dialogResult=null;this._callback=null;this._oldFocus=null;this._myFocus=null;this._hideAnim.forEach(t=>{clearInterval(t)});if(this._hideAnim.length>0){this._hideAnim.length=0;if(this._bkDrop){hidePopup(this._bkDrop,this.removeOnHide);this._bkDrop.style.opacity=""}hidePopup(s,this.removeOnHide);s.style.opacity=""}const i=new CancelEventArgs;if(this.onShowing(i)){null!=t&&(this.modal=asBoolean(t));null!=e&&(this._callback=asFunction(e));this._oldFocus=getActiveElement();showPopup(s,this._owner,this._position,this._fadeIn,!1,this._hideBnd);this._modal&&this._showBackdrop();setAttribute(this._oldFocus,"aria-expanded","true");this._composing=!1;this._visible=!0;this.onShown(i);this._updateAriaLabel();this._clearTimeouts();if(this.modal){this.addEventListener(window,"focus",()=>{if(!this.containsFocus()){const t=this._myFocus;t&&t.offsetHeight?t.focus():moveFocus(s,0)}});this.addEventListener(s,"focusin",()=>{const t=getActiveElement();t&&contains(s,t)&&(t.tabIndex>-1||!this._myFocus)&&(this._myFocus=t)})}this._resized=this._dragged=this._ignoreClick=!1;this._handleDragResize(!0);this.addEventListener(window,"touchstart",t=>{this._hideTrigger&PopupTrigger.Blur&&!contains(s,t.target,!0)&&this.hide()});this._toHidePopupTimer=setTimeout(()=>{this.addEventListener(window,"click",t=>{this._hideTrigger&PopupTrigger.BlurPopup&&this.isDisabled&&!contains(s,t.target,!0)&&this.hide()})});this._toGetFocusTimer=setTimeout(()=>{if(!this.isDisabled&&!this.containsFocus()&&!this.isTouching){const t=s.querySelector("[autofocus]");if(t&&t.clientHeight>0&&!t.disabled&&t.tabIndex>-1&&!closest(t,"[disabled],."+ControlStateClsNames.disabled)){t.focus();isFunction(t.select)&&t.select()}else moveFocus(s,0)}if(!this.isDisabled&&!this.containsFocus()){s.tabIndex=0;s.focus()}},100)}}}hide(t){this.removeEventListener(window,"touchstart");this.removeEventListener(window,"click");if(this.isVisible){isUndefined(t)||(this.dialogResult=t);const e=new CancelEventArgs,s=this.hostElement;if(this.onHiding(e)){this._handleDragResize(!1);const t=this.containsFocus()?this._oldFocus:null,i=s.querySelectorAll(`.${ControlClsNames.hostElement}.${DropDownClsNames.hostElement}`);for(let t=0;t<i.length;t++){const e=Control.getControl(i[t]);e instanceof DropDown&&(e.isDroppedDown=!1)}const n=this.removeOnHide,a=this.fadeOut;this._hideTimer=setTimeout(()=>{this._updateState();this.onHidden(e);this._callback&&this._callback(this);if(this.hideTrigger&PopupTrigger.LeavePopup){const t=Control.getControl(closest(this.owner,"."+PopupClsNames.hostElement));if(t instanceof Popup&&0!=(t.hideTrigger&PopupTrigger.Leave)){let e=Popup._evtHover,s=e?document.elementFromPoint(e.clientX,e.clientY):null,i=Control.getControl(closest(s,"."+PopupClsNames.hostElement));i instanceof Popup&&!i.isVisible&&(s=null);s&&contains(t.hostElement,s,!0)||t.hide()}}},Control._FOCUS_INTERVAL+50);this._bkDrop&&this._hideAnim.push(hidePopup(this._bkDrop,n,a));this._hideAnim.push(hidePopup(s,n,a));setAttribute(this._oldFocus,"aria-expanded","false");this._visible=!1;this._oldFocus=null;this._myFocus=null;this._updateAriaLabel();this.removeEventListener(window,"focus");this.removeEventListener(s,"focusin");this.containsFocus()&&getActiveElement().blur();this._clearTimeouts();!this.isVisible&&t&&t.offsetHeight&&t.focus()}}}onShowing(t){this.showing.raise(this,t);return!t.cancel}onShown(t){this.shown.raise(this,t)}onHiding(t){this.hiding.raise(this,t);return!t.cancel}onHidden(t){this._wasVisible=!1;this.hidden.raise(this,t)}onResizing(t){this.resizing.raise(this,t);return!t.cancel}onResized(t){this.resized.raise(this,t)}onDragging(t){this.dragging.raise(this,t);return!t.cancel}onDragged(t){this.dragged.raise(this,t)}onSizeChanging(t){this.sizeChanging.raise(this,t);return!t.cancel}onSizeChanged(t){this.sizeChanged.raise(this,t)}onPositionChanging(t){this.positionChanging.raise(this,t);return!t.cancel}onPositionChanged(t){this.positionChanged.raise(this,t)}onLostFocus(t){super.onLostFocus(t);if(this._hideTrigger&PopupTrigger.BlurPopup&&!this.containsFocus()){const t=document.createEvent("Event");t.initEvent("blur",!0,!0);this._toggle(t,PopupTrigger.BlurPopup)}}refresh(t=!0){const e=this.hostElement;super.refresh(t);if(this.isVisible&&!this._refreshing&&e){this._refreshing=!0;const t=getActiveElement(),s=this._owner?this._owner.getBoundingClientRect():null,i=[],n=e.querySelectorAll("."+DropDownClsNames.hostElement);for(let t=0;t<n.length;t++){const e=Control.getControl(n[t]);if(e instanceof DropDown&&e.isDroppedDown){i.push(e);e.dropDown.style.display="none"}}showPopup(e,s,this._position);i.forEach(t=>{t.dropDown.style.display="";t._updateDropDown()});this._modal&&t instanceof HTMLElement&&t!=getActiveElement()&&t.focus();this._refreshing=!1}}_clearTimeouts(){if(this._toShow){clearTimeout(this._toShow);this._toShow=null}if(this._toHideLeave){clearTimeout(this._toHideLeave);this._toHideLeave=null}if(this._toHideBlur){clearTimeout(this._toHideBlur);this._toHideBlur=null}}_handleDragResize(t){const e=this.hostElement,s=this._draggable?this._getHeaderElement():null,i=this.addEventListener.bind(this),n=this.removeEventListener.bind(this),a=this._mousemoveBnd,l=this._mousedownBnd;if(t){i(e,"mousemove",a);i(e,"mousedown",l);i(e,"touchstart",l);s&&(s.style.touchAction="none")}else{this._mousedownEvt=null;this._rcBounds=null;n(e,"mousemove",a);n(e,"mousedown",l);n(e,"touchstart",l);n(document,"mousemove",this._mousedragBnd);n(document,"mouseup",this._mouseupBnd);s&&(s.style.touchAction="")}}_mousemove(t){if(!this._mousedownEvt){let e=this.hostElement,s=this._getEdges(e,t),i="",n=_Edges;this._edges=s;this._resizable&&(s==n.LeftTop||s==n.RightBottom?i="nwse-resize":s==n.LeftBottom||s==n.RightTop?i="nesw-resize":s==n.Left||s==n.Right?i="ew-resize":s!=n.Top&&s!=n.Bottom||(i="ns-resize"));this._draggable&&!i&&this._getClosestHeader(t.target)&&(i="move");e.style.cursor=i}}_mousedown(t){if(!t.defaultPrevented){const e=t.touches&&t.touches.length>0?t.touches[0]:t;this._edges=this._getEdges(this.hostElement,e);if(this._edges||this._draggable&&this._getClosestHeader(t.target)){const t=new CancelEventArgs;if(this._edges?this.onResizing(t):this.onDragging(t)){this._mousedownEvt=e;this._rcBounds=this.hostElement.getBoundingClientRect();const t=this.addEventListener.bind(this),s=document,i=this._mousedragBnd,n=this._mouseupBnd;t(s,"mousemove",i);t(s,"touchmove",i);t(s,"mouseup",n);t(s,"touchend",n)}}this._ignoreClick=!1}}_mouseup(){this._mousedownEvt=null;this._rcBounds=null;this._activeEdge=_Edges.None;const t=this.removeEventListener.bind(this),e=document,s=this._mousedragBnd,i=this._mouseupBnd;t(e,"mousemove",s);t(e,"touchmove",s);t(e,"mouseup",i);t(e,"touchend",i);this._resized?this.onResized():this._dragged&&this.onDragged();this._resized=this._dragged=this._ignoreClick=!1}_mousedrag(t){if(!t.defaultPrevented){const e=this.hostElement,s=this._mousedownEvt,i=t.touches&&t.touches.length>0?t.touches[0]:t,n=i.clientX-s.clientX,a=i.clientY-s.clientY,l=this._rcBounds,h=this._edges,o=Popup._SZ_MIN,r=Rect.fromBoundingRect(l);if(h){const t=window.getComputedStyle(e),s=parseInt(t.getPropertyValue("min-width"))||o,i=parseInt(t.getPropertyValue("min-height"))||o;if(h&_Edges.Left){const t=r.right-s;r.left=Math.min(r.left+n,t);r.width=Math.max(r.width-n,s)}else h&_Edges.Right&&(r.width=Math.max(r.width+n,s));if(h&_Edges.Top){const t=r.bottom-i;r.top=Math.min(r.top+a,t);r.height=Math.max(r.height-a,i)}else h&_Edges.Bottom&&(r.height=Math.max(r.height+a,i));if(this.onSizeChanging(new PopupBoundsChangingEventArgs(r))){setCss(e,{left:r.left+window.scrollX,top:r.top+window.scrollY,width:r.width,height:r.height,transform:"none"});this._resized=this._dragged=this._ignoreClick=!0;this.onSizeChanged()}if(!window.ResizeObserver){const t=this.hostElement.children;for(let e=0;e<t.length;e++)Control.invalidateAll(t[e])}}else if(this._draggable){"touchmove"===t.type&&isiOS()&&t.preventDefault();if(this._dragged||Math.abs(n)+Math.abs(a)>Popup._DRAG_THRESHOLD){r.left=Math.max(l.left+n+(i.pageX-i.clientX),50-l.width);r.top=Math.max(l.top+a+(i.pageY-i.clientY),0);if(this.onPositionChanging(new PopupBoundsChangingEventArgs(r))){setCss(e,{left:r.left,top:r.top,width:r.width,height:r.height,transform:"none"});this._dragged=this._ignoreClick=!0;this.onPositionChanged()}}}}}_getEdges(t,e){let s=0;if(this._resizable){const i=t.getBoundingClientRect(),n=Popup._SZ_EDGE;e.clientX-i.left<n&&(s|=_Edges.Left);e.clientY-i.top<n&&(s|=_Edges.Top);i.right-e.clientX<n&&(s|=_Edges.Right);i.bottom-e.clientY<n&&(s|=_Edges.Bottom)}return s}_ownerClick(t){this._toggle(t,PopupTrigger.ClickOwner)}_ownerDown(t){this._wasVisible=this.isVisible;this._toggle(t,PopupTrigger.DownOwner)}_ownerBlur(t){contains(this._owner,getActiveElement())||this._toggle(t,PopupTrigger.BlurOwner)}_ownerEnter(t){t.target==this._owner&&this._toggle(t,PopupTrigger.EnterOwner)}_ownerLeave(t){t.target==this._owner&&this._toggle(t,PopupTrigger.LeaveOwner)}_toggle(t,e){t instanceof MouseEvent&&(Popup._evtHover=t);if(!("mouseenter"==t.type&&Date.now()-this._lastShow<300||t.defaultPrevented)){const t=0!=(this._hideTrigger&e),s=0!=(this._showTrigger&e),i=PopupTrigger;(t||s)&&this._clearTimeouts();t&&this.isVisible&&(e&i.Leave?this._toHideLeave=setTimeout(()=>{const t=Popup._evtHover,e=t?document.elementFromPoint(t.clientX,t.clientY):null;e&&contains(this.hostElement,e,!0)||this.hide()},Control._LEAVE_DELAY):e&i.Blur?this._toHideBlur=setTimeout(()=>{this.containsFocus()||contains(this._owner,getActiveElement())||this.hide()},Control._FOCUS_INTERVAL+50):this.hide());s&&e!=i.ClickPopup&&(this._wasVisible||(e&i.Enter?this._toShow=setTimeout(()=>{this.show()},Control._HOVER_DELAY):this.show()))}}_getHeaderElement(){const t=this.hostElement;return t.querySelector("."+PopupClsNames.dialogHeader)||t.querySelector(".modal-header")}_getClosestHeader(t){return closest(t,"."+PopupClsNames.dialogHeader)||closest(t,".modal-header")}_showBackdrop(){if(!this._bkDrop){this._bkDrop=document.createElement("div");this._bkDrop.tabIndex=-1;setAttribute(this._bkDrop,"role","presentation");setAttribute(this._bkDrop,"aria-hidden","true");setAttribute(this._bkDrop,"aria-label",culture.Popup.ariaLabels.backdrop);addClass(this._bkDrop,PopupClsNames.popupBackDrop);this.addEventListener(this._bkDrop,"mousedown",t=>{t.preventDefault();t.stopPropagation();this.hostElement.focus();this.hideTrigger&PopupTrigger.Blur&&this.hide()})}setCss(this._bkDrop,{zIndex:Control._POPUP_ZINDEX,display:""});const t=this.hostElement;t.parentElement.insertBefore(this._bkDrop,t)}_validateAndHide(t){const e=this.hostElement;if(e instanceof HTMLFormElement)e.reportValidity()&&this.hide(t);else{const e=this.hostElement.querySelector(":invalid");e?e.focus():this.hide(t)}}_updateAriaLabel(){this.hostElement&&(this.ariaLabelledBy?this._updateAriaLabelImp(""):this._updateAriaLabelImp(this._ariaLabel))}_updateAriaLabelImp(t){const e=[];this.isDraggable&&e.push(culture.Popup.ariaLabels.isDraggable);this.isResizable&&e.push(culture.Popup.ariaLabels.isResizable);this.isVisible?e.push(culture.Popup.ariaLabels.popupVisible):e.push(culture.Popup.ariaLabels.popupHide);const s=e.join(",");setAttribute(this.hostElement,"aria-label",t?`${t} ${s}`:s)}dispose(){Popup._PopupInstanceCount--;0===Popup._PopupInstanceCount&&Popup._evtHover&&(Popup._evtHover=null);this._clearTimeouts();if(this._toHidePopupTimer){clearTimeout(this._toHidePopupTimer);this._toHidePopupTimer=null}if(this._toGetFocusTimer){clearTimeout(this._toGetFocusTimer);this._toGetFocusTimer=null}if(this._hideTimer){clearTimeout(this._hideTimer);this._hideTimer=null}this._hideAnim.forEach(t=>{clearInterval(t)});this._hideAnim=[];const t=this.hostElement;if(t){const e=t.querySelectorAll("."+DropDownClsNames.hostElement);for(let t=0;t<e.length;t++){const s=Control.getControl(e[t]);s&&s instanceof DropDown&&s.dispose()}}if(this._initialOwner){this._initialOwner.appendChild(this.hostElement);this._initialOwner=null}this.owner=null;if(this._bkDrop){this._bkDrop.remove();this._bkDrop=null}this._callback=null;super.dispose()}}Popup._DRAG_THRESHOLD=6;Popup._SZ_EDGE=10;Popup._SZ_MIN=40;Popup._PopupInstanceCount=0;export class PopupBoundsChangingEventArgs extends CancelEventArgs{constructor(t){super();this._rc=t}get bounds(){return this._rc}}_addCultureInfo("InputDate",{ariaLabels:{inputDateInput:"InputDate Input",inputDate:"Input Date",button:"Choose Date",dialog:"Calendar"}});export class InputDateEventArgs extends CancelEventArgs{constructor(t){super();this._isUserInput=t}get isUserInput(){return this._isUserInput}}export class InputDate extends DropDown{constructor(t,e){super(t);this._fmt=Globalize.DefaultDateFormat;this._sep=" - ";this._rngs=null;this._showCal=!1;this._clsOnSel=!0;this._handleWheel=!0;this._preserveCalendarNavigation=!0;this._isTriggered=!1;this._rangeChanged=!1;this._textInitialized=!1;this._previousText="";this._keepInvalidText=!1;this._inputAriaLabel=culture.InputDate.ariaLabels.inputDateInput;this._currentInput="";this._ariaLabelledby=null;this.valueChanged=new Event;this.rangeEndChanged=new Event;this.rangeChanged=new Event;addClass(this.hostElement,InputDateClsNames.hostElement);const s=culture.InputDate.ariaLabels;setAttribute(this._btn.querySelector("button"),"aria-haspopup","dialog");setAttribute(this._dropDown,"role","dialog");setAriaLabel(this._dropDown,s.dialog);setAttribute(this._dropDown,"aria-modal",!0);setAttribute(this._tbx,"role","combobox");setAttribute(this._tbx,"aria-haspopup","dialog");setAriaLabel(this._btn.querySelector("button"),s.button);this.dropDown.id=getUniqueId(this.hostElement.id+"_dropdown");this._msk=new _MaskProvider(this._tbx);const i=this.addEventListener.bind(this);isIE9()||(this.inputType="tel");this._tbx.type.match(/^(tel|text|)$/i)||(this.inputType="text");const n=this._mouseWheel.bind(this);i(this.hostElement,"wheel",n);this._lbx=new ListBox(document.createElement("div"),{displayMemberPath:"name",selectedIndexChanged:t=>{const e=t.selectedItem,s=DateTime.fromDateTime,i=DateTime.sameDate;if(e&&e.from&&e.to){if(!i(e.from,this.value)||!i(e.to,this.rangeEnd)){const t=this.value;this.value=s(e.from,t);this.rangeEnd=s(e.to,t)}this._selectAll()}else this._cal.hostElement.style.display=""}});const a=this._lbx;this._cal=new Calendar(document.createElement("div"));const l=this._cal,h=this._dropDown;addClass(h,InputDateClsNames.inputDateDropDown);const o=document.createElement("div");addClass(o,InputDateClsNames.inputDateDropDownContainer);o.appendChild(a.hostElement);o.appendChild(l.hostElement);h.appendChild(o);this.addEventListener(h,"click",()=>{this._isTriggered=!0;setTimeout(()=>{this._isTriggered=!1},50)},!0);this.addEventListener(h,"keydown",t=>{if("Enter"===t.key){this._isTriggered=!0;setTimeout(()=>{this._isTriggered=!1},50)}},!0);if("INPUT"==this._orgTag){const t=this._tbx.getAttribute("value");t&&(l.value=l.rangeEnd=Globalize.parseDate(t,"yyyy-MM-dd"))}this.isRequired=!0;this._tbx.value=this._oldText=this._getText();this.initialize(e);const r=isNullOrUndefined(this.tabOrder)?0:this.tabOrder;l.tabOrder=-1!==r&&this.showConfirmationButtons?r:-1;a.tabOrder=r;if(this._textInitialized||this._tbx.value!==this._oldText){this._oldText=this._tbx.value;this._currentInput="text";this._textInitialized=!0;this._commitText();this.onTextChanged()}this._updateState();l.valueChanged.addHandler((t,e)=>{this._refreshText();this.onValueChanged(e)});l.rangeEndChanged.addHandler((t,e)=>{if(l._rngMode()){this.onRangeEndChanged(e);this._closeOnChange();l._clearingRangeEnd||this._refreshText()}});l.cancelButtonClicked.addHandler((t,e)=>{this.isDroppedDown=!1});l.OKButtonClicked.addHandler((t,e)=>{this._closeOnChange();this._refreshText()});l._enterKeyDownToSetValue.addHandler((t,e)=>{this._closeOnChange()});l.addEventListener(l.hostElement,"click",t=>{if(l.selectionMode&&!l._rngMode()){const e=t.target,s=l.hitTest(e);if(DateTime.sameDate(this.value,s)||closest(e,"[wj-part=btn-today]")){this._closeOnChange();this._refreshText()}}});this._updateInputAriaLabel()}static get controlTemplate(){InputDate._ctrlTemplate||(InputDate._ctrlTemplate=DropDown.controlTemplate);return InputDate._ctrlTemplate}static set controlTemplate(t){InputDate._ctrlTemplate=t}_mouseWheel(t){if(this.handleWheel&&!t.defaultPrevented&&!this.isDroppedDown&&this.containsFocus()&&null!=this.value&&this._canChangeValue()){let e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=clamp(-t.deltaY,-1,1),a=this.value,l=Globalize.getFullFormat(this.format||Globalize.DefaultDateFormat);null==l&&(l=this.format);const h=l.match(getSpecialCharsRegex());if(i-s===e.value.length&&null!=h||this.selectionMode==DateSelectionMode.Range){for(let t=1;;t++){a=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,t*n):DateTime.addDays(this.value,t*n);if(this._isValidDate(a)||!(null===this.max||a<this.max)||!(null===this.min||a>this.min))break}this.value=a;const t=this._getText();setSelectionRange(e,0,t.length)}else this._updateDateTimeValue(n,h,l);t.preventDefault()}}get value(){return this._cal.value}set value(t){this._cal.value=t;(this.text||this.isRequired)&&this._refreshText()}get rangeEnd(){return this._cal.rangeEnd}set rangeEnd(t){this._cal.rangeEnd=t;(this.text||this.isRequired)&&this._refreshText()}get rangeMin(){return this._cal.rangeMin}set rangeMin(t){this._cal.rangeMin=t}get rangeMax(){return this._cal.rangeMax}set rangeMax(t){this._cal.rangeMax=t}get keepInvalidText(){return this._keepInvalidText}set keepInvalidText(t){if(new Set(["InputDateTime","WjInputDateTime"]).has(this.constructor.name)){this._keepInvalidText=!1;throw"keepInvalidText property cannot be used with InputDateTime control"}this._keepInvalidText=t}get text(){return this._tbx.value}set text(t){const e=(t||"").toString();if(e!=this.text){e!=this._tbx.value&&(this._tbx.value=e);if(e!=this._oldText){this._oldText=e;this._previousText=e}if(isEmpty(this._currentInput)){this._textInitialized=!0;this._currentInput="text";this._commitText()}this.onTextChanged();this._currentInput=""}}get format(){return this._fmt}set format(t){if(t!=this.format){this._fmt=asString(t);this._refreshText()}}get separator(){return this._sep}set separator(t){if(t!=this._sep){this._sep=asString(t,!1);this.invalidate()}}get mask(){return this._msk.mask}set mask(t){this._msk.mask=asString(t)}get closeOnSelection(){return this._clsOnSel}set closeOnSelection(t){this._clsOnSel=asBoolean(t)}get handleWheel(){return this._handleWheel}set handleWheel(t){t=asBoolean(t);this._handleWheel=t;t||(this.calendar.handleWheel=t)}get predefinedRanges(){return this._rngs}set predefinedRanges(t){if(this._rngs!=t){assert(null==t||isObject(t),"Object expected");this._rngs=t;this._lbx.itemsSource=this._getRanges(t);this.invalidate()}}get alwaysShowCalendar(){return this._showCal}set alwaysShowCalendar(t){this._showCal=asBoolean(t)}get min(){return this._cal.min}set min(t){this._cal.min=asDate(t,!0)}get max(){return this._cal.max}set max(t){this._cal.max=asDate(t,!0)}get repeatButtons(){return this._cal.repeatButtons}set repeatButtons(t){this._cal.repeatButtons=asBoolean(t)}get showYearPicker(){return this._cal.showYearPicker}set showYearPicker(t){this._cal.showYearPicker=asBoolean(t)}get showMonthPicker(){return this._cal.showMonthPicker}set showMonthPicker(t){this._cal.showMonthPicker=t}get showHeader(){return this._cal.showHeader}set showHeader(t){this._cal.showHeader=t}get weeksBefore(){return this._cal.weeksBefore}set weeksBefore(t){this._cal.weeksBefore=t}get weeksAfter(){return this._cal.weeksAfter}set weeksAfter(t){this._cal.weeksAfter=t}get selectionMode(){return this._cal.selectionMode}set selectionMode(t){if(t!=this.selectionMode){this._cal.selectionMode=t;this._refreshText()}}get monthCount(){return this._cal.monthCount}set monthCount(t){this._cal.monthCount=t}get calendar(){return this._cal}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){t.match(/^(tel|text|)$/i)?this._tbx.type=asString(t):console.warn(`invalid input type '${t}', don't use any input types other than 'tel' or 'text'`)}get preserveCalendarNavigation(){return this._preserveCalendarNavigation}set preserveCalendarNavigation(t){this._preserveCalendarNavigation=t}get itemValidator(){return this._cal.itemValidator}set itemValidator(t){if(t!=this.itemValidator){this._cal.itemValidator=asFunction(t);this.invalidate()}}get itemFormatter(){return this._cal.itemFormatter}set itemFormatter(t){this._cal.itemFormatter=asFunction(t)}onValueChanged(t){this.valueChanged.raise(this,t)}onRangeEndChanged(t){this.rangeEndChanged.raise(this,t);this.rangeEnd&&(this.isDroppedDown?this._rangeChanged=!0:this.onRangeChanged(t))}onRangeChanged(t){this._rangeChanged=!1;this.rangeChanged.raise(this,t)}_getParsedValue(){const t=this._tbx.value,e=this._fmt,s=(0,Globalize.parseDate)(t,e,this.value);if(s&&DateTime.sameDate(s,this._clamp(s)))return this._fromDateTime(s)}refresh(t=!0){super.refresh(t);if(this.hostElement){this._msk&&this._msk.refresh();this._cal&&this._cal.refresh();this._refreshText()}}onIsDroppedDownChanging(t){if(this.isDroppedDown);else{const t=this._lbx,e=this._cal,s=t.collectionView,i=t.hostElement.style,n=e.hostElement.style;if(e._rngMode()&&hasItems(s)){const t=this._updateRangeSelection();i.display="";n.display=!this._showCal&&t&&t.from&&s.items.some(t=>!t.to)?"none":""}else{i.display="none";n.display=""}e._mthMode()||(e.monthView=!0);e.value&&!this.preserveCalendarNavigation&&(e.displayMonth=e.value);this.showConfirmationButtons&&(e.focusValue=e.value)}return super.onIsDroppedDownChanging(t)}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);const e=this.containsFocus();if(this.isDroppedDown){e&&(this._tryFocus(this._cal)||this._tryFocus(this._lbx)||this.dropDown.focus());this._lbx.showSelection();this._cal.refresh()}else{this._commitText();this._rangeChanged&&this.onRangeChanged()}}_updateDropDown(){this._commitText();const t=getComputedStyle(this.hostElement);this._dropDown.style.minWidth=18*parseFloat(t.fontSize)+"px";this._cal.refresh();super._updateDropDown()}onGotFocus(t){const e=this._tbx;this._elRef==e&&(this.isDroppedDown?this.dropDown.focus():this.selectAll());this.containsFocus()||this.focus();this.gotFocus.raise(this,t)}_keydown(t){if(!(t.defaultPrevented||t.altKey||t.ctrlKey||t.metaKey)){this._isInvalidInputCancelled=!1;if(this._isHiddenEditor())return;const e=getActiveElement();switch(t.keyCode){case Key.Enter:if(this.showConfirmationButtons&&e!==this._tbx)return;this._currentInput="user";this._textInitialized=!1;this._commitText(!1,!0);break;case Key.Escape:this.text=this._getText();this.selectAll();break;case Key.Tab:if(this.showConfirmationButtons&&e!==this._tbx){const s=_getFocusableElements(this._dropDown).filter(t=>!(t.classList.contains("wj-control")&&t.classList.contains("wj-calendar"))),i=s[0],n=s[s.length-1],a=s.indexOf(t.target),l=s[t.shiftKey?(a-1+s.length)%s.length:(a+1)%s.length];let h=!1;l&&(h=this.calendar.isCalendarDateCell(l));if(h){t.preventDefault();this.calendar.focus();this.calendar.setFocusValueToFirstOrLastCalendar(!t.shiftKey)}else if(t.shiftKey){if(e===i){t.preventDefault();n.focus()}}else if(e===n){t.preventDefault();i.focus()}}else if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();this.keyActionTab===TabKeyAction.CloseAndKeepFocus&&t.preventDefault()}this._currentInput="user";this._textInitialized=!1;this._commitText(!0);break;case Key.Up:case Key.Down:if(t.keyCode===Key.Up&&this.keyActionUpArrow===KeyAction.OpenDropdown||t.keyCode===Key.Down&&this.keyActionDownArrow===KeyAction.OpenDropdown)break;if(!this.isDroppedDown&&this.value&&this._canChangeValue()){this._currentInput="user";this._textInitialized=!1;const e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=(e.value,t.keyCode==Key.Up?1:-1);let a=this.value,l=Globalize.getFullFormat(this.format||Globalize.DefaultDateFormat);if("g"==this.format&&l.includes("г")){const t=/"г." /;l=l.replace(t,"")}null==l&&(l=this.format);const h=l.match(getSpecialCharsRegex());if(i-s===e.value.length&&null!=h||this.selectionMode==DateSelectionMode.Range){for(let t=1;;t++){a=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,t*n):DateTime.addDays(this.value,t*n);if(this._isValidDate(a)||!(null===this.max||a<this.max)||!(null===this.min||a>this.min))break}this.value=a;const t=this._getText();setSelectionRange(e,0,t.length)}else this._updateDateTimeValue(n,h,l);t.preventDefault()}}}super._keydown(t)}_expandSelection(){if(this._cal._rngMode()){const t=this._tbx,e=t.value,s=t.selectionStart,i=t.selectionEnd,n=this._sep,a=e.indexOf(n);a>-1&&s==i&&(i<=a?setSelectionRange(t,0,a):s>=a+n.length&&setSelectionRange(t,a+n.length,t.value.length))}else super._expandSelection()}_updateDateTimeValue(t,e,s){const i=this._tbx,n=i.selectionStart,a=i.value;let l=this.value,h={},o={},r=0,d=0,u=0,c=[],_=[];const p=i.value.match(getSpecialCharsRegex());if(null==e||null==p){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{const n=t.replaceAll('"',""),l=s.substring(r),u=a.substring(d),c=l.indexOf(t);let _=u.indexOf(n);if(-1==_){const t=p[i];_=u.indexOf(t)}let m=l.substring(0,c);if(""!=m){h[m]=r;o[m]=d}r=r+c+t.length;d=d+_+n.length;if(i==e.length-1){m=s.substring(r);h[m]=r;o[m]=d}});c=Object.keys(h);_=Object.values(o)}const m=_.filter(t=>n>=parseInt(t.toString()));m.length>0&&(u=m.length-1);const g=c[u];for(let e=1;;e++){-1!=g.indexOf("d")?l=DateTime.addDays(this.value,e*t):-1!=g.indexOf("M")?l=DateTime.addMonths(this.value,e*t):-1!=g.indexOf("y")&&(l=DateTime.addYears(this.value,e*t));if(this._isValidDate(l)||!(null===this.max||l<this.max)||!(null===this.min||l>this.min))break}this.value=l;this._reselectText(e,u)}_reselectText(t,e){const s=this._getText(),i=this._tbx;let n=0,a=-1,l=-1;if(1==t.length&&""==t[0]){a=0;l=s.length}else{const h=i.value.match(getSpecialCharsRegex());t.forEach((t,i)=>{const o=t.replaceAll('"',"");let r=s.substring(n);if(r.startsWith("г.")){r=r.replace("г. ","");n+="г. ".length}let d=r.indexOf(o);0==d&&e++;if(-1==d){const t=h[i];d=r.indexOf(t)}const u=-1===d?r:r.substring(0,d);if(i==e&&-1==a){a=n;l=a+u.length}n=n+d+o.length})}if(-1==a){a=n;l=i.value.length}setSelectionRange(i,a,l)}_refreshText(){const t=this._getText();if(t!=this.text||t!==this._oldText){this._tbx.value=this._oldText=this._previousText=t;this.onTextChanged()}}_selectAll(){this.isDroppedDown||!this.containsFocus()||this.isTouching||this.selectAll()}_closeOnChange(){if(this._clsOnSel&&this._isTriggered){const t=this._cal;(!t._rngMode()||t.value&&t.rangeEnd)&&setTimeout(()=>{this._isInvalidInputCancelled=!1;this.isDroppedDown=!1})}}_tryFocus(t){const e=t.hostElement;if(e&&e.offsetHeight){e.focus();return!0}return!1}_clamp(t){return this._cal._clamp(t)}_getText(){let t=Globalize.format,e=this._fmt,s=t(this.value,e);this._cal._rngMode()&&s&&(this.rightToLeft?s=t(this.rangeEnd,e)+this._sep+s:s+=this._sep+t(this.rangeEnd,e));return s}_commitText(t,e){const s=this._tbx.value;this._isInvalidInputCancelled=!1;if(isEmpty(this._currentInput)){this._textInitialized=!1;this._currentInput="user"}let i=!1,n=this._fmt,a=this._cal,l=Globalize.parseDate;const h=new InputDateEventArgs(!this._textInitialized);if(s)if(a._rngMode()){const t=s.split(this._sep),o=this.rightToLeft?t[1]:t[0];if(2==t.length&&o){const s=l(o,n,this.value);if(s){const o=l(this.rightToLeft?t[0]:t[1],n,this.value);if(DateTime.sameDate(s,this._clamp(s)))i=!0;else if(this._shouldRaiseInvalidInput(e)&&this.onInvalidInput(h))this._textInitialized&&this._keepInvalidText||(i=!0);else{this._selectAll();i=!1}if(i)if(o){a.value=this._fromDateTime(s);if(DateTime.sameDate(o,this._clamp(o))){a.rangeEnd=o&&o>=s?this._fromDateTime(o):s;this.text=this._getText()}else this._triggerInvalidInputEvent(h,s,o,e)}else if(this._shouldRaiseInvalidInput(e)&&this.onInvalidInput(h)){if(!this._textInitialized||!this._keepInvalidText){a.value=this._fromDateTime(s);a.rangeEnd=s;this.text=this._getText()}}else{this._isInvalidInputCancelled=!0;this._selectAll()}}else this._nullValueInvalidInput(h,e)}else this._nullValueInvalidInput(h,e)}else{const t=l(s,n,this.value);t?DateTime.sameDate(t,this._clamp(t))?this.value=this._fromDateTime(t):this._triggerInvalidInputEvent(h,t,null,e):this._nullValueInvalidInput(h,e)}else if(this.isRequired){const t=l(s,n,this.value);t?this.value=this._fromDateTime(t):this.containsFocus()||(this.text=this._getText())}else this.value=this.rangeEnd=null;this._currentInput="";t||this._selectAll()}_triggerInvalidInputEvent(t,e,s,i){if(this._shouldRaiseInvalidInput(i)&&this.onInvalidInput(t)){if(!this._textInitialized||!this._keepInvalidText){this.value=this._fromDateTime(e);this.calendar._rngMode()&&(this.calendar.rangeEnd=s&&s>=e?this._fromDateTime(s):e)}}else{this.isDroppedDown||!this.containsFocus()||this.isTouching||this.focus();this._isInvalidInputCancelled=!0;this._selectAll()}}_nullValueInvalidInput(t,e){if(this._shouldRaiseInvalidInput(e)&&this.onInvalidInput(t))this._textInitialized&&this._keepInvalidText||(this.text=this._getText());else{this.isDroppedDown||!this.containsFocus()||this.isTouching||this.focus();this._isInvalidInputCancelled=!0;this._selectAll()}}_fromDateTime(t){return DateTime.fromDateTime(t,this.value)}_canChangeValue(){return!this.isReadOnly&&!this.isDisabled&&this.selectionMode!=DateSelectionMode.None}_isValidDate(t){if(t){if(this._clamp(t)!=t)return!1;if(this.itemValidator&&!this.itemValidator(t))return!1}return!0}_getRanges(t){const e=[];if(isObject(t))for(const s in t){const i=t[s];e.push({name:s,from:i?i[0]:null,to:i?i[1]:null})}return new CollectionView(e,{currentItem:null})}_updateRangeSelection(){let t=this._lbx,e=-1;if(hasItems(t.collectionView)){const t=this._lbx.collectionView.items,s=DateTime.sameDate;for(let i=0;i<t.length;i++){const n=t[i];if(n.from){if(s(n.from,this.value)&&s(n.to,this.rangeEnd)){e=i;break}}else e=i}}t.selectedIndex=e;return t.selectedItem}_copy(t,e){if("text"===t){const t=(e||"").toString();if(t!==this.text){this._tbx.value=t;this._textInitialized=!0}return!0}return!1}get showConfirmationButtons(){return this._showConfirmationButtons}set showConfirmationButtons(t){this._showConfirmationButtons=t;this._cal.focusMode=t;this._cal.showConfirmationButtons=t;this._cal.updateConfirmationButtons(this.dropDown);const e=isNullOrUndefined(this.tabOrder)?0:this.tabOrder;this._cal.tabOrder=t?e:-1;this._cal.keyActionTab=t?CalendarTabKeyAction.All:CalendarTabKeyAction.None}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAriaLabel.bind(this))}_updateInputAriaLabel(){this._tbx&&(this._tbx.id||this.ariaLabelledBy?setAriaLabel(this._tbx,null):setAriaLabel(this._tbx,this._inputAriaLabel))}getAriaLabelForScreenReader(){return culture.InputDate.ariaLabels.inputDate}}InputDate._ctrlTemplate="";_addCultureInfo("InputDateRange",{ariaLabels:{inputDateRangeInput:"InputDateRange Input"}});export class InputDateRange extends InputDate{constructor(t,e){super(t,Object.assign({selectionMode:DateSelectionMode.Range,showMonthPicker:"Outside",monthCount:2},getInputDateOptions(e)));this._inputAriaLabel=culture.InputDateRange.ariaLabels.inputDateRangeInput;addClass(this.hostElement,InputDateRangeClsNames.hostElement);this._tbx.value=this._oldText=this._getText();this.initialize(e);if(this._tbx.value!==this._oldText){this._oldText=this._tbx.value;this._currentInput="text";this._commitText()}this._updateInputAriaLabel()}static get controlTemplate(){InputDateRange._ctrlTemplate||(InputDateRange._ctrlTemplate=InputDate.controlTemplate);return InputDateRange._ctrlTemplate}static set controlTemplate(t){InputDateRange._ctrlTemplate=t}get selectionMode(){return this.calendar.selectionMode}set selectionMode(t){t=asEnum(t,DateSelectionMode);assert(t==DateSelectionMode.Range,'InputDateRange.selectionMode must be "Range"');this.calendar.selectionMode=t}_mouseWheel(t){if(!t.defaultPrevented&&!this.isDroppedDown&&this.containsFocus()&&null!=this.value&&this._canChangeValue()){const e=clamp(-t.deltaY,-1,1),s=this.value;this.value=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(s,e):DateTime.addDays(s,e);this.selectAll();t.preventDefault()}}onGotFocus(t){const e=this._tbx;this._elRef!=e||this.isDroppedDown||this.selectAll();this.containsFocus()||this.focus();this.gotFocus.raise(this,t)}_keydown(t){if(!(t.defaultPrevented||t.altKey||t.ctrlKey||t.metaKey)){this._isInvalidInputCancelled=!1;if(this._isHiddenEditor())return;switch(t.keyCode){case Key.Up:case Key.Down:if(t.keyCode===Key.Up&&this.keyActionUpArrow===KeyAction.OpenDropdown||t.keyCode===Key.Down&&this.keyActionDownArrow===KeyAction.OpenDropdown)break;if(!this.isDroppedDown&&this.value&&this._canChangeValue()){const e=t.keyCode==Key.Up?1:-1,s=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,e):DateTime.addDays(this.value,e);this.value=this._fromDateTime(s);this.selectAll();t.preventDefault()}}}super._keydown(t)}}InputDateRange._ctrlTemplate="";function getInputDateOptions(t){const e={};if(!isNullOrUndefined(t)){isNullOrUndefined(t.showConfirmationButtons)||(e.showConfirmationButtons=t.showConfirmationButtons);isNullOrUndefined(t.tabOrder)||(e.tabOrder=t.tabOrder)}return e}_addCultureInfo("InputColor",{ariaLabels:{inputColor:"Input Color",inputColorInput:"InputColor Input",button:"Choose Color",dialog:"ColorPicker"}});export class InputColor extends DropDown{constructor(t,e){super(t);this._textInitialized=!1;this._ariaLabelledby=null;this._inputAriaLabel=culture.InputColor.ariaLabels.inputColorInput;this.valueChanged=new Event;addClass(this.hostElement,InputColorClsNames.hostElement);setAttribute(this._dropDown,"role","dialog");setAriaLabel(this._dropDown,culture.InputColor.ariaLabels.dialog);setAttribute(this._dropDown,"aria-modal",!0);setAttribute(this._tbx,"role","combobox");setAttribute(this._tbx,"aria-haspopup","dialog");setAttribute(this._btn.querySelector("button"),"aria-haspopup","dialog");setAriaLabel(this._btn.querySelector("button"),culture.InputColor.ariaLabels.button);this.dropDown.id=getUniqueId(this.hostElement.id+"_dropdown");const s=`<div class="${InputColorClsNames.inputColorBox}"></div>`;this._ePreview=createElement(s,this.hostElement.firstElementChild);if("INPUT"==this._orgTag){this._tbx.type="";this._commitText()}this.value="#ffffff";this.isRequired=!0;this._tbx.value=this._oldText=this.value;this.initialize(e);if(this._textInitialized&&this._tbx.value!==this._oldText){this._oldText=this._tbx.value;this.onTextChanged();this._commitText();this._textInitialized=!1}this.addEventListener(this._colorPicker.hostElement,"click",t=>{const e=t.target;if(e&&"DIV"==e.tagName&&(closest(e,'[wj-part="div-pal"]')||closest(e,'[wj-part="div-pv"]'))){e.style.backgroundColor&&(this.isDroppedDown=!1)}});const i=!e||-1!==e.tabOrder&&e.colorPickerKeyActionTab!==ColorPickerTabKeyAction.None?0:-1;this._colorPicker.tabOrder=i;this._updateInputAriaLabel()}static get controlTemplate(){InputColor._ctrlTemplate||(InputColor._ctrlTemplate=DropDown.controlTemplate);return InputColor._ctrlTemplate}static set controlTemplate(t){InputColor._ctrlTemplate=t}get value(){return this._value}set value(t){this.text=t}get text(){return this._tbx.value}set text(t){if((t=asString(t))!=this.text&&(t||!this.isRequired)&&(!t||Color.fromString(t.replace(/\s+/g,"")))){this._setText(t,!0);this._commitText()}}get inputType(){return this._tbx.type}set inputType(t){t.match(/^(tel|text|)$/i)?this._tbx.type=asString(t):console.warn(`invalid input type '${t}', don't use any input types other than 'tel' or 'text'`)}get showAlphaChannel(){return this._colorPicker.showAlphaChannel}set showAlphaChannel(t){this._colorPicker.showAlphaChannel=t}get showColorString(){return this._colorPicker.showColorString}set showColorString(t){this._colorPicker.showColorString=t}get palette(){return this._colorPicker.palette}set palette(t){this._colorPicker.palette=t}get colorPicker(){return this._colorPicker}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAriaLabel.bind(this))}get colorPickerKeyActionTab(){return this.colorPicker.keyActionTab}set colorPickerKeyActionTab(t){this.colorPicker.keyActionTab=t}onValueChanged(t){this.valueChanged.raise(this,t)}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);if(this.isDroppedDown&&!this.isTouching){this.colorPicker._refreshSelection();const t=this._tbx;this._elRef==t&&setSelectionRange(t,0,this.text.length,!1);this.containsFocus()||this.focus()}}_createDropDown(){this._colorPicker=new ColorPicker(this._dropDown);setCss(this._dropDown,{minWidth:420,minHeight:200});this._colorPicker.valueChanged.addHandler(()=>{this.value=this._colorPicker.value})}_keydown(t){if(!t.defaultPrevented)switch(t.keyCode){case Key.Enter:this._commitText();this.selectAll();break;case Key.Escape:this.text=this.value;this.selectAll();break;case Key.Tab:{const e=getActiveElement();if(this.colorPicker.keyActionTab===ColorPickerTabKeyAction.All&&e!==this._tbx){const s=_getFocusableElements(this.colorPicker.hostElement),i=s[0],n=s[s.length-1];if(t.shiftKey){if(e===i){t.preventDefault();n.focus()}}else if(e===n){t.preventDefault();i.focus()}}else if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();this.keyActionTab===TabKeyAction.CloseAndKeepFocus&&t.preventDefault()}break}}super._keydown(t)}_commitText(){if(this._value!=this.text){const t=!this.text||!this.text.trim();if(!this.isRequired&&t){this._changeAllValue();this._ePreview.style.backgroundColor="";return}if(Color.fromString(this.text.replace(/\s+/g,""))){if(this.text&&this.text!==this.text.replace(/\s+/g,"")){this.text=this.text.replace(/\s+/g,"");return}this._changeAllValue()}else this.onInvalidInput(new CancelEventArgs)&&(this.text=this._value?this._value:"")}}_changeAllValue(){const t=this._colorPicker;t.value=this.text;this._value=t.value;this._ePreview.style.backgroundColor=this.value;this.onValueChanged()}_copy(t,e){if("text"===t){const t=(e||"").toString();if(t!==this.text){this._tbx.value=t;this._textInitialized=!0}return!0}return!1}getAriaLabelForScreenReader(){return culture.InputColor.ariaLabels.inputColor}_updateInputAriaLabel(){this._tbx&&(this._tbx.id||this.ariaLabelledBy?setAriaLabel(this._tbx,null):setAriaLabel(this._tbx,this._inputAriaLabel))}}InputColor._ctrlTemplate="";_addCultureInfo("ComboBox",{ariaLabels:{comboBoxInput:"ComboBox Input",comboBox:"Combo Box"}});export class ComboBox extends DropDown{constructor(t,e){super(t);this._editable=!1;this._trimText=!0;this._handleWheel=!0;this._delKey=0;this._draggingText=!1;this._textIsComposing="";this._pathHdr=new Binding(null);this._bsCollapse=!0;this._fmtItemHandlers=0;this._emptyValueAction=!1;this._oldIndexToBeRestoredOnBlur=null;this._restoreComboboxTbxVal=!1;this._isWheel=!1;this._selItems=null;this._oldFilter=null;this._keyActionPrintCharacters=KeyAction.OpenDropdown;this._inputElementAriaLabel=culture.ComboBox.ariaLabels.comboBoxInput;this._ariaLabelledby=null;this.itemsSourceChanged=new Event;this.selectedIndexChanged=new Event;const s=this.hostElement;addClass(s,ComboBoxClsNames.hostElement);this.dropDown.id=getUniqueId(s.id+"_dropdown");this.autoExpandSelection=!1;const i=this._tbx;this.addEventListener(i,"compositionstart",()=>{this._composing=!0});this.addEventListener(i,"compositionend",()=>{this._textIsComposing=this.text;this._composing=!1;this._setText(this._textIsComposing,!0);if(!this._textIsComposing&&this.isRequired){this._oldText="";this._oldIndexToBeRestoredOnBlur=null}setTimeout(()=>{this._textIsComposing=""})});this.addEventListener(i,"drag",()=>{this._draggingText=!0});this.addEventListener(s,"wheel",this._wheel.bind(this));"SELECT"==this._orgTag&&this._lbx._initFromSelect(s);const n=this._lbx;n.loadedItems.addHandler(t=>{this.selectedIndex>-1&&(this.selectedIndex=n.selectedIndex)});n.tabOrder=-1;this.isRequired=!0;this.initialize(e);this._updateTbxAriaHaspopup();this._updateInputAriaLabel()}static get controlTemplate(){ComboBox._ctrlTemplate||(ComboBox._ctrlTemplate=DropDown.controlTemplate);return ComboBox._ctrlTemplate}static set controlTemplate(t){ComboBox._ctrlTemplate=t}get itemsSource(){return this._lbx.itemsSource}set itemsSource(t){if(this._lbx.itemsSource!=t){this._lbx.itemsSource=t;this.onItemsSourceChanged()}this._updateBtn()}get collectionView(){return this._lbx.collectionView}get virtualizationThreshold(){return this._lbx.virtualizationThreshold}set virtualizationThreshold(t){this._lbx.virtualizationThreshold=t}get showGroups(){return this._lbx.showGroups}set showGroups(t){this._lbx.showGroups=t}get displayMemberPath(){return this._lbx.displayMemberPath}set displayMemberPath(t){if(this.displayMemberPath===t)return;this._lbx.displayMemberPath=t;const e=this._getDisplayText(void 0,void 0,!0);this.text!=e&&this._setText(e,!0)}get headerPath(){return this._pathHdr.path}set headerPath(t){this._pathHdr.path=asString(t);const e=this._getDisplayText(void 0,void 0,!0);this.text!=e&&this._setText(e,!0)}get selectedValuePath(){return this._lbx.selectedValuePath}set selectedValuePath(t){this._lbx.selectedValuePath=t}get isContentHtml(){return this._lbx.isContentHtml}set isContentHtml(t){if(t!=this.isContentHtml){this._lbx.isContentHtml=asBoolean(t);const e=this._getDisplayText(void 0,void 0,!0);this.text!=e&&this._setText(e,!0)}}get caseSensitiveSearch(){return this._lbx.caseSensitiveSearch}set caseSensitiveSearch(t){this._lbx.caseSensitiveSearch=asBoolean(t)}get trimText(){return this._trimText}set trimText(t){if(t!=this._trimText){this._trimText=asBoolean(t);this.invalidate()}}get itemFormatter(){return this._lbx.itemFormatter}set itemFormatter(t){this._lbx.itemFormatter=asFunction(t);this.selectedIndex=this._lbx.selectedIndex}get formatItem(){return this._lbx.formatItem}get selectedIndex(){return this._lbx.selectedIndex}set selectedIndex(t){t!=this.selectedIndex&&isNumber(t)&&(this._lbx.selectedIndex=t);const e=this._lbx._oldSelectedIndex!=this.selectedIndex;t=this.selectedIndex;const s=this._getDisplayText(t,void 0,!0);if(this.text!=s||e){const t=this._internalSettingText;this._internalSettingText=this._lbx._ignoredItemChangedEvents;this._setText(s,!0);""!=this.text&&(this._emptyValueAction=!1);this._internalSettingText=t}}get selectedItem(){return this._lbx.selectedItem}set selectedItem(t){this._lbx.selectedItem=t}get selectedValue(){return this.collectionView?this._lbx.selectedValue:this.text}set selectedValue(t){this.collectionView?this._lbx.selectedValue=t:null!=t&&(this.text=t.toString())}get isEditable(){return this._editable}set isEditable(t){this._editable=asBoolean(t)}get handleWheel(){return this._handleWheel}set handleWheel(t){this._handleWheel=asBoolean(t)}get maxDropDownHeight(){return this._lbx.maxHeight}set maxDropDownHeight(t){this._lbx.maxHeight=t}get maxDropDownWidth(){const t=this._dropDown,e=t?parseInt(t.style.maxWidth):null;return isNaN(e)?null:e}set maxDropDownWidth(t){const e=this._dropDown.style;t=asNumber(t,!0);e.maxWidth=null==t?"":t+"px";e.minWidth=""}get keyActionPrintCharacters(){return this._keyActionPrintCharacters}set keyActionPrintCharacters(t){this._keyActionPrintCharacters=asEnum(t,KeyAction)}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAndListBoxAriaLabel.bind(this))}_updateInputAndListBoxAriaLabel(){this._updateInputAriaLabel()}getDisplayText(t=this.selectedIndex,e=this._trimText){return this._getDisplayText(t,e)}_getDisplayText(t=this.selectedIndex,e=this._trimText,s){let i,n=this.collectionView;if(this.headerPath&&t>-1&&hasItems(n)){const e=n.items[t];i=e?this._pathHdr.getValue(e):null;i=null!=i?i.toString():"";this.isContentHtml&&(i=toPlainText(i))}else i=this._lbx._getDisplayText(t,s&&void 0!==this.itemFormatter&&!this._hasCustomFormatItem());return e?i.trim():i}_hasCustomFormatItem(){return this.formatItem.hasHandlers}indexOf(t,e,s=!1){const i=this.collectionView,n=this.caseSensitiveSearch;if(hasItems(i)&&null!=t){t=t.toString();n||(t=t.toLowerCase());if(this._trimText&&!s){-1!==this.indexOf(t,!1,!0)||(t=t.trim())}let a=this.selectedIndex,l=this._getDisplayText(a,void 0,!0);if(e){n||(l=l.toLowerCase());if(t==l)return a}else if(!t&&""==l)return a;for(let s=0;s<i.items.length;s++)if(this._lbx.isItemEnabled(s)){l=this._getDisplayText(s,void 0,!0);this.trimText&&(l=l.trim());n||(l=l.toLowerCase());if(e){if(l==t&&!1===this._emptyValueAction)return s}else if(t&&0==l.indexOf(t)||!t&&""==l&&!1===this._emptyValueAction)return s}}return-1}get listBox(){return this._lbx}onItemsSourceChanged(t){this.itemsSourceChanged.raise(this,t)}onSelectedIndexChanged(t){this._updateBtn();this.selectedIndexChanged.raise(this,t)}refresh(t=!0){super.refresh(t);if(this.hostElement&&hasItems(this.collectionView)){this._lbx.refresh();this.selectedIndex>-1&&(this.selectedIndex=this._lbx.selectedIndex)}}onLostFocus(t,e,s){this._trimText&&(this.text=this.text.trim());if(this._composing){this._composing=!1;if(!this.text&&this.isRequired){this._oldText="";this._oldIndexToBeRestoredOnBlur=null}this._setText(this.text,!0)}if((!this.text&&this.isRequired&&!(Array.isArray(this._selItems)&&this._selItems.length>0)||s)&&hasItems(this.collectionView)&&!(this.isRequired&&!this.isEditable&&this.text&&this.indexOf(this.text,!1)>-1&&this.indexOf(this.text,!0)<0)){void 0!==e&&(this.selectedIndex=-1!==e?e:0);null!==this._oldIndexToBeRestoredOnBlur?this.selectedIndex=-1!==this._oldIndexToBeRestoredOnBlur?this._oldIndexToBeRestoredOnBlur:0:null==this.collectionView.currentItem&&(this.selectedIndex=0)}const i=this.text,n=this.collectionView?this.collectionView.items.length:0,a=this.selectedIndex;super.onLostFocus(t);const l=this.collectionView?this.collectionView.items.length:0,h=this.selectedIndex,o=this.text,r=this._oldFilter;this._oldFilter=null;if(a===h&&i===o){r&&(this.collectionView.filter=r);this._trySelectionUpdateOnItemsSourceChanged(l!==n,i)}}onIsDroppedDownChanging(t){if(!this.isDroppedDown&&!this._hasItems()){t.cancel=!0;return!1}return super.onIsDroppedDownChanging(t)}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);if(this.isDroppedDown){this._fmtItemHandlers=this.formatItem.handlerCount;this._lbx.showSelection()}this._updateTbxAria()}_trySelectionUpdateOnItemsSourceChanged(t,e){if(t&&e){let t=this.indexOf(e,!0);t<0&&(t=this.indexOf(e,!1));this.selectedIndex=t}}_setIsDisabled(t){super._setIsDisabled(t);this._updateBtn()}_updateBtn(){const t=this.collectionView,e=this._tbx,s=this._hasItems();super._updateBtn();this._btn.style.display=this._showBtn&&null!=t?"":"none";enable(this._btn,s&&!this.isDisabled);setAttribute(e,"role",s?"combobox":null);setAttribute(e,"aria-autocomplete",s?"both":null);this._updateTbxAria()}_hasItems(){return hasItems(this.collectionView)}_updateTbxAria(){super._updateTbxAria();const t=this._tbx,e=this.isDroppedDown,s=this.dropDown?this.dropDown.id:null,i=s&&hasItems(this.collectionView),n=this._lbx,a=n.selectedIndex,l=n.hostElement?n.hostElement.children:null,h=n._getElementIndex(a),o=h>-1&&l&&h<l.length?l[h].id:null;setAttribute(t,"aria-controls",i&&e?s:null);setAttribute(t,"aria-expanded",i?e:null);setAttribute(t,"aria-activedescendant",this.isDroppedDown&&o&&o.length?o:null)}_updateInputAriaLabel(){const t=this._tbx;t&&(t.id||this._ariaLabelledby?setAttribute(t,"aria-label",null):setAttribute(t,"aria-label",this._inputElementAriaLabel))}_createDropDown(){if(!this._lbx){this._lbx=new ListBox(this._dropDown);this._lbx._container=this.hostElement}this._lbx.maxHeight=200;this._lbx.selectedIndexChanged.addHandler(()=>{this._updateBtn();const t=this._lbx.selectedIndex;this.selectedIndex=t;this.onSelectedIndexChanged()});this._lbx.itemsChanged.addHandler(()=>{this._updateBtn()})}_wheel(t){this._isWheel=!0;if(this.handleWheel&&!t.defaultPrevented&&!this.isDroppedDown&&!this.isReadOnly&&this.containsFocus()&&this.selectedIndex>-1){const e=this._findNext("",t.deltaY>0?1:-1);e>-1&&(this.selectedIndex=e);t.preventDefault()}this._isWheel=!1}_dropDownClick(t){t.defaultPrevented||t.target!=this._dropDown&&(this.isDroppedDown=!1);this._restoreComboboxTbxVal&&(this._tbx.value=this._getDisplayText(this.selectedIndex,void 0,!0));super._dropDownClick(t)}_setText(t,e,s=!1){if(this._composing||this._settingText)return;this._settingText=!0;if(this.containsFocus()){const t=this.formatItem.handlerCount;if(this._fmtItemHandlers!=t){this._fmtItemHandlers=t;this._lbx.loadList()}}t=[null,void 0,NaN].includes(t)?"":t.toString();let i=this.selectedIndex,n=this.collectionView,a=this._getSelStart(),l=-1,h=!0;if(this.isEditable&&(this._delKey||this._getSelEnd()<t.length||!this.containsFocus())){e=!0;h=!1}i=this.indexOf(t,e);if(h){i<0&&e&&(i=this.indexOf(t,!1));i<0&&a>0&&!s&&(i=this.indexOf(t.substr(0,a),!1));if(!e){const e=this.indexOf(t,!0);e>-1&&i>-1&&e!=i&&(i=e)}}i<0&&this._delKey&&(i=this.indexOf(t,e));if(i<0&&!this.isEditable&&hasItems(n)&&(t&&this.isRequired||this.containsFocus()&&(t||this.isRequired))){const e=this._oldText||"";i=Math.max(0,this.indexOf(e,!1));a=0;for(let s=0;s<t.length&&s<e.length;s++)if(t[s]!=e[s]){a=s;break}}if((!this._delKey||!this.isEditable||this._delKey&&this.isEditable&&t==this._getDisplayText(i,void 0,!0))&&(!this._pristine||this._pristine&&!this.isEditable)||this._isWheel||this._delKey&&""==t&&i>-1){if(i>-1){l=a;t=this._getDisplayText(i,void 0,!0)}const e=this._tbx;t!=e.value&&(e.value=t);l>-1&&this.containsFocus()&&!this.isTouching&&this._updateInputSelection(l)}if(n){if(!t||this.trimText&&""==t.trim()&&!this.containsFocus()&&this.isEditable)if(i>-1)this._oldIndexToBeRestoredOnBlur=i;else{this._oldIndexToBeRestoredOnBlur=this.indexOf(this._oldText,!0);this._oldIndexToBeRestoredOnBlur=this._oldIndexToBeRestoredOnBlur<0?this.indexOf(this._oldText,!1):this._oldIndexToBeRestoredOnBlur}this._restoreComboboxTbxVal=t&&i>-1;n.moveCurrentToPosition(i)}this.containsFocus()||this.isEditable||this.isRequired||t!=t.trim()||!this.trimText||(this._tbx.value=this._getDisplayText(i,this.trimText,!0));!this.containsFocus()&&i>-1&&this.isEditable&&(t=this._getDisplayText(i,this.trimText,!0));!this.containsFocus()&&this._hasItems()&&i<0&&!this.isEditable&&!this.isRequired&&(t="");let o=!1;!t&&i<0&&this.isRequired&&!this.containsFocus()&&(o=!0);this.trimText&&!this.containsFocus()&&this.isEditable&&(this.isRequired&&""==t.trim()?o=!0:t=t.trim());if(o){this.selectedIndex=this._oldIndexToBeRestoredOnBlur;this.selectedIndex<0&&(this.selectedIndex=0)}const r=!this.containsFocus()&&!this.isEditable&&this.trimText;r&&(this._tbx.value=this._getDisplayText(i,!0,!0));this._delKey=0;this._settingText=!1;super._setText(o?this._getDisplayText(this.selectedIndex,void 0,!0):t,e,o,r)}_findNext(t,e,s=this.selectedIndex){const i=this.collectionView,n=i?i.items.length:0,a=this._lbx,l=this.caseSensitiveSearch;if(i&&n&&e){l||(t=t.toLowerCase());this.trimText&&(t=t.trim());for(let i=s+e;i>-1&&i<n;i+=e){let e=this._getDisplayText(i,void 0,!0);l||(e=e.toLowerCase());if(0==e.indexOf(t)){if(!this.dropDown.children[i]||a.isItemEnabled(i))return i}}}return s}_findNextWhenIsEditableFalse(t,e,s=this.selectedIndex){const i=this._findNext(t,e,s);return i!==s?i:-1}_keydown(t){super._keydown(t);if(t.defaultPrevented||this.isReadOnly)return;if(t.altKey)return;if(!hasItems(this.collectionView))return;if(this._elRef!=this._tbx)return;if(this._isHiddenEditor())return;this._delKey=0;let e=this._getSelStart();const s=this._getSelEnd();switch(t.keyCode){case Key.Tab:if(this.isDroppedDown){this.isDroppedDown=!1;this.keyActionTab===TabKeyAction.CloseAndKeepFocus&&t.preventDefault()}break;case Key.Back:case Key.Delete:case 88:if(!t.ctrlKey&&!t.metaKey&&88==t.keyCode)break;if(this._bsCollapse&&!this.isEditable&&e>0&&s==this._tbx.value.length&&hasItems(this.collectionView)){this._setSelRange(e-1,s);e-=1}this._delKey=t.keyCode;break;case Key.Up:case Key.Down:e==this.text.length&&(e=0);this.selectedIndex=this._findNext(this.text.substr(0,e),t.keyCode==Key.Up?-1:1);this._setSelRange(e,this.text.length);t.preventDefault();break;case Key.PageUp:this._lbx._selectPrevPage();this.selectAll();t.preventDefault();break;case Key.PageDown:this._lbx._selectNextPage();this.selectAll();t.preventDefault();break;case Key.Home:case Key.End:{const t=this._tbx;setAttribute(t,"aria-activedescendant",null);break}}this.text.length>0&&["Backspace","Delete","x"].includes(t.key)&&0===e&&s===this.text.length||this._delKey&&1===this.text.length?this._emptyValueAction=!0:this._composing||(this._emptyValueAction=!1)}_afterOpenDropdownByDownArrow(){if(-1===this.selectedIndex){this.selectedIndex=0;this.selectAll()}}_input(t){this._handleDragTextState();this._updateDropDownWhenInput();this._updateComponentText();this._updateEmptyValueFlag();this._resetDragState()}_handleDragTextState(){this._draggingText&&(this._emptyValueAction=""===this.text)}_shouldOpenDropdown(){return this.keyActionPrintCharacters===KeyAction.OpenDropdown}_handleIsEditableFalseInput(){const t=this.text;let e=this.text.length,s=this._findNextWhenIsEditableFalse(t,1,this.selectedIndex-1);if(-1===s){s=this._findNextWhenIsEditableFalse(t,1,-1);if(-1===s){const i=t[t.length-1];s=this._findNextWhenIsEditableFalse(i,1);e=1;-1===s&&(s=this._findNextWhenIsEditableFalse(i,1,-1))}}-1!==s?this._updateSelection(s,e):this._updateComponentText()}_updateSelection(t,e){this._tbx.value=this._getDisplayText(t,void 0,!0);this._updateInputSelection(e);const s=this.collectionView;s&&s.moveCurrentToPosition(t)}_updateComponentText(){const t=this._textIsComposing||this.text;this._setText(t,!1)}_updateEmptyValueFlag(){this.text&&(this._emptyValueAction=!1)}_controlDropdownVisibility(){this.text&&!this.isDroppedDown&&(this.isDroppedDown=!0)}_resetDragState(){this._draggingText=!1}_updateInputSelection(t){const e=this._tbx;this._elRef==e&&this._setSelRange(t,e.value.length)}_getSelStart(){const t=this._tbx;return t&&t.value?t.selectionStart:0}_getSelEnd(){const t=this._tbx;return t&&t.value?t.selectionEnd:0}_setSelRange(t,e){const s=this._tbx;this._elRef!=s||s.readOnly||setSelectionRange(s,t,e)}getAriaLabelForScreenReader(){return culture.ComboBox.ariaLabels.comboBox}_updateDropDownWhenInput(){if(this._shouldOpenDropdown()){const t=this._getSelStart(),e=this._getSelEnd(),s=this._delKey,i=this.text;this._controlDropdownVisibility();this._tbx.value=i;this._setSelRange(t,e);this._delKey=s}}}ComboBox._ctrlTemplate="";_addCultureInfo("MultiSelect",{itemsSelected:"{count:n0} items selected",selectAll:"Select All",ariaLabels:{multiSelectInput:"MultiSelect Input",multiSelect:"Multi Select"}});export class MultiSelect extends ComboBox{constructor(t,e){super(t);this._maxHdrItems=2;this._readOnly=!1;this._hdrFmt=null;this._inputElementAriaLabel=culture.MultiSelect.ariaLabels.multiSelectInput;this.checkedItemsChanged=new Event;addClass(this.hostElement,MultiSelectClsNames.hostElement);this._tbx.readOnly=!0;this.checkedMemberPath=null;this.removeEventListener(this.dropDown,"click");this._lbx.itemsChanged.addHandler(()=>{this._updateHeader(!1)});this._lbx.checkedItemsChanged.addHandler(()=>{this._updateHeader(!1);this.onCheckedItemsChanged()});this.clickAction=ClickAction.Toggle;this.initialize(e);this._updateInputAriaLabel()}static get controlTemplate(){MultiSelect._ctrlTemplate||(MultiSelect._ctrlTemplate=ComboBox.controlTemplate);return MultiSelect._ctrlTemplate}static set controlTemplate(t){MultiSelect._ctrlTemplate=t}get showSelectAllCheckbox(){return this._msLbx.showSelectAllCheckbox}set showSelectAllCheckbox(t){this._msLbx.showSelectAllCheckbox=asBoolean(t)}get showFilterInput(){return this._msLbx.showFilterInput}set showFilterInput(t){this._msLbx.showFilterInput=asBoolean(t)}get delay(){return this._msLbx.delay}set delay(t){this._msLbx.delay=t}get caseSensitiveSearch(){return this._msLbx.caseSensitiveSearch}set caseSensitiveSearch(t){this._msLbx.caseSensitiveSearch=t}get filterInputPlaceholder(){return this._msLbx.filterInputPlaceholder}set filterInputPlaceholder(t){this._msLbx.filterInputPlaceholder=asString(t)}get checkOnFilter(){return this._msLbx.checkOnFilter}set checkOnFilter(t){if(t!=this.checkOnFilter){this._msLbx.checkOnFilter=asBoolean(t);this.checkedItems=[]}}get selectAllLabel(){return this._msLbx.selectAllLabel}set selectAllLabel(t){this._msLbx.selectAllLabel=asString(t)}get checkedMemberPath(){return this._msLbx.checkedMemberPath}set checkedMemberPath(t){this._msLbx.checkedMemberPath=asString(t)}get maxHeaderItems(){return this._maxHdrItems}set maxHeaderItems(t){if(this._maxHdrItems!=t){this._maxHdrItems=asNumber(t);this._updateHeader()}}get headerFormat(){return this._hdrFmt}set headerFormat(t){if(t!=this._hdrFmt){this._hdrFmt=asString(t);this._updateHeader()}}get headerFormatter(){return this._hdrFormatter}set headerFormatter(t){if(t!=this._hdrFormatter){this._hdrFormatter=asFunction(t);this._updateHeader()}}get checkedItems(){return this._msLbx.checkedItems}set checkedItems(t){this._msLbx.checkedItems=null==t?[]:asArray(t);this._updateHeader()}onCheckedItemsChanged(t){this.checkedItemsChanged.raise(this,t)}dispose(){this._lbx.dispose();super.dispose()}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);setTimeout(()=>{if(this.isDroppedDown&&this.containsFocus())if(this.showFilterInput&&!this.isTouching)this._msLbx._filter.focus();else{const t=this.listBox;if(t.selectedIndex<0){let e=0,s=t.checkedItems;s.length&&(e=t.collectionView.items.indexOf(s[0]));t.selectedIndex=Math.max(0,e)}t.showSelection(!0);t.focus()}})}onLostFocus(){this._msLbx.onLostFocus();this.isDroppedDown=!1;super.onLostFocus()}_createDropDown(){const t=createElement("<div></div>",this._dropDown);this._msLbx=new MultiSelectListBox(t);this._lbx=this._msLbx.listBox;const e=this.hostElement;this._lbx.hostElement.id=getUniqueId(e.id+"_listbox");this._lbx.itemsChanged.addHandler(()=>{this.isDroppedDown&&this.refresh()});super._createDropDown()}_updateBtnAria(){const t=this._btn.querySelector("button"),e=this.isDroppedDown,s=this._lbx?this._lbx.hostElement:null,i=s?s.id:null;setAttribute(t,"aria-expanded",e);setAttribute(t,"aria-controls",e?i:null)}_updateTbxAria(){const t=this._tbx,e=this.isDroppedDown,s=this._lbx?this._lbx.hostElement:null,i=s?s.id:null;setAttribute(t,"aria-expanded",e);setAttribute(t,"aria-controls",e?i:null)}get isReadOnly(){return this._readOnly}set isReadOnly(t){this._readOnly=asBoolean(t);toggleClass(this.hostElement,ControlStateClsNames.readOnly,this.isReadOnly)}refresh(t=!0){super.refresh(t);this.hostElement&&this._updateHeader()}_setText(t,e){}_keydown(t){const e=t.altKey&&(38===t.keyCode||40===t.keyCode);if(this.isDroppedDown&&e&&this.showFilterInput){this.isDroppedDown=!1;t.preventDefault()}else{super._keydown(t);hasClass(this._tbx,"wj-grid-ime")||!t.defaultPrevented&&hasItems(this.collectionView)&&t.keyCode>32&&123!==t.keyCode&&(this.isDroppedDown=!0)}}_hasItems(){const t=this.collectionView,e=t?t.sourceCollection:null;return hasItems(t)||e&&e.length&&this.showFilterInput}_updateHeader(t=!0,e=!0){let s="";if(isFunction(this._hdrFormatter))s=this._hdrFormatter(this);else{let t=this.checkedItems,e=[];if(this.displayMemberPath){const s=new Binding(this.displayMemberPath);e=t.reduce((t,e)=>{(e.binding?t.find(t=>t.binding===e.binding):t.find(t=>s.getValue(t)===s.getValue(e)))||t.push(e);return t},[]);t=e}if(t.length>0)if(t.length<=this._maxHdrItems){if(this.headerPath){const e=new Binding(this.headerPath);t=t.map(t=>e.getValue(t))}else if(this.displayMemberPath){const e=new Binding(this.displayMemberPath);t=t.map(t=>e.getValue(t))}this.isContentHtml&&(t=t.map(t=>toPlainText(t)));this.trimText&&(t=t.map(t=>t?t.toString().trim():""));s=t.join(", ")}else s=format(this.headerFormat||culture.MultiSelect.itemsSelected,{count:t.length})}const i=this.inputElement;if(s!=i.value){i.value=s;this.onTextChanged()}t&&this._lbx._updateCheckedList(this.checkedItems);this._updateState()}getAriaLabelForScreenReader(){return culture.MultiSelect.ariaLabels.multiSelect}}MultiSelect._DEF_CHECKED_PATH="$checked";MultiSelect._ctrlTemplate="";_addCultureInfo("Menu",{ariaLabels:{menuButton:"Menu"}});export class Menu extends ComboBox{constructor(t,e){super(t);this._closing=!1;this._cmd=null;this._cmdPath=null;this._cmdParamPath=null;this._subPath=null;this._owner=null;this._isButton=!1;this._keepOpen=!1;this._openOnHover=!1;this._closeOnLeave=!0;this._subMenu=null;this._hoverEnterBnd=this._hoverEnter.bind(this);this._hoverLeaveBnd=this._hoverLeave.bind(this);this._hoverOverBnd=this._hoverOver.bind(this);this._ariaLabel=culture.Menu.ariaLabels.menuButton;this._aFEnabledItem=!1;this._parentMenu=null;this.itemClicked=new Event;Menu._MenuInstanceCount++;const s=this.hostElement,i=this._tbx,n=this._lbx,a=this.dropDown;addClass(s,MenuClsNames.hostElement);i.style.display="none";const l=`<div wj-part="header" class="${InputFormElementsClsNames.formControl}"/>`;this._hdr=this._elRef=createElement(l);i.parentElement.insertBefore(this._hdr,i);removeChild(i);this.isRequired=!1;if("SELECT"==this._orgTag){this.header=s.getAttribute("header");this._lbx.itemsSource&&(this.commandParameterPath="cmdParam")}this.isContentHtml=!0;this.maxDropDownHeight=500;this.addEventListener(this._hdr,"click",t=>{if(!t.defaultPrevented){this._clearHover(t);if(this._isButton){this.isDroppedDown=!1;this._raiseCommand()}else this.isDroppedDown=!this.isDroppedDown}});this.addEventListener(this._hdr,"mousedown",t=>{t.defaultPrevented||this._clearHover(t)});n.lostFocus.addHandler(()=>{this.containsFocus()||(this.isDroppedDown=!1)});addClass(a,MenuClsNames.menuItems);n.formatItem.addHandler(this._formatMenuItem.bind(this));this.initialize(e);setAttribute(a,"role","menu");this._updateBtnAria();this._updateHdrAria();n.tabOrder=0;this._updateLbxAria()}static get controlTemplate(){Menu._ctrlTemplate||(Menu._ctrlTemplate=ComboBox.controlTemplate);return Menu._ctrlTemplate}static set controlTemplate(t){Menu._ctrlTemplate=t}_updateBtnAria(){const t=this._btn.querySelector("button"),e=this.dropDown;setAttribute(t,"aria-expanded",this.isDroppedDown);setAttribute(t,"aria-haspopup","menu");setAttribute(t,"aria-owns",e.id);setAttribute(t,"aria-controls",e.id)}_updateHdrAria(){const t=this.dropDown,e=this.isDisabled?-1:this._orgTabIndex;setAttribute(this._hdr,"role","button");setAttribute(this._hdr,"tabindex",e);setAttribute(this._hdr,"aria-label",this._ariaLabel);if(this.isButton){setAttribute(this._hdr,"aria-expanded");setAttribute(this._hdr,"aria-haspopup");setAttribute(this._hdr,"aria-owns");setAttribute(this._hdr,"aria-controls")}else{setAttribute(this._hdr,"aria-expanded",this.isDroppedDown);setAttribute(this._hdr,"aria-haspopup","menu");setAttribute(this._hdr,"aria-owns",t.id);setAttribute(this._hdr,"aria-controls",t.id)}}_updateLbxAria(){const t=this._lbx,e=this.isDisabled?-1:t.tabOrder;t.itemRole="menuitem";t.tabOrder=e}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){if(t!=this._ariaLabel){this._ariaLabel=t;setAttribute(this._hdr,"aria-label",this._ariaLabel)}}get autoSelectOnFocus(){return this._aFEnabledItem}set autoSelectOnFocus(t){this._aFEnabledItem=t}get header(){return this._hdr.innerHTML}set header(t){this._hdr.innerHTML=asString(t)}get command(){return this._cmd}set command(t){this._cmd=t}get commandPath(){return this._cmdPath}set commandPath(t){this._cmdPath=asString(t)}get commandParameterPath(){return this._cmdParamPath}set commandParameterPath(t){this._cmdParamPath=asString(t)}get subItemsPath(){return this._subPath}set subItemsPath(t){if(t!=this._subPath){this._subPath=t;this.refresh(!0)}}get openOnHover(){return this._openOnHover}set openOnHover(t){this._openOnHover=asBoolean(t);this._updateHoverEvents()}get closeOnLeave(){return this._closeOnLeave}set closeOnLeave(t){this._closeOnLeave=asBoolean(t);this._updateHoverEvents()}get isButton(){return this._isButton}set isButton(t){this._isButton=asBoolean(t);this._updateHdrAria()}get keepOpen(){return this._keepOpen}set keepOpen(t){this._keepOpen=asBoolean(t)}get owner(){return this._owner}set owner(t){this._owner=asType(t,HTMLElement,!0);this._enableDisableItems()}show(t){if(!this.isDroppedDown){const e=this._lbx._ignoredItemChangedEvents;this._lbx._ignoredItemChangedEvents=!0;this.selectedIndex=-1;this._lbx._ignoredItemChangedEvents=e;if(this.onIsDroppedDownChanging(new CancelEventArgs)){let e=this.dropDown,s=this.owner;!s&&t instanceof MouseEvent&&(s=t.target);s instanceof HTMLElement&&(e[Control._OWNR_KEY]=s);if(t instanceof MouseEvent&&this.openOnHover&&this.closeOnLeave){const e=2;t=new Point(t.pageX-pageXOffset-e,t.pageY-pageYOffset-e)}showPopup(e,t,!1,this.isAnimated);this.onIsDroppedDownChanged()}}}hide(){if(this.isDroppedDown&&this.onIsDroppedDownChanging(new CancelEventArgs)){hidePopup(this.dropDown);this.onIsDroppedDownChanged()}}onItemClicked(t){this.itemClicked.raise(this,t)}refresh(t=!0){super.refresh(t);this.hostElement&&this._enableDisableItems()}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);this._updateBtnAria();this._updateHdrAria();if(this.isDroppedDown){this._closing=!0;const t=this._lbx._ignoredItemChangedEvents;this._lbx._ignoredItemChangedEvents=!0;this._defaultItem=this.selectedItem;this.isRequired=!1;this.selectedIndex=-1;this._enableDisableItems();this._closing=!1;this._lbx._ignoredItemChangedEvents=t;if(this._aFEnabledItem){const t=this.dropDown.children;for(let e=0;e<t.length;e++)if(!t[e].classList.contains(ControlStateClsNames.disabled)){this.selectedIndex=e;t[e].focus();break}}else this.dropDown.focus()}else{this._restoreSelectedItem();const t=this._subMenu;t&&(t.isDroppedDown=!1)}}_restoreSelectedItem(){if(!this.selectedItem){const t=this._lbx._checking;this._lbx._checking=!0;this.selectedItem=this._defaultItem;this._lbx._checking=t}}_updateHoverEvents(){const t=this.hostElement,e=this.dropDown,s=this.addEventListener.bind(this),i=this.removeEventListener.bind(this),n="mouseleave";i(t,"mouseenter",this._hoverEnterBnd);i(t,n,this._hoverLeaveBnd);i(e,"mouseover",this._hoverOverBnd);i(e,n,this._hoverLeaveBnd);if(this._openOnHover){s(t,"mouseenter",this._hoverEnterBnd);s(e,"mouseover",this._hoverOverBnd);if(this._closeOnLeave){s(t,n,this._hoverLeaveBnd);s(e,n,this._hoverLeaveBnd)}}}_getSubItems(t){const e=this.subItemsPath,s=t&&e?t[e]:null;return isArray(s)&&s.length?s:null}_formatMenuItem(t,e){const s=e.item;if(this._getSubItems(e.data)){addClass(s,MenuClsNames.subItems);setAttribute(s,"aria-expanded",!1)}else if("-"==s.innerHTML){s.innerHTML="";addClass(s,UtilitesClsNames.separator);setAttribute(s,"role","separator");setAttribute(s,"tabindex")}}_keydown(t){if(!t.defaultPrevented){const e=this._getKeyCode(t);if(this.isDroppedDown)switch(e){case Key.Tab:this.isDroppedDown=!1;this._parentMenu&&this._parentMenu.focus();this.keyActionTab===TabKeyAction.CloseAndKeepFocus&&t.preventDefault();break;case Key.Enter:case Key.Right:if(this._showSubMenu()){t.preventDefault();return}break;case Key.Left:if(this._closeSubMenuAndFocusOwner()){t.preventDefault();return}break;case Key.Escape:this.isDroppedDown=!1;this.focus();this._focusMenuOwner();if(this._parentMenu){this._parentMenu.focus();this._parentMenu.isDroppedDown=!1}t.preventDefault()}if(e==Key.Enter){if(this._isButton){this._restoreSelectedItem();this._raiseCommand();t.preventDefault();return}if(this.isDroppedDown){if(this.selectedIndex>-1){this._raiseCommand();if(this.keepOpen){t.preventDefault();return}}if(this.keepOpen&&this._closeSubMenuAndFocusOwner()){t.preventDefault();return}}else{this.isDroppedDown=!0;t.preventDefault()}}}super._keydown(t)}_afterOpenDropdownByDownArrow(){}_dropDownClick(t){if(!t.defaultPrevented&&t.target!=this.dropDown){this._clearHover(t);if(this._showSubMenu()){t.preventDefault();return}if(this.selectedIndex>-1){this._raiseCommand();if(this.keepOpen){t.preventDefault();return}}}super._dropDownClick(t)}_closeSubMenuAndFocusOwner(){const t=Control.getControl(this.owner);if(!(t instanceof Menu))return!1;const e=t.dropDown,s=t.selectedIndex,i=s>-1?e.children[s]:e;setAttribute(i,"aria-expanded",!1);setAttribute(i,"aria-owns");i.focus();return!0}_showSubMenu(){const t=this._getSubItems(this.selectedItem);if(!t)return null;const e=this.dropDown.children[this.selectedIndex],s=e.getBoundingClientRect(),i=new Point(s.right,s.top);if(0==s.height)return null;const n=this.rightToLeft||"rtl"==this.dropDown.getAttribute("dir");n&&(i.x=s.left);let a=this._subMenu;a&&(a.isDroppedDown=!1);a=new Menu(document.createElement("div"),{owner:this.hostElement,itemsSource:t,autoSelectOnFocus:this._aFEnabledItem,keepOpen:this.keepOpen,itemClicked:(t,e)=>{this.itemClicked.raise(t,e)},formatItem:(t,e)=>{this.formatItem.raise(t,e)}});a._parentMenu=this._parentMenu||this;if(e){setAttribute(e,"aria-expanded",!0);setAttribute(e,"aria-owns",a.dropDown.id)}const l=this.collectionView,h=a.collectionView;l&&l.filter&&h&&!h.filter&&(h.filter=l.filter);"displayMemberPath,selectedValuePath,isContentHtml,command,commandPath,commandParameterPath,maxDropDownWidth,maxDropDownHeight,dropDownCssClass,isAnimated,subItemsPath,openOnHover,closeOnLeave".split(",").forEach(t=>{a[t]=this[t]});const o=a.dropDown;setAttribute(o,"dir",n?"rtl":null);a.show(i);a._rtlDir=n;o[Control._OWNR_KEY]=this.dropDown;return a}_raiseCommand(t){const e=this.selectedItem,s=this._getSubItems(e),i=this._getCommand(e);if(i&&!s){const t=this._getCommandParm(e);if(!this._canExecuteCommand(i,t))return;this._executeCommand(i,t)}const n=this.headerPath;if(n){let t=new Binding(n).getValue(e);t=null==t?"":t.toString();this.header=this.isContentHtml?t:escapeHtml(t)}this.onItemClicked(t);if(this.containsFocus()){let t=this;for(;t&&t.owner;){const e=Control.getControl(t.owner);if(!(e instanceof Menu))break;t=e}if(this.keepOpen){this._enableDisableItems();this._lbx.focus()}else{t.isDroppedDown=!1;t.focus();this._focusMenuOwner()}}}_focusMenuOwner(){let t=this.owner;!t&&this.dropDown&&(t=this.dropDown[Control._OWNR_KEY]);if(!this.containsFocus()&&t instanceof HTMLElement&&t.offsetHeight)if(isIE){const e=document.documentElement,s=e.scrollLeft,i=e.scrollTop;t.focus();e.scrollLeft=s;e.scrollTop=i}else t.focus()}_getCommand(t){const e=t&&this._cmdPath?t[this._cmdPath]:null;return e||this._cmd}_getCommandParm(t){const e=this._cmdParamPath;return t&&e?t[e]:t}_executeCommand(t,e){t&&!isFunction(t)&&(t=t.executeCommand);isFunction(t)&&t(e)}_canExecuteCommand(t,e){if(t){const s=t.canExecuteCommand;if(isFunction(s))return s(e)}return!0}_enableDisableItems(){if(this.collectionView&&(this._cmd||this._cmdPath)){const t=this.collectionView.items;for(let e=0;e<t.length;e++){const s=t[e],i=this._getCommand(s);if(i){const t=this._lbx.hostElement.children[e],n=this._getCommandParm(s);toggleClass(t,ControlStateClsNames.disabled,!this._canExecuteCommand(i,n))}}}}_clearHover(t){this._toHover&&clearTimeout(this._toHover);this._toHover=null;Menu._evtHover=t}_isTargetDisabled(t){return hasClass(t.target,ControlStateClsNames.disabled)}_hoverEnter(t){this._clearHover(t);this._toHover=setTimeout(()=>{this._toHover=null;this.isDroppedDown=!0},Control._HOVER_DELAY)}_hoverOver(t){this._clearHover(t);this._toHover=setTimeout(()=>{this._toHover=null;const e=this.listBox.indexOf(t.target);if(e>-1&&!hasClass(t.target,ControlStateClsNames.disabled)){this.selectedIndex=e;this._subMenu=this._showSubMenu()}},Control._HOVER_DELAY)}_hoverLeave(t){this._clearHover(t);this.isDroppedDown&&(this._toHover=setTimeout(()=>{const e=(t=Menu._evtHover)?document.elementFromPoint(t.clientX,t.clientY):null,s=closest(e,`.${ListBoxClsNames.hostElement}.${MenuClsNames.menuItems}`),i=this._subMenu;if(!s&&!contains(this.hostElement,e,!0)){this.isDroppedDown=!1;i&&(i.isDroppedDown=!1)}},Control._LEAVE_DELAY))}_setIsDisabled(t){super._setIsDisabled(t);setAttribute(this.hostElement,"tabindex",-1);this._updateHdrAria();this._updateLbxAria()}_setTabOrder(t){super._setTabOrder(t);setAttribute(this.hostElement,"tabindex",-1);this._updateHdrAria();this._updateLbxAria()}_getRtlStates(){const t=this.hostElement;return t&&t.isConnected?super._getRtlStates():null!=this._rtlDir&&this._rtlDir}dispose(){if(this._subMenu){this._subMenu.dispose();this._subMenu=null}Menu._MenuInstanceCount--;0===Menu._MenuInstanceCount&&Menu._evtHover&&(Menu._evtHover=null);const t=this._lbx;if(t){t.lostFocus.removeHandler(()=>{this.containsFocus()||(this.isDroppedDown=!1)});t.formatItem&&t.formatItem.removeHandler(this._formatMenuItem)}if(this._toHover){clearTimeout(this._toHover);this._toHover=null}this._cmd=null;this._owner=null;this._defaultItem=null;this._hoverEnterBnd=null;this._hoverLeaveBnd=null;this._hoverOverBnd=null;super.dispose()}}Menu._MenuInstanceCount=0;Menu._ctrlTemplate="";_addCultureInfo("InputTime",{ariaLabels:{inputTime:"Input Time",inputTimeInput:"InputTime Input"}});export class InputTime extends ComboBox{constructor(t,e){super(t);this._format="t";this._inputElementAriaLabel=culture.InputTime.ariaLabels.inputTimeInput;this.valueChanged=new Event;addClass(this.hostElement,InputTimeClsNames.hostElement);this.isEditable=!0;this._value=DateTime.newDate();this._min=this._max=null;this._msk=new _MaskProvider(this._tbx);isIE9()||(this._tbx.type="tel");if("INPUT"==this._orgTag){const t=this._tbx.getAttribute("value");t&&(this.value=Globalize.parseDate(t,"HH:mm:ss"))}this.step=15;this.autoExpandSelection=!0;this.initialize(e);this._commitText();this._updateInputAriaLabel()}static get controlTemplate(){InputTime._ctrlTemplate||(InputTime._ctrlTemplate=ComboBox.controlTemplate);return InputTime._ctrlTemplate}static set controlTemplate(t){InputTime._ctrlTemplate=t}get inputElement(){return this._tbx}get inputType(){return this._tbx.type}set inputType(t){this._tbx.type=asString(t)}get value(){return this._value}set value(t){(t=asDate(t,!this.isRequired))&&(t=this._clamp(t));this._setText(t?Globalize.format(t,this.format):"",!0,!0);this.selectedItem&&this.selectedItem.value&&(t=DateTime.fromDateTime(t,this.selectedItem.value));if(t!=this._value&&!DateTime.equals(t,this._value)){this._value=t;this.onValueChanged()}}get text(){return this._tbx.value}set text(t){if(t!=this.text&&(this.text||!this.isRequired)){this._setText(t,!0);this._commitText()}!this.text&&this.isRequired&&(this.selectedIndex=this._oldIndexToBeRestoredOnBlur<0?0:this._oldIndexToBeRestoredOnBlur)}get min(){return this._min}set min(t){this._min=asDate(t,!0);this.isDroppedDown=!1;this._updateItems()}get max(){return this._max}set max(t){this._max=asDate(t,!0);this.isDroppedDown=!1;this._updateItems()}get step(){return this._step}set step(t){if(t!=this.step){this._step=asNumber(t,!0);this.isDroppedDown=!1;this._updateItems()}}get format(){return this._format}set format(t){if(t!=this.format){this._format=asString(t);this._tbx.value=Globalize.format(this.value,this.format);hasItems(this.collectionView)&&this._updateItems()}}get mask(){return this._msk.mask}set mask(t){this._msk.mask=asString(t)}onLostFocus(){super.onLostFocus()}onValueChanged(t){this.valueChanged.raise(this,t)}onItemsSourceChanged(t){super.onItemsSourceChanged(t);this._hasCustomItems=null!=this.itemsSource}refresh(t=!0){super.refresh(t);if(this.hostElement){this._msk.refresh();this._tbx.value=Globalize.format(this.value,this.format);this._updateItems()}}onSelectedIndexChanged(t){if(this.selectedIndex>-1&&!this._settingText){const t=this.value?this.value:DateTime.newDate(),e=null!=this.selectedItem.value?this.selectedItem.value:Globalize.parseDate(this.text,this.format,this.value);this.value=DateTime.fromDateTime(t,e)}super.onSelectedIndexChanged(t)}_clamp(t){null!=this._min&&this._getTime(t)<this._getTime(this._min)&&(t=DateTime.fromDateTime(t,this._min));null!=this._max&&this._getTime(t)>this._getTime(this._max)&&(t=DateTime.fromDateTime(t,this._max));return t}_wheel(t){if(this.handleWheel&&!t.defaultPrevented&&!this.isDroppedDown&&this.value&&this._canChangeValue()&&this.containsFocus()&&this.isEditable){let e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=clamp(-t.deltaY,-1,1),a=(this.value,culture.Globalize.calendar.patterns[this.format]);null==a&&(a=this.format);const l=a.match(getSpecialCharsRegex());if(i-s===e.value.length&&isNumber(this.step)&&this.step>0){let t=DateTime.addMinutes(this.value,this.step*-n);t=this._clamp(t);this.value=t;this.selectAll()}else this._updateTimeValue(n,l,a);t.preventDefault()}super._wheel(t)}_updateInputSelection(t){if(this._delKey)super._updateInputSelection(t);else{const e=this._tbx.value;for(;t<e.length&&!e[t].match(/[a-z0-9]/i);)t++;setSelectionRange(this._tbx,t,this._tbx.value.length)}}_updateItems(){if(this._hasCustomItems)return;const t=[],e=new Date,s=new Date(e.getFullYear(),e.getMonth(),e.getDate()),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59),n=this.step;this.min&&s.setHours(this.min.getHours(),this.min.getMinutes(),this.min.getSeconds());this.max&&i.setHours(this.max.getHours(),this.max.getMinutes(),this.max.getSeconds());if(isNumber(n)&&n>=1)for(let e=s;e<=i;e=DateTime.addMinutes(e,n))t.push({value:e,text:Globalize.format(e,this.format)});const a=this.value;this._settingText=!0;this.displayMemberPath="text";this.selectedValuePath="text";this.itemsSource=t;this._hasCustomItems=!1;this._settingText=!1;!a&&this.isRequired||(this.value=a)}_getTime(t){return 3600*t.getHours()+60*t.getMinutes()+t.getSeconds()}_getText(){const t=Globalize.format,e=this._format;return t(this.value,e)}_canChangeValue(){return!this.isReadOnly&&!this.isDisabled}getSeconds(t){return 3600*t.getHours()+60*t.getMinutes()+t.getSeconds()}_keydown(t){if(!(t.defaultPrevented||t.altKey||t.ctrlKey||t.metaKey)){if(this._isHiddenEditor())return;switch(t.keyCode){case Key.Enter:this._commitText(void 0,!0);this.selectAll();break;case Key.Escape:this.text=Globalize.format(this.value,this.format);this.selectAll();break;case Key.Up:case Key.Down:if(!this.isDroppedDown&&this.value&&this._canChangeValue()&&this.isEditable){const e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=t.keyCode==Key.Up?1:-1;let a=culture.Globalize.calendar.patterns[this.format];null==a&&(a=this.format);const l=a.match(getSpecialCharsRegex());if(i-s==e.value.length)super._keydown(t);else{if(!(1==n&&(null===this.max||this.getSeconds(this.value)<this.getSeconds(this.max))||-1==n&&(null===this.min||this.getSeconds(this.value)>this.getSeconds(this.min))))return;this._updateTimeValue(n,l,a)}t.preventDefault()}}}super._keydown(t)}_updateTimeValue(t,e,s){const i=this._tbx,n=i.selectionStart,a=i.value;let l=this.value,h={},o={},r=0,d=0,u=0,c=[],_=[];const p=i.value.match(getSpecialCharsRegex());if(null==e||null==p){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{const n=t.replaceAll('"',""),l=s.substring(r),u=a.substring(d),c=l.indexOf(t),_=u.indexOf(n);let p=l.substring(0,c);h[p]=r;o[p]=d;r=r+c+t.length;d=d+_+n.length;if(i==e.length-1&&-1!=_){p=s.substring(r);h[p]=r;o[p]=d}});c=Object.keys(h);_=Object.values(o)}const m=_.filter(t=>n>=parseInt(t.toString()));m.length>0&&(u=m.length-1);const g=c[u];-1!=g.indexOf("h")||-1!=g.indexOf("H")?l=DateTime.addHours(this.value,t):-1!=g.indexOf("m")?l=DateTime.addMinutes(this.value,t):-1!=g.indexOf("s")?l=DateTime.addSeconds(this.value,t):-1!=g.indexOf("t")&&(l=this.value.getHours()>=12?DateTime.addHours(this.value,-12):DateTime.addHours(this.value,12));l.getDate()!=(new Date).getDate()&&(l=DateTime.fromDateTime(new Date,l));this.value=l;this._reselectText(e,u)}_reselectText(t,e){const s=this._getText(),i=this._tbx;let n=0,a=-1,l=-1;t.forEach((t,i)=>{const h=t.replaceAll('"',""),o=s.substring(n),r=o.indexOf(h),d=o.substring(0,r),u=""==d?o.length:d.length;if(i==e&&-1==a){a=n;l=a+u}n=n+r+h.length});if(-1==a){a=n;l=i.value.length}setSelectionRange(i,a,l)}_commitText(t,e){if(this.text||this.isRequired){const t=this.value?Globalize.format(this.value,this.format):"";if(this.text!=t){const s=this.selectedItem&&this.selectedItem.value?this.selectedItem.value:Globalize.parseDate(this.text,this.format,this.value),i=this._shouldRaiseInvalidInput(e);if(s){!DateTime.sameTime(s,this._clamp(s))?i&&this.onInvalidInput(new CancelEventArgs)&&(this.value=DateTime.fromDateTime(this.value,s)):this.value=DateTime.fromDateTime(this.value,s)}else i&&this.onInvalidInput(new CancelEventArgs)&&(this.text=t)}}else this.value=null}_copy(t,e){if("text"===t){(e||"").toString()!==this.text&&this._setText(e,!0);return!0}return!1}getAriaLabelForScreenReader(){return culture.InputTime.ariaLabels.inputTime}_input(t){this._draggingText&&(""===this.text?this._emptyValueAction=!0:this._emptyValueAction=!1);this._updateDropDownWhenInput();this._setText(""!=this._textIsComposing?this._textIsComposing:this.text,!1);""!=this.text&&(this._emptyValueAction=!1);this._draggingText=!1}}InputTime._ctrlTemplate="";_addCultureInfo("InputDateTime",{ariaLabels:{inputDateTimeInput:"InputDateTime Input",tglDate:"Toggle Calendar",tglTime:"Toggle Time List"}});export class InputDateTime extends InputDate{constructor(t,e){super(t);this._inputAriaLabel=culture.InputDateTime.ariaLabels.inputDateTimeInput;addClass(this.hostElement,InputDateTimeClsNames.hostElement);const s=culture.InputDateTime.ariaLabels;setAriaLabel(this._btn,s.tglDate);setAttribute(this._btn,"aria-haspopup","dialog");setAttribute(this._btn,"aria-expanded",!1);this._updateInputAriaLabel();this.value=new Date;this.format="g";this.isDroppedDownChanged.addHandler(this.inputDateTimeIsDroppedDownChanged,this);this._inputTime=new InputTime(document.createElement("div"),{valueChanged:t=>{const e=this.rangeEnd;this.value=DateTime.fromDateTime(this.value,t.value);this.calendar._rngMode()&&e&&(this.rangeEnd=DateTime.fromDateTime(e,t.value))},isDroppedDownChanged:t=>{t.listBox.containsFocus()&&this.inputElement.focus();this._selectAll();this._updateTbxAria();this.inputDateTimeIsDroppedDownChanged()},keyActionPrintCharacters:0,keyActionTab:0});this._inputTime.dropDown.id=getUniqueId(this.hostElement.id+"_dropdown");const i=this.addEventListener.bind(this);this._btnTm=this.hostElement.querySelector('[wj-part="btn-tm"]');i(this._btnTm,"mousedown",t=>{this._isTouchMoved()||this._btnclick(t)});setAriaLabel(this._btnTm,s.tglTime);setAttribute(this._btnTm,"aria-haspopup","listbox");setAttribute(this._btnTm,"aria-expanded",!1);this._ddDate=this._dropDown;this._ddTime=this._inputTime.dropDown;const n=this._ddTime;i(n,"keydown",this._keydown.bind(this),!0);i(n,"blur",()=>{this._updateFocusState()},!0);i(n,"click",t=>{t.defaultPrevented||t.target!=n&&this.hostElement.focus()},!0);this.initialize(e);this._tbx.value!==this._oldText&&this._commitText()}static get controlTemplate(){InputDateTime._ctrlTemplate||(InputDateTime._ctrlTemplate=`<div class="${ControlClsNames.template}"><div class="${InputClsNames.input}"><div class="${InputClsNames.inputGroup} ${InputClsNames.inputBtnVisible}"><input wj-part="input" type="text" class="${InputFormElementsClsNames.formControl}"/><span class="${InputClsNames.inputGroupBtn}"><button wj-part="btn" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.calendar}></span></button><button wj-part="btn-tm" class="${InputFormElementsClsNames.btn} ${InputFormElementsClsNames.btnDefault}" tabindex="-1"><span class=${GlyphClsNames.clock}></span></button></span></div></div><div wj-part="dropdown" class="${ControlClsNames.content} ${DropDownClsNames.dropDownPanel}"></div></div>`);return InputDateTime._ctrlTemplate}static set controlTemplate(t){InputDateTime._ctrlTemplate=t}get timeMin(){return this._inputTime.min}set timeMin(t){this._inputTime.min=t}get timeMax(){return this._inputTime.max}set timeMax(t){this._inputTime.max=t}get timeFormat(){return this._inputTime.format}set timeFormat(t){this._inputTime.format=t}get timeStep(){return this._inputTime.step}set timeStep(t){this._inputTime.step=t;this._btnTm.style.display=isNumber(t)&&t>0?"":"none"}get inputTime(){return this._inputTime}_fromDateTime(t){return t}_btnclick(t){this._setDropDownByEvent(t);super._btnclick(t)}dispose(){this._setDropdown(this._ddDate);super.dispose();this._inputTime.dispose()}refresh(t=!0){this._inputTime.refresh();super.refresh(t)}_updateBtn(){super._updateBtn();if(this._btnTm){this._btnTm.tabIndex=this._btn.tabIndex;this._btnTm.parentElement.style.display=this._btn.style.display}}_setDropdown(t){if(this._dropDown==t)return!1;this.isDroppedDown&&(this.isDroppedDown=!1);var e=this.dropDownCssClass;this.dropDownCssClass="";this._dropDown=t;this.dropDownCssClass=e;return!0}_updateDropDown(){const t=this._inputTime;if(this._dropDown==t.dropDown){this._commitText();super._updateDropDown();t.isRequired=this.isRequired&&null!=this.value;t.value=this.value;this.isDroppedDown&&t.listBox.showSelection()}else super._updateDropDown()}_mouseWheel(t){if(this.handleWheel&&!t.defaultPrevented&&!this.isDroppedDown&&this.containsFocus()&&null!=this.value&&this._canChangeValue()){let e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=clamp(-t.deltaY,-1,1),a=this.value,l=Globalize.getFullFormat(this.format||Globalize.DefaultDateFormat);null==l&&(l=this.format);const h=l.match(getSpecialCharsRegex());if(i-s===e.value.length&&null!=h||this.selectionMode==DateSelectionMode.Range){a=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,n):DateTime.addDays(this.value,n);this.value=a;const t=this._getText();setSelectionRange(e,0,t.length)}else(1==n&&(null===this.max||this.value<this.max)||-1==n&&(null===this.min||this.value>this.min))&&this._updateDateTimeValue(n,h,l);t.preventDefault()}}_keydown(t){if(!(t.defaultPrevented||t.altKey||t.ctrlKey||t.metaKey)){if(this._isHiddenEditor())return;switch(t.keyCode){case Key.Up:case Key.Down:if(t.keyCode===Key.Up&&this.keyActionUpArrow===KeyAction.OpenDropdown||t.keyCode===Key.Down&&this.keyActionDownArrow===KeyAction.OpenDropdown)break;if(!this.isDroppedDown&&this.value&&this._canChangeValue()){const e=this._tbx,s=e.selectionStart,i=e.selectionEnd,n=(e.value,t.keyCode==Key.Up?1:-1);let a=this.value,l=Globalize.getFullFormat(this.format||Globalize.DefaultDateFormat);if("g"==this.format&&l.includes("г")){const t=/"г." /;l=l.replace(t,"")}null==l&&(l=this.format);const h=l.match(getSpecialCharsRegex());if(i-s===e.value.length&&null!=h||this.selectionMode==DateSelectionMode.Range){a=this.selectionMode==DateSelectionMode.Month?DateTime.addMonths(this.value,n):DateTime.addDays(this.value,n);this.value=a;const t=this._getText();setSelectionRange(e,0,t.length)}else(1==n&&(null===this.max||this.value<this.max)||-1==n&&(null===this.min||this.value>this.min))&&this._updateDateTimeValue(n,h,l);t.preventDefault()}break;case Key.Enter:case Key.Space:{const e=t.target;if(e===this._btn||e===this._btnTm){this._setDropDownByEvent(t);this.isDroppedDown=!0;t.preventDefault()}}}}if(!t.defaultPrevented&&t.altKey&&this.isDroppedDown&&("ArrowUp"===t.key||"ArrowDown"===t.key)){const e=this.dropDown===this._ddDate?this._ddTime:this._ddDate;this._setDropdown(e);this.isDroppedDown=!0;t.preventDefault()}super._keydown(t)}_updateDateTimeValue(t,e,s){const i=this._tbx,n=i.selectionStart,a=i.value;let l=this.value,h={},o={},r=0,d=0,u=0,c=[],_=[];const p=i.value.match(getSpecialCharsRegex());if(null==e||null==p){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{const n=t.replaceAll('"',""),l=s.substring(r);let u=a.substring(d);if(u.startsWith("г.")){u=u.replace("г. ","");d+="г. ".length}const c=l.indexOf(t);let _=u.indexOf(n);if(-1==_){const t=p[i];_=u.indexOf(t)}let m=l.substring(0,c);if(""!=m){h[m]=r;o[m]=d}r=r+c+t.length;d=d+_+n.length;if(i==e.length-1&&-1!==_){m=s.substring(r);h[m]=r;o[m]=d}});c=Object.keys(h);_=Object.values(o)}const m=_.filter(t=>n>=parseInt(t.toString()));m.length>0&&(u=m.length-1);let g=new Date,b=new Date;null!==this.timeMax&&(g=new Date(this.value.getFullYear(),this.value.getMonth(),this.value.getDate(),this.timeMax.getHours(),this.timeMax.getMinutes(),this.timeMax.getSeconds()));null!==this.timeMin&&(b=new Date(this.value.getFullYear(),this.value.getMonth(),this.value.getDate(),this.timeMin.getHours(),this.timeMin.getMinutes(),this.timeMin.getSeconds()));const f=c[u];if(-1!=f.indexOf("d"))l=DateTime.addDays(this.value,t);else if(-1!=f.indexOf("M"))l=DateTime.addMonths(this.value,t);else if(-1!=f.indexOf("y"))l=DateTime.addYears(this.value,t);else if(1==t&&(null===this.timeMax||this.value<g)||-1==t&&(null===this.timeMin||this.value>b)){-1!=f.indexOf("h")||-1!=f.indexOf("H")?l=DateTime.addHours(this.value,t):-1!=f.indexOf("m")?l=DateTime.addMinutes(this.value,t):-1!=f.indexOf("s")?l=DateTime.addSeconds(this.value,t):-1!=f.indexOf("t")&&(l=this.value.getHours()>=12?DateTime.addHours(this.value,-12):DateTime.addHours(this.value,12));(this.timeMax&&l>g||this.timeMin&&l<b)&&(l=this.value)}this.value=l;this._reselectText(e,u)}_commitText(t,e){let s=this._tbx.value,i=Globalize.parseDate(s,this.format,this.value),n=new Date,a=new Date;if(i){null!==this.timeMax&&(n=new Date(i.getFullYear(),i.getMonth(),i.getDate(),this.timeMax.getHours(),this.timeMax.getMinutes(),this.timeMax.getSeconds()));null!==this.timeMin&&(a=new Date(i.getFullYear(),i.getMonth(),i.getDate(),this.timeMin.getHours(),this.timeMin.getMinutes(),this.timeMin.getSeconds()));(this.timeMax&&i>n||this.timeMin&&i<a)&&(this.value=DateTime.fromDateTime(i,this.value));super._commitText(t,e)}else super._commitText(t,e)}_updateTbxAria(){super._updateTbxAria();if(!this._inputTime)return;const t=this._tbx,e=this._inputTime._lbx,s=e.selectedIndex,i=e.hostElement?e.hostElement.children:null,n=s>-1&&s<i.length?i[s].id:null;setAttribute(t,"aria-activedescendant",this.isDroppedDown&&this.dropDown===this._ddTime&&n&&n.length?n:null);setAttribute(t,"aria-haspopup",this.inputTime.isDroppedDown?"listbox":"dialog")}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){const e=asEnum(t,TabKeyAction);this._keyActionTab=e;this.inputTime.keyActionTab=e}_setDropDownByEvent(t){const e=closest(t.target,"button")==this._btn?this._ddDate:this._ddTime;this._setDropdown(e)}_updateBtnAria(){const t=this._btn,e=this.isDroppedDown,s=this.dropDown?this.dropDown.id:null,i=this._btnTm,n=e&&this.dropDown===this._ddDate,a=e&&this.dropDown===this._ddTime;setAttribute(t,"aria-expanded",!!n);setAttribute(t,"aria-controls",n?s:null);setAttribute(i,"aria-expanded",!!a);setAttribute(i,"aria-controls",a?s:null)}inputDateTimeIsDroppedDownChanged(){const t=this.dropDown===this._ddDate?this._btn:this._btnTm;toggleClass(t,InputDateTimeClsNames.showDropDownButton,this.isDroppedDown)}}InputDateTime._ctrlTemplate="";_addCultureInfo("AutoComplete",{ariaLabels:{autoCompleteInput:"AutoComplete Input",autoComplete:"Auto Complete"}});export class AutoComplete extends ComboBox{constructor(t,e){super(t);this._cssMatch=ComboBoxClsNames.stateMatch;this._minLength=2;this._maxItems=6;this._itemCount=0;this._beginsWith=!1;this._delay=Control._SEARCH_DELAY;this._selItems=null;this._query="";this._inCallback=!1;this._srchProps=[];this._oldSelectedIndex=-1;this._inputElementAriaLabel=culture.AutoComplete.ariaLabels.autoCompleteInput;this._isBlurInput=!1;addClass(this.hostElement,AutoCompleteClsNames.hostElement);this._bsCollapse=!1;this.isEditable=!0;this.isRequired=!1;this.listBox.formatItem.addHandler(this._formatListItem,this);this._itemsSourceFnCallbackBnd=this._itemSourceFunctionCallback.bind(this);this.initialize(e);this._updateInputAriaLabel()}static get controlTemplate(){AutoComplete._ctrlTemplate||(AutoComplete._ctrlTemplate=ComboBox.controlTemplate);return AutoComplete._ctrlTemplate}static set controlTemplate(t){AutoComplete._ctrlTemplate=t}get minLength(){return this._minLength}set minLength(t){this._minLength=asNumber(t,!1,!0)}get beginsWithSearch(){return this._beginsWith}set beginsWithSearch(t){this._beginsWith=asBoolean(t)}get maxItems(){return this._maxItems}set maxItems(t){this._maxItems=asNumber(t,!1,!0)}get delay(){return this._delay}set delay(t){this._delay=asNumber(t,!1,!0)}get searchMemberPath(){return this._srchProp}set searchMemberPath(t){this._srchProp=asString(t);this._srchProps=t?t.trim().split(/\s*,\s*/):[]}get itemsSourceFunction(){return this._itemsSourceFn}set itemsSourceFunction(t){if(this._itemsSourceFn!==t){this._itemsSourceFn=asFunction(t);isFunction(this._itemsSourceFn)&&this.itemsSourceFunction(this.text,this.maxItems,this._itemsSourceFnCallbackBnd)}}get cssMatch(){return this._cssMatch}set cssMatch(t){this._cssMatch=asString(t)}onSelectedIndexChanged(t){this._settingText||super.onSelectedIndexChanged(t)}_updateTbxAria(){super._updateTbxAria();const t=this._tbx;setAttribute(t,"aria-autocomplete","list")}_keydown(t){if(!this._isHiddenEditor()){if(!t.defaultPrevented&&this.isDroppedDown)switch(t.keyCode){case Key.Up:case Key.Down:this.selectAll()}super._keydown(t)}}_input(t){this._handleDragTextState();this._updateComponentText();this._updateEmptyValueFlag();this._resetDragState()}_commitText(t){if(t&&this._composing&&this.isDroppedDown&&!isFirefox()&&!isSafari()&&""==this._textIsComposing){this._isBlurInput=!0;this.isDroppedDown=!1;setTimeout(()=>{this.onLostFocus()},this.delay+1)}t&&!this._composing&&(isFirefox()||isSafari())&&getActiveElement()==this.inputElement&&this.onLostFocus()}_setText(t){if(this._isBlurInput&&0==this.text.length){this._tbx.value=t;this._isBlurInput=!1}this.trimText&&!this.containsFocus()&&"string"==typeof t&&(t=t.trim());if(this._composing&&t!=this._oldText){this._oldText=t;this.onTextChanged()}if(!(this._inCallback||this._settingText||(isFirefox()||isSafari())&&this._composing)){this._toSearch||(this._oldSelectedIndex=this.selectedIndex);if(this.selectedIndex>-1&&this._getDisplayText(void 0,void 0,!0)!=t){this._settingText=!0;this.selectedIndex=-1;this._settingText=!1}this._toSearch&&clearTimeout(this._toSearch);if(t!=this._oldText||t!=this.text){"string"!=typeof t&&(t="");const e=this._tbx,s=this._tbx.selectionStart;e.value!=t&&(e.value=t);this._isWheel&&this.containsFocus()&&this._updateInputSelection(s);this._oldText=t;this.onTextChanged();const i=this.collectionView;if(!t&&i){(this._query||this.selectedIndex<0)&&(this.isDroppedDown=!1);this._query=this._rxHighlight=null;i.filter=null;const t=this.itemsSourceFunction;if(isFunction(t)){this.isDroppedDown=!1;t(this._query,this.maxItems,this._itemsSourceFnCallbackBnd)}if(this.isRequired&&!this.containsFocus()&&!Array.isArray(this._selItems)){const t=this._oldSelectedIndex>-1?this._oldSelectedIndex:0;this.selectedIndex=t}-1==this.selectedIndex&&-1!=this._oldSelectedIndex&&this.onSelectedIndexChanged();return}}if(t!=this._getDisplayText(void 0,void 0,!0)){if(!this.containsFocus()&&this.trimText)if(this.isRequired&&!this.text.trim().length){const t=this._oldSelectedIndex>-1?this._oldSelectedIndex:0;this.selectedIndex=t}else this._tbx.value=this._tbx.value.trim();const e=!this.containsFocus()&&t.length<this.minLength;this.collectionView&&!this.containsFocus()&&(this.collectionView.filter=null);const s=this.indexOf(t,!0),i=this.indexOf(t,!1);if(e)return;if(!this.containsFocus()&&(!t||this.trimText&&!this.text.trim().length||null!=this.collectionView&&s<0&&i<0)&&this.isRequired&&!this.isEditable){const t=this._oldSelectedIndex>-1?this._oldSelectedIndex:hasItems(this.collectionView)?0:-1;t!=this.selectedIndex&&(this.selectedIndex=t)}else if((Array.isArray(this.itemsSource)||"function"==typeof this.itemsSourceFunction)&&!this.containsFocus()&&t&&s<0&&(i<0||i!=s)&&!this.isRequired&&!this.isEditable){this._tbx.value="";this.selectedIndex=-1;this.onSelectedIndexChanged()}else{const e=this._delay>0?setTimeout:(t,e)=>t();this._pendingSearchFn=()=>{this._toSearch=null;let e=this.text;if(!this._composing&&e.trim().length>=this._minLength&&e!=this._query){this._query=e.trim();e=escapeRegExp(e);const t=escapeHtml(e.trim());let s=this.caseSensitiveSearch?"":"i";this._beginsWith||(s+="g");this._rxSrch=this._beginsWith?new RegExp(`^${e}.*`,s):new RegExp(`(?=.*${e.replace(/ /g,")(?=.*")})`,s);this._rxHighlight=this._beginsWith?new RegExp("^"+e,s):new RegExp(`(${t.replace(/\s+/g,"|")})`,s);const i=this.itemsSourceFunction;isFunction(i)?i(this._query,this.maxItems,this._itemsSourceFnCallbackBnd):this._updateItems()}!t.trim().length&&!this.isEditable&&this.indexOf(t,!0)<0&&(this.selectedIndex=-1);-1==this.selectedIndex&&-1!=this._oldSelectedIndex&&this.onSelectedIndexChanged()};this._toSearch=e(this._pendingSearchFn,this._delay)}}else""===this._tbx.value&&t&&(this._tbx.value=t)}}onLostFocus(t){let e=!1;if(this.isRequired&&!this.isEditable&&this.text&&this.text.length>=this.minLength){e=!0;let t=this.indexOf(this.text,!0);t<0&&(t=this.indexOf(this.text,!1));t>-1&&(this._oldSelectedIndex=t);t<0&&(this._oldSelectedIndex=0)}if(this._toSearch){clearTimeout(this._toSearch);this.text!==this._getDisplayText(void 0,void 0,!0)&&this._pendingSearchFn&&this._pendingSearchFn();e=!1}const s=this.collectionView;if(s&&0===s.items.length){this._oldFilter=s.filter;s.filter=null}super.onLostFocus(t,this._oldSelectedIndex,e)}onGotFocus(t){this._toSearch||(this._oldSelectedIndex=this.selectedIndex);super.onGotFocus(t)}reset(){this._oldSelectedIndex=-1}_itemSourceFunctionCallback(t){this._inCallback=!0;const e=asCollectionView(t||[]);e.moveCurrentToPosition(-1);this.itemsSource=e;this._inCallback=!1;if(this.containsFocus()){const t=this._tbx,e=t.selectionStart,s=t.selectionEnd,i=this.collectionView;this.isDroppedDown=null!=i&&i.items.length>0;setSelectionRange(t,e,s);this.refresh()}}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);if(this.containsFocus()&&!this.isTouching){const t=this.collectionView;if(this.selectedIndex<0&&t){const e=t.items,s=this.text;1==e.length&&e[0]==s?this.selectedIndex=0:setSelectionRange(this._tbx,s.length)}}this._query=""}_updateItems(){const t=this.collectionView;if(t){this._inCallback=!0;t.beginUpdate();this._itemCount=0;t.filter=this._filter.bind(this);t.moveCurrentToPosition(-1);t.endUpdate();this._inCallback=!1;let e=t.items.length,s=this._tbx,i=s.selectionStart,n=s.selectionEnd;this.text.trim()||(e=0);this.isDroppedDown=e>0&&this.containsFocus();e||this.isEditable||(this.selectedIndex=-1);if(1==e&&this.selectedIndex<0){let e=this._getItemText(t.items[0],!1),i=s.value;if(!this.caseSensitiveSearch){e=e.toLowerCase();i=i.toLowerCase()}(e==i||this.trimText&&e.trim()==i)&&(this.selectedIndex=0)}this.isDroppedDown&&setSelectionRange(s,i,n);this.refresh()}}_filter(t){if(this._itemCount>=this._maxItems&&this._query)return!1;let e=[this._getItemText(t,!1)];this._srchProps&&this._srchProps.forEach(s=>{const i=t[s];null!=i&&e.push(i)});this.isContentHtml&&(e=e.map(t=>t.replace(/(<[^>]*>|&[^;]*;)/g,"")));for(let t=0;t<e.length;t++)if(this._rxSrch.test(e[t])){this._itemCount++;return!0}return!1}_getItemText(t,e){let s=t?t.toString():"",i=e&&this.headerPath?this._pathHdr:this._lbx._pathDisplay;if(i){s=i.getValue(t);s=null!=s?s.toString():""}return s}_formatListItem(t,e){this._cssMatch&&this._rxHighlight&&this._query&&(e.item.innerHTML=e.item.innerHTML.replace(this._rxHighlight,(t,e,s,i)=>this._enclosed(i,s,"<",">")||this._enclosed(i,s,"&",";")?t:`<spanclass="${this._cssMatch}">${t}</span>`))}_enclosed(t,e,s,i){for(let n=e;n>=0&&t[n]!=i;n--)if(t[n]==s)for(let n=e;n<t.length&&t[n]!=s;n++)if(t[n]==i)return!0;return!1}_wheel(t){super._wheel(t)}getAriaLabelForScreenReader(){return culture.AutoComplete.ariaLabels.autoComplete}_hasCustomFormatItem(){return this.formatItem.getHandler.length>1}}AutoComplete._ctrlTemplate="";_addCultureInfo("MultiAutoComplete",{ariaLabels:{multiAutoCompleteInput:"MultiAutoComplete Input",multiAutoComplete:"MultiAutoComplete",multiAutoCompleteHelperInput:"MultiAutoComplete Helper Input",remove:"Remove"}});export class MultiAutoComplete extends AutoComplete{constructor(t,e){super(t);this._maxSelItems=null;this._lastInputValue="";this._selPath=new Binding(null);this._notAddItm=!1;this._inputElementAriaLabel=culture.MultiAutoComplete.ariaLabels.multiAutoCompleteInput;this._helperInputElementAriaLabel=culture.MultiAutoComplete.ariaLabels.multiAutoCompleteHelperInput;this._ariaLabelledby=null;this.selectedItemsChanged=new Event;addClass(this.hostElement,MultiAutoCompleteClsNames.hostElement);this._wjTpl=this.hostElement.querySelector("."+ControlClsNames.template);this._wjInput=this.hostElement.querySelector("."+InputClsNames.input);this.showDropDownButton=!1;this._selItems=[];this.initialize(e);this.addEventListener(this.hostElement,"keyup",this._keyup.bind(this),!0);this.addEventListener(window,"resize",this._adjustInputWidth.bind(this));this.addEventListener(this._tbx,"focus",()=>{this._itemOff()});this._addHelperInput();this._addScreenReaderHelper();this._initSeltems();this.listBox.itemsChanged.addHandler(()=>{if(-1===this.selectedIndex)return;const t=this.collectionView;(t&&("CollectionView"==t.constructor.name||"ODataVirtualCollectionView"==t.constructor.name)||t.virtualization)&&(this.selectedIndex=-1)});this._refreshHeader();this._updateTabIndex();this._updateInputAriaLabel()}static get controlTemplate(){MultiAutoComplete._ctrlTemplate||(MultiAutoComplete._ctrlTemplate=AutoComplete.controlTemplate);return MultiAutoComplete._ctrlTemplate}static set controlTemplate(t){MultiAutoComplete._ctrlTemplate=t}set showDropDownButton(t){this._showBtn=!1}get maxSelectedItems(){return this._maxSelItems}set maxSelectedItems(t){if(this._maxSelItems!=t){this._maxSelItems=asNumber(t,!0);this._updateMaxItems();this._refreshHeader();this._clearSelIndex()}}get selectedMemberPath(){return this._selPath.path}set selectedMemberPath(t){if((t=asString(t))!==this.selectedMemberPath){this._selPath.path=t;this._initSeltems();this._refreshHeader();this.onSelectedItemsChanged()}}get selectedItems(){return this._selItems}set selectedItems(t){t=Array.from(new Set(t));let e=this._selItems===t;e||null==this._selItems||null==t||this._selItems.length!==t.length||(e=this._selItems.every((e,s)=>e===t[s]));this._selItems=asArray(t);if(!e){if(this.selectedMemberPath&&""!==this.selectedMemberPath&&this._selItems)for(let t=0;t<this._selItems.length;t++){const e=this._selItems[t];this._setSelItem(e,!1)}this._updateMaxItems();this.onSelectedItemsChanged();this._refreshHeader();this._clearSelIndex()}}get ariaLabelledBy(){return this._ariaLabelledby}set ariaLabelledBy(t){_setAriaLabelBy(this,this._tbx,t,this._updateInputAndListBoxAriaLabel.bind(this))}onSelectedItemsChanged(t){this.selectedItemsChanged.raise(this,t)}onIsDroppedDownChanged(t){!this.isDroppedDown&&this.selectedIndex>-1&&!this._notAddItm&&this._addItem(!0);this._notAddItm=!1;super.onIsDroppedDownChanged(t)}refresh(t=!0){super.refresh(t);if(this.hostElement){this._initSeltems();this.isDroppedDown||this._refreshHeader()}}_keydown(t){if(!this.isReadOnly){if(!t.defaultPrevented)switch(t.keyCode){case Key.Back:this._lastInputValue=this._tbx.value;break;case Key.Enter:this._itemOff();this._addItem(!0);isIE()&&setSelectionRange(this._tbx,this._tbx.textContent.length,this._tbx.textContent.length);break;case Key.Tab:if(this.isDroppedDown){this._addItem(!1);this._tbx.value="";this._lbx.selectedIndex=-1;this.isDroppedDown=!1;this.containsFocus()||this.focus();t.preventDefault()}else this._updateFocus();break;case Key.Space:if(""!==this._tbx.value)return;if(!this.isDroppedDown&&!this._tbx.disabled){this.isDroppedDown=!0;this._clearSelIndex()}break;case Key.Escape:this.isDroppedDown&&(this._notAddItm=!0);break;case Key.Left:this._itemOn(!this.rightToLeft);break;case Key.Right:this._itemOn(!!this.rightToLeft);break;case Key.Up:case Key.Down:const e=getActiveElement();if(t.altKey){if(this._tbx==e){this.isDroppedDown=!this.isDroppedDown;this.isDroppedDown||this._tbx.focus();t.preventDefault();return}}else if(this._tbx!==e)return;default:if(t.keyCode===Key.Back||t.keyCode===Key.Delete)return;this._itemOff();null!=this._maxSelItems&&this._selItems.length>=this._maxSelItems&&t.preventDefault()}this._tbx.disabled||super._keydown(t)}}_updateState(){super._updateState();this._wjTpl&&(hasClass(this.hostElement,ControlStateClsNames.focused)||this._itemOff())}_keyup(t){if(!this.isReadOnly&&!t.defaultPrevented)switch(t.keyCode){case Key.Back:0===this._tbx.value.length&&0===this._lastInputValue.length&&this._delItem(!1);break;case Key.Delete:this._delItem(!0)}}_addHelperInput(){const t=document.createElement("input");t.type="text";t.tabIndex=-1;t.className=MultiAutoCompleteClsNames.tokenHelper;t.readOnly=!0;setAttribute(t,"aria-label",this._helperInputElementAriaLabel);setAttribute(t,"role","textbox");this._wjTpl.insertBefore(t,this._wjInput);this._helperInput=t}_addScreenReaderHelper(){const t=document.createElement("div");t.tabIndex=-1;t.className=MultiAutoCompleteClsNames.screenReaderOnly;setAttribute(t,"aria-live","polite");this._wjTpl.insertBefore(t,this._wjInput);this._screenReaderHelper=t}_refreshHeader(){const t=this.hostElement.querySelectorAll("."+MultiAutoCompleteClsNames.token);for(let e=0;e<t.length;e++)this._wjTpl.removeChild(t[e]);const e=this.selectedItems;if(e&&0!==e.length){for(let t=0;t<e.length;t++)this._insertToken(e[t]);this._wjInput.style.cssFloat=this.rightToLeft?"right":"left";this._adjustInputWidth()}else{this._wjInput.style.cssFloat=this.rightToLeft?"right":"left";this._adjustInputWidth()}}_insertToken(t){let e=this._getItemText(t,!0);this.isContentHtml||(e=escapeHtml(e));this._wjTpl.insertBefore(this._createItem(e),this._wjInput)}_updateMaxItems(){null!=this._maxSelItems&&this._selItems&&this._selItems.length>this._maxSelItems&&(this._selItems=this._selItems.slice(0,this._maxSelItems))}_updateFocus(){const t=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive);if(t){removeClass(t,MultiAutoComplete._clsActive);setTimeout(()=>{this._tbx.focus()})}else this._clearSelIndex()}_addItem(t){if(this.selectedItems.indexOf(this.selectedItem)>-1)this._clearSelIndex();else if(this.selectedIndex>-1){this._updateSelItems(this.selectedItem,!0);this._refreshHeader();t&&this._clearSelIndex();this._disableInput(!0)}}_delItem(t){const e=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive);let s,i,n=!1;if(t&&!e)return;if(e){i=this._getItemIndex(e);if(i>-1){s=this._selItems[i];n=!0}}else if(this._selItems.length>0){s=this._selItems[this._selItems.length-1];n=!0}const a=this._getItemText(s,!0),l=culture.MultiAutoComplete.ariaLabels.remove;this._screenReaderHelper.textContent=`${l} ${a}`;if(n){this._updateSelItems(s,!1);this._refreshHeader();this._clearSelIndex();this._disableInput(!1)}this._tbx.focus()}_updateSelItems(t,e){if(e){this._selItems&&0!==this._selItems.length||(this._selItems=[]);if(null!=this._maxSelItems&&this._selItems.length>=this._maxSelItems)return;this._selItems.push(t)}else{const e=this._selItems.indexOf(t);this._selItems.splice(e,1)}this._hasSelectedMemeberPath()&&this._setSelItem(t,e);this.onSelectedItemsChanged()}_createItem(t){const e=document.createElement("div"),s=document.createElement("span"),i=document.createElement("span");e.appendChild(s);e.appendChild(i);e.id=getSafeUniqueId(t);setAttribute(e,"aria-label",t);setAttribute(e,"role","button");e.className=MultiAutoCompleteClsNames.token;s.className=MultiAutoCompleteClsNames.tokenLabel;s.innerHTML=t;i.className=MultiAutoCompleteClsNames.tokenClose;i.tabIndex=-1;i.innerHTML="×";e.style.cssFloat=this.rightToLeft?"right":"left";this.addEventListener(e,"click",t=>{this._helperInput.focus();setAttribute(this._helperInput,"aria-activedescendant",e.id);const s=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive);s&&removeClass(s,MultiAutoComplete._clsActive);addClass(e,MultiAutoComplete._clsActive);t.stopPropagation();t.preventDefault()});this.addEventListener(i,"click",t=>{if(this.isReadOnly)return;const s=this._getItemIndex(e);if(s>-1){const t=this._selItems[s];this._updateSelItems(t,!1)}this._wjTpl.removeChild(e);this._adjustInputWidth();this._disableInput(!1);this._tbx.focus();t.stopPropagation()});return e}_itemOn(t){const e=getActiveElement();let s,i,n;if(this._tbx!=e||0===this._tbx.value.length){s=this._wjTpl.querySelectorAll("."+MultiAutoCompleteClsNames.token);if(0!==s.length){i=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive);n=this._getItemIndex(i);if(t){if(0===n)return;if(-1===n){addClass(s[s.length-1],MultiAutoComplete._clsActive);this._helperInput.focus();setAttribute(this._helperInput,"aria-activedescendant",s[s.length-1].id)}else{removeClass(i,MultiAutoComplete._clsActive);addClass(s[n-1],MultiAutoComplete._clsActive);this._helperInput.focus();setAttribute(this._helperInput,"aria-activedescendant",s[n-1].id)}}else if(!t){if(-1===n)return;if(n!==s.length-1){removeClass(i,MultiAutoComplete._clsActive);addClass(s[n+1],MultiAutoComplete._clsActive);this._helperInput.focus();setAttribute(this._helperInput,"aria-activedescendant",s[n+1].id)}else{removeClass(i,MultiAutoComplete._clsActive);this._tbx.focus();setAttribute(this._helperInput,"aria-activedescendant")}}}}}_itemOff(){const t=this._wjTpl.querySelector("."+MultiAutoComplete._clsActive);t&&removeClass(t,MultiAutoComplete._clsActive)}_initSeltems(){if(this.selectedMemberPath){this._selItems.splice(0,this._selItems.length);const t=this.collectionView;if(t)for(let e=0;e<t.sourceCollection.length;e++)this._getSelItem(e)&&this._selItems.push(t.sourceCollection[e])}}_getSelItem(t){const e=this.collectionView,s=e?e.sourceCollection[t]:null;return!(!isObject(s)||!this.selectedMemberPath)&&this._selPath.getValue(s)}_setSelItem(t,e){this.itemsSource;isObject(t)&&this._selPath.getValue(t)!=e&&this._selPath.setValue(t,e)}_clearSelIndex(){this.selectedIndex=-1}_hasSelectedMemeberPath(){return this.selectedMemberPath&&""!==this.selectedMemberPath}_disableInput(t){if(null!=this._maxSelItems)if(this._selItems.length<this._maxSelItems){this._tbx.disabled=!1;this._tbx.focus()}else{this._tbx.disabled=!0;this.hostElement.focus()}}_adjustInputWidth(){this._tbx.style.width="60px";let t,e=getElementRect(this.hostElement),s=getElementRect(this._tbx),i=getComputedStyle(this._tbx),n=parseInt(i.paddingLeft,10),a=parseInt(i.paddingRight,10);t=this.rightToLeft?s.left+s.width-e.left-n-a-8:e.left+e.width-s.left-n-a-8;this._tbx.style.width=t+"px";this._tbx.placeholder?this._tbx.style.minWidth="max-content":this._tbx.style.minWidth=""}_getItemIndex(t){const e=this.hostElement.querySelectorAll("."+MultiAutoCompleteClsNames.token);for(let s=0;s<e.length;s++)if(t===e[s])return s;return-1}_setIsDisabled(t){super._setIsDisabled(t);this._updateTabIndex()}_setTabOrder(t){this._orgTabIndex=t;this._updateTabIndex()}_updateTabIndex(){const t=this.hostElement;this._tbx.tabIndex=this.isDisabled?-1:this._orgTabIndex;t.tabIndex=-1}}MultiAutoComplete._clsActive=MultiAutoCompleteClsNames.tokenActive;MultiAutoComplete._ctrlTemplate="";_registerModule("wijmo.input",selfModule);