@mescius/wijmo.input 5.20251.38-rc → 5.20251.40-rc
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-commonjs.js +2 -2
- package/es2015-esm.js +2 -2
- package/es5-esm.js +2 -2
- package/index.d.ts +2 -1
- package/index.js +2 -2
- package/package.json +2 -2
package/es2015-esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
*
|
|
3
|
-
* Wijmo Library 5.20251.
|
|
3
|
+
* Wijmo Library 5.20251.40
|
|
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{_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,tryCast,createElement,hasItems,isObject,isString,asArray,asFunction,asNumber,asType,asCollectionView,closest,escapeHtml,toPlainText,setCss,Binding,Rect,DateTime,assert,isFirefox,_CLS_STATE_DISABLED,UtilitesClsNames,_setAriaLabelBy,getUniqueId,isNumber,enable,isFunction,escapeRegExp,isSafari,setText,isDate,isBoolean,asDate,asInt,Globalize,_ClickRepeater,CollectionView,format,uidGenerator,moveFocus,_isMacOS,clamp,Color,_MaskProvider,getSpecialCharsRegex,isEmpty,isNullOrUndefined,isEdge,setChecked,Point,isArray,getElementRect,PopupPosition,getElement,isUndefined,_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"};export const InputDateRangeClsNames={hostElement:"wj-inputdaterange"};export const InputDateTimeClsNames={hostElement:"wj-inputdatetime"};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"};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));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" inputmode="numeric" 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 o=t.indexOf(n),r=this._format||(o>-1?"n2":"n0"),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);l&&d>=0&&!a&&(c=this._chrNeg+c);h&&o>-1&&"g"==this._fmtSpc&&0!=this._fmtPrc&&(c=t).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()}_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:if(this.clamp(-1)>=0)this.value<0&&this._flipSign();else if(this.value&&e.selectionStart==e.selectionEnd)this._flipSign();else if(this.clamp(-1)<0){e.value=this._chrNeg;setSelectionRange(e,1)}t.preventDefault();break;case"+":case this._chrPls:this.value<0&&this._flipSign();t.preventDefault();break;case".":case this._chrDec:if(0==this._fmtPrc)t.preventDefault();else{let s=e.value.indexOf(this._chrDec);if(s>-1){e.selectionStart<=s&&s++;setSelectionRange(e,s);t.preventDefault()}}}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()}}}}_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){1==l.length?setSelectionRange(t,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)}})}_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;!t||t.id||this._ariaLabelledby?setAttribute(t,"aria-label",null):setAttribute(t,"aria-label",this._inputElementAriaLabel)}getAriaLabelForScreenReader(){return culture.InputNumber.ariaLabels.inputNumber}}InputNumber._ctrlTemplate="";_addCultureInfo("InputMask",{ariaLabels:{inputMask:"Input Mask"}});export class InputMask extends Control{constructor(t,e){super(t);this._fullEdit=!1;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()})}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)}getAriaLabelForScreenReader(){return culture.InputMask.ariaLabels.inputMask}}InputMask._ctrlTemplate="";export class ColorPicker extends Control{constructor(t,e){super(t);this._hsb=[.5,1,1];this._alpha=1;this.valueChanged=new Event;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);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=>{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())}});this.value="#ffffff";this.initialize(e);this._updatePanels()}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"}get value(){return this._value}set value(t){if(t!=this.value){t=(t=asString(t)).trim();let e=Color.fromString(t);if(e){this._value=t;this._eText.innerText=t;let s=e.getHsb();if(this._hsb[0]!=s[0]||this._hsb[1]!=s[1]||this._hsb[2]!=s[2]||this._alpha!=e.a){if(0==s[2]){s[0]=this._hsb[0];s[1]=this._hsb[1]}else 0==s[1]&&(s[0]=this._hsb[0]);this._hsb=s;this._alpha=e.a;this._updatePanels();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()}}onValueChanged(t){this._updatePanels();this.valueChanged.raise(this,t)}_mouseDown(t){this._htDown=this._getTargetPanel(t);if(this._htDown){t.preventDefault();this.focus();this._mouseMove(t)}}_mouseMove(t){var e=t.touches?t.touches[0]:t,s=this._htDown;if(s){let t=s.getBoundingClientRect(),i=this._hsb;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&&(this._alpha=clamp((e.clientX-t.left)/t.width,0,1));this._updateColor()}}_mouseUp(t){this._htDown=null}_updateColor(){let t=Color.fromHsb(this._hsb[0],this._hsb[1],this._hsb[2],this._alpha);this.value=t.toString();this._updatePanels()}_updatePalette(){let t=new Color("#fff"),e=new Color("#000");this._ePal.innerHTML="";for(let s=0;s<this._palette.length;s++){let i=createElement('<div style="float:left;width:10%;box-sizing:border-box;padding:1px">'),n=new Color(this._palette[s]),l=n.getHsb();i.appendChild(this._makePalEntry(n,4));for(let s=0;s<5;s++){if(0==l[1]){let i=.1*s+(l[2]>.5?.05:.55);n=Color.interpolate(t,e,i)}else n=Color.fromHsb(l[0],.1+.2*s,1-.1*s);i.appendChild(this._makePalEntry(n,0))}this._ePal.appendChild(i)}}_makePalEntry(t,e){let s=document.createElement("div");setCss(s,{cursor:"pointer",backgroundColor:t.toString(),marginBottom:e||""});s.innerHTML=" ";return s}_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)");this._ePreview.style.backgroundColor=this.value;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)+"%"}_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}}ColorPicker._ctrlTemplate="";ColorPicker._tplCursor='<div style="position:absolute;left:50%;top:50%;width:7px;height:7px;transform:translate(-50%,-50%);border:2px solid #f0f0f0;border-radius:50px;box-shadow:0px 0px 4px 2px #0f0f0f"></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){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._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(t=>{t.firstElementChild.disabled?t.firstElementChild.setAttribute("tabindex","-1"):t.firstElementChild.setAttribute("tabindex",this._orgTabIndex.toString())});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._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(e=>{if(t){e.firstElementChild.setAttribute("disabled","");e.firstElementChild.setAttribute("tabindex","-1")}else{e.firstElementChild.removeAttribute("disabled");e.firstElementChild.setAttribute("tabindex",this._orgTabIndex.toString())}toggleClass(e,ControlStateClsNames.disabled,t)});this._txtCurr.tabIndex=t?-1:this._orgTabIndex;toggleClass(this._txtCurr,ControlStateClsNames.disabled,t)}}}}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.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&&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);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,o=0;h.innerHTML=a.join("");for(let t=0;t<h.children.length;t++){let 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,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 o=document.createDocumentFragment(),r=this.containsFocus();this._ePadTop.style.height=l*e+"px";o.appendChild(this._ePadTop);if(this.showGroups&&!hasClass(s[l],ListBoxClsNames.header))for(let t=l;t>=0;t--)if(hasClass(s[t],ListBoxClsNames.header)){o.appendChild(s[t]);break}for(let t=l;t<=l+a&&t<s.length;t++)o.appendChild(s[t]);this._ePadBot.style.height=h*e+"px";o.appendChild(this._ePadBot);t.textContent="";t.appendChild(o);let d=(l+a+h)*e-t.scrollHeight;this._ePadBot.style.height=this._ePadBot.offsetHeight-d+"px";let 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){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)}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=`\n <label class="wj-checklist-item">\n <span class="wj-checklist-base" role="checkbox" aria-hidden="true">\n <span class="wj-checklist-mark" style="display: ${a?"block":"none"}"></span>\n </span>\n <span class="wj-checklist-caption">${n}</span>\n </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 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,a)?'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 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){i.setAttribute("aria-selected",e.toString());toggleClass(i,ControlStateClsNames.checked,e);const t=i.querySelector(".wj-checklist-mark");t&&(t.style.display=e?"block":"none")}}_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()}_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]))}}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"});export class MultiSelectListBox extends Control{constructor(t,e){super(t);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: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}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)}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()&&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));i(this._btnCancel,"click",this.oneCancelButtonClick.bind(this));i(this._btnOK,"click",this.onOkButtonClick.bind(this));this._focusValue=DateTime.newDate();setAttribute(s,"role","application");setAttribute(this.hostElement,"aria-label",this._ariaLabel);let n=culture.Calendar.buttons;setText(this._btnOK,n.ok);setText(this._btnCancel,n.cancel);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 wj-part="confirmation-button-container" class="${CalendarClsNames.confirmationButtonContainer}">`+`<button wj-part="btn-ok" class="${InputFormElementsClsNames.btn} ${CalendarClsNames.button}"></button>`+`<button wj-part="btn-cancel" class="${InputFormElementsClsNames.btn} ${CalendarClsNames.button}"></button>`+"</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._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){this._clearingRangeEnd=!DateTime.equals(this._focusValue,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);this._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);this._rngEnd=t==e.Range?this._value:null;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)$/.test(e)){let s=this[e];isFunction(s)||s instanceof Event||(t[e]=s)}this._cals.push(t);e.appendChild(t.hostElement)}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":"";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.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,o=DateTime.newDate();const r=this._min&&this._min>o,d=this._max&&this._max<o;(r||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==u[0]&&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),o=s.monthLast(t),r=this._tbMth.querySelectorAll("th");this._updateMonthButtonAria();for(let t=0;t<7&&t<r.length;t++){let 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);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<=o;)c=this._addWeek(c);for(let t=0;t<this._wksAfter;t++)c=this._addWeek(c,CalendarClsNames.weekAfter);r=this._tbYr.querySelectorAll("td");let _=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);let n=r[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.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=s[i],l=n[t],a=this.value,h=this.rangeEnd,o=this._selMode&&null!=a&&e.sameDate(l,a),r=this._selMode&&null!=a&&e.sameDate(l,h),d=this._selMode&&null!=a&&l>a&&null!=h&&l<=h;toggleClass(n,ControlStateClsNames.selected,o);toggleClass(n,ControlStateClsNames.multiSelected,d);toggleClass(n,ControlStateClsNames.lastSelected,r);setAttribute(n,"aria-selected",!!o||null);this._customizeCell(i,l,n)}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&&this._updateFocusInAccessibilityMode()}_updateFocusInAccessibilityMode(){let t,e=Calendar._DATE_KEY,s=DateTime,i=this._tbMth.querySelectorAll("td");for(let n=0;n<i.length;n++){let l=i[n],a=l[e],h=this._selMode&&null!=this.focusValue&&s.sameDate(a,this.focusValue)&&this._isSameDay(this.focusValue,a);void 0===t&&!l.classList.contains(CalendarClsNames.dayOtherMonth)&&this._isDayValid(a)&&(t=l);this._isSameDay(this.focusValue,a)&&this._isDayValid(a)&&(t=l);this._updateCellFocus(l,h)}if(0===this._tbMth.querySelectorAll('[tabindex="0"]').length&&this.monthView&&t){setAttribute(t,"tabIndex","0");toggleClass(t,CalendarClsNames.focused,!0);this._focusValue=t[e]}let n=(i=this._tbYr.querySelectorAll("td"))[0];for(let t=0;t<i.length;t++){let s=i[t],l=s[e],a=this._sameMonth(l,this.focusValue);this._isSameMonth(this.value,l)&&(n=s);this._updateCellFocus(s,a)}if(0===this._tbYr.querySelectorAll('td[tabindex="0"]').length&&!this.monthView){setAttribute(n,"tabIndex","0");toggleClass(n,CalendarClsNames.focused,!0);this._focusValue=n[e]}}_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(),o=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,o);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",_confirmationButtonContainer:"confirmation-button-container",_btnOK:"btn-ok",_btnCancel:"btn-cancel"});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.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);e=!0}else if(contains(this._btnNxt,s)){this._navigate(1);e=!0}else if(contains(this._btnTdy,s)){this._navigate(0);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){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(t.ctrlKey||t.metaKey||t.shiftKey&&!this._rngMode())return;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),i=DateTime.fromDateTime;if(this.monthView){if(e&&this._canChangeValue()){let s=i(e,this._value);if(this._inValidRange(s)&&this._valid(s))if(this._rngMode()&&this.value&&!this.rangeEnd&&s>=this.value)this.rangeEnd=s;else{this._enterKeyDownToSetValue.raise(this,t);this.value=s}}}else if(e){this.displayMonth=e;if(this._mthMode()){if(this._canChangeValue()){let t=i(this.displayMonth,this.value);this._inValidRange(t)&&(this.value=t)}}else this.monthView=!0}}"Space"===t.code&&t.preventDefault();return}if(!contains(this._tbMth,t.target)&&(!contains(this._tbYr,t.target)||contains(this._tbYr.firstElementChild,t.target)))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}_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,o=h.hostElement,r=closest(e,`.${CalendarClsNames.header}`),d=this.hostElement,u=closest(d,`.${InputDateClsNames.inputDateDropDown}`)||d;h.itemsSource=l;h.selectedIndex=s-l[0];setAttribute(o,"dir",this.rightToLeft?"rtl":null);setCss(o,{minWidth:"",width:r.offsetWidth});showPopup(o,r,!1,!1,u);requestAnimationFrame(()=>{h.showSelection(!0)});this.addEventListener(window,"touchstart",t=>{if(!contains(o,t.target)){hidePopup(o);this._tmYrHidden=Date.now();this.removeEventListener(window,"touchstart")}});t.preventDefault()}get focusMode(){return this._focusMode}set focusMode(t){this._focusMode=t;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()}_isSameDay(t,e){return!(e.getMonth()!=this.displayMonth.getMonth())&&t.getDate()===e.getDate()}_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}getFocusableElements(){return Array.from(this.hostElement.querySelectorAll("a, button, input, textarea, select, [tabindex]:not([tabindex='-1'])")).filter(t=>!t.hasAttribute("disabled")&&null!==t.offsetParent)}_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.value=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(){if(this.keyActionTab===CalendarTabKeyAction.All&&!0!==this.isDisabled){setAttribute(this._btnMth,"tabindex","0");setAttribute(this._btnPrv,"tabindex","0");setAttribute(this._btnTdy,"tabindex","0");setAttribute(this._btnNxt,"tabindex","0");setAttribute(this._showYearListBoxButton,"tabindex","0")}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")}}_onEnterKeyDownToSetValue(t){this._enterKeyDownToSetValue.raise(this,t)}get showConfirmationButtons(){return this._showConfirmationButtons}set showConfirmationButtons(t){this._showConfirmationButtons=t}_setIsDisabled(t){super._setIsDisabled(t);this._updateButtonTabIndex()}}Calendar._DATE_KEY="$WJ-DATE";Calendar._ctrlTemplate="";_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._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,o=this.addEventListener.bind(this),r=this._updateFocusState.bind(this);o(h,"blur",r,!0);o(h,"focus",r);let d=this._keydown.bind(this);o(a,"keydown",d);o(h,"keydown",d);let u=this._keypress.bind(this);o(a,"keypress",u,!0);o(h,"keypress",u,!0);o(l,"input",this._input.bind(this));o(l,"beforeinput",(function(t){"historyUndo"!==t.inputType&&"historyRedo"!==t.inputType||t.preventDefault()}));o(l,"blur",()=>{this._commitText(!0,!1)},!0);o(l,"click",()=>{this._autoExpand&&this._expandSelection()});o(l,"mousedown",t=>{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._btnclick(t)});removeChild(h);isIE()&&this._elRef==this._tbx&&o(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()&&o(l,"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}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)}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.isReadOnly=!0;this.isDroppedDown=!this.isDroppedDown;this.focus();setTimeout(()=>{this.isReadOnly=!1},0)}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)}}}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;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")}if(e=this._owner=null!=t?getElement(t):null){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()});setTimeout(()=>{this.addEventListener(window,"click",t=>{this._hideTrigger&PopupTrigger.BlurPopup&&this.isDisabled&&!contains(s,t.target,!0)&&this.hide()})});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;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)}}dispose(){this._initialOwner.appendChild(this.hostElement);this._initialOwner=null;this.owner=null;this._bkDrop&&this._bkDrop.remove();super.dispose()}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,o=Popup._SZ_MIN,r=Rect.fromBoundingRect(a);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+l,t);r.height=Math.max(r.height-l,i)}else h&_Edges.Bottom&&(r.height=Math.max(r.height+l,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){let t=this.hostElement.children;for(let e=0;e<t.length;e++)Control.invalidateAll(t[e])}}else if(this._draggable&&(this._dragged||Math.abs(n)+Math.abs(l)>Popup._DRAG_THRESHOLD)){r.left=Math.max(a.left+n+(i.pageX-i.clientX),50-a.width);r.top=Math.max(a.top+l+(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){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)}}Popup._DRAG_THRESHOLD=6;Popup._SZ_EDGE=10;Popup._SZ_MIN=40;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="d";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._keyActionTab=TabKeyAction.CloseAndMoveFocus;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"));a.tabOrder=l.tabOrder=-1;let h=this._dropDown;addClass(h,InputDateClsNames.inputDateDropDown);h.appendChild(l.hostElement);h.appendChild(a.hostElement);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);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._closeOnChange()});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);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)}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)}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=this._cal.getFocusableElements();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()}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);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={},o={},r=0,d=0,u=0,c=[],_=[],m=i.value.match(getSpecialCharsRegex());if(null==e||null==m){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{let n=t.replaceAll('"',""),a=s.substring(r),u=l.substring(d),c=a.indexOf(t),_=u.indexOf(n);if(-1==_){let t=m[i];_=u.indexOf(t)}let p=a.substring(0,c);if(""!=p){h[p]=r;o[p]=d}r=r+c+t.length;d=d+_+n.length;if(i==e.length-1){p=s.substring(r);h[p]=r;o[p]=d}});c=Object.keys(h);_=Object.values(o)}let p=_.filter(t=>n>=parseInt(t.toString()));p.length>0&&(u=p.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 o=t.replaceAll('"',""),r=s.substring(n);if(r.startsWith("г.")){r=r.replace("г. ","");n+="г. ".length}let d=r.indexOf(o);0==d&&e++;if(-1==d){let t=h[i];d=r.indexOf(t)}let u=-1===d?r:r.substring(0,d);i==e&&-1==l&&(a=(l=n)+u.length);n=n+d+o.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),o=this.rightToLeft?t[1]:t[0];if(2==t.length&&o){let s=a(o,n,this.value);if(s){let o=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(o){l.value=this._fromDateTime(s);if(DateTime.sameDate(o,this._clamp(o))){l.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){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.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}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=asEnum(t,TabKeyAction)}_shouldRaiseInvalidInput(t){return isNullOrUndefined(t)?!this._containsFocus():t}}InputDate._ctrlTemplate="";_addCultureInfo("InputDateRange",{ariaLabels:{inputDateRangeInput:"InputDateRange Input"}});export class InputDateRange extends InputDate{constructor(t,e){super(t,{selectionMode:DateSelectionMode.Range,showMonthPicker:"Outside",monthCount:2});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(!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="";_addCultureInfo("InputColor",{ariaLabels:{inputColor:"Input Color"}});export class InputColor extends DropDown{constructor(t,e){super(t);this._textInitialized=!1;this.valueChanged=new Event;addClass(this.hostElement,InputColorClsNames.hostElement);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)}});this._colorPicker.tabOrder=-1}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}onValueChanged(t){this.valueChanged.raise(this,t)}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);this.isDroppedDown&&!this.isTouching&&this.selectAll()}_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:if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();t.preventDefault()}}super._keydown(t)}_commitText(){if(this._value!=this.text){let t=!this.text||!this.text.trim();if(!this.isRequired&&t){this._value="";this._ePreview.style.backgroundColor="";this.onValueChanged();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}let t=this._colorPicker;t.value=this.text;this._value=t.value;this._ePreview.style.backgroundColor=this.value;this.onValueChanged()}else this.onInvalidInput(new CancelEventArgs)&&(this.text=this._value?this._value:"")}}_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}}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._keyActionTab=TabKeyAction.CloseAndMoveFocus;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 keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=asEnum(t,TabKeyAction)}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=null!=(i=e?this._pathHdr.getValue(e):null)?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,o=this.text;if(l===h&&i===o){if(this._oldFilter){this.collectionView.filter=this._oldFilter;this._oldFilter=null}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=l>-1&&l<a.length?a[l].id:null;setAttribute(t,"aria-controls",i&&e?s:null);setAttribute(t,"aria-expanded",i?e:null);setAttribute(t,"aria-activedescendant",this.isDroppedDown&&h&&h.length?h: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 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)}let 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){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();let e=this._getSelStart(),s=this._getSelEnd();const i=this._delKey,n=this.text;if(this._shouldOpenDropdown()){this._controlDropdownVisibility();this._tbx.value=n;this._setSelRange(e,s);this._delKey=i}const l=n.trim();!this.isEditable&&l?this._handleIsEditableFalseInput():this._updateComponentText();this._updateEmptyValueFlag();this._resetDragState()}_handleDragTextState(){this._draggingText&&(this._emptyValueAction=""===this.text)}_handleComposingState(){this._composing&&(this._composing=!1)}_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&&-1===(s=this._findNextWhenIsEditableFalse(t,1,-1))){const i=t[t.length-1];e=1;-1===(s=this._findNextWhenIsEditableFalse(i,1))&&(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}}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;this._lbx.itemsChanged.addHandler(()=>{this.isDroppedDown&&this.refresh()});super._createDropDown()}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._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.itemClicked=new Event;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,this._tbx);s.tabIndex=this.isDisabled?-1:this._orgTabIndex;this.isRequired=!1;setAttribute(s,"role","button");setAttribute(i,"role",null);setAttribute(i,"aria-autocomplete",null);setAttribute(i,"aria-owns",null);setAttribute(l,"role","menu");n.itemRole="menuitem";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(s,"aria-expanded",!1);setAttribute(s,"aria-label",this._ariaLabel);setAttribute(s,"aria-haspopup","menu");setAttribute(s,"aria-owns",l.id);setAttribute(s,"aria-controls",l.id)}static get controlTemplate(){Menu._ctrlTemplate||(Menu._ctrlTemplate=ComboBox.controlTemplate);return Menu._ctrlTemplate}static set controlTemplate(t){Menu._ctrlTemplate=t}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){if(t!=this._ariaLabel){this._ariaLabel=t;setAttribute(this.hostElement,"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)}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);setAttribute(this.hostElement,"aria-expanded",this.isDroppedDown);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{if(!this.selectedItem){let t=this._lbx._checking;this._lbx._checking=!0;this.selectedItem=this._defaultItem;this._lbx._checking=t}let t=this._subMenu;t&&(t.isDroppedDown=!1)}}_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")}}_keydown(t){if(!t.defaultPrevented){let s=this._getKeyCode(t);if(this.isDroppedDown)switch(s){case Key.Tab:if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();t.preventDefault()}break;case Key.Enter:case Key.Right:if(this._showSubMenu()){t.preventDefault();return}break;case Key.Left:var e=Control.getControl(this.owner);if(e instanceof Menu){let s=e.dropDown,i=e.selectedIndex,n=i>-1?s.children[i]:s;setAttribute(n,"aria-expanded",!1);n.removeAttribute("aria-owns");n.focus();t.preventDefault();return}}if(s==Key.Enter)if(this.isDroppedDown)this.selectedIndex>-1&&this._raiseCommand();else{this.isDroppedDown=!0;t.preventDefault()}}super._keydown(t)}_dropDownClick(t){if(!t.defaultPrevented&&t.target!=this.dropDown){this._clearHover(t);if(this._showSubMenu()){t.preventDefault();return}this.selectedIndex>-1&&this._raiseCommand()}super._dropDownClick(t)}_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,itemClicked:(t,e)=>{this.itemClicked.raise(t,e)},formatItem:(t,e)=>{this.formatItem.raise(t,e)}});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 o=l.dropDown;setAttribute(o,"dir",n?"rtl":null);l.show(i);o[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}let e=t.owner;!e&&t.dropDown&&(e=t.dropDown[Control._OWNR_KEY]);t.isDroppedDown=!1;t.focus();if(!t.containsFocus()&&e instanceof HTMLElement&&e.offsetHeight)if(isIE){let t=document.documentElement,s=t.scrollLeft,i=t.scrollTop;e.focus();t.scrollLeft=s,t.scrollTop=i}else e.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);this.hostElement.tabIndex=this.isDisabled?-1:this._orgTabIndex}_setTabOrder(t){super._setTabOrder(t);this.hostElement.tabIndex=this.isDisabled?-1:this._orgTabIndex}}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();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={},o={},r=0,d=0,u=0,c=[],_=[],m=i.value.match(getSpecialCharsRegex());if(null==e||null==m){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{let n=t.replaceAll('"',""),a=s.substring(r),u=l.substring(d),c=a.indexOf(t),_=u.indexOf(n),m=a.substring(0,c);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)}let p=_.filter(t=>n>=parseInt(t.toString()));p.length>0&&(u=p.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('"',""),o=s.substring(n),r=o.indexOf(h),d=o.substring(0,r),u=""==d?o.length:d.length;i==e&&-1==l&&(a=(l=n)+u);n=n+r+h.length});if(-1==l){l=n;a=i.value.length}setSelectionRange(i,l,a)}_commitText(){if(this.text||this.isRequired){let t=this.value?Globalize.format(this.value,this.format):"";if(this.text!=t){let e=this.selectedItem&&this.selectedItem.value?this.selectedItem.value:Globalize.parseDate(this.text,this.format,this.value);e?(DateTime.sameTime(e,this._clamp(e))||this.onInvalidInput(new CancelEventArgs))&&(this.value=DateTime.fromDateTime(this.value,e)):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._composing&&(this._composing=!1);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);setAriaLabel(this._btnTm,s.tglTime);this._updateInputAriaLabel();this.value=new Date;this.format="g";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()},keyActionPrintCharacters:0,keyActionTab:0});let i=this.addEventListener.bind(this);this._btnTm=this.hostElement.querySelector('[wj-part="btn-tm"]');i(this._btnTm,"mousedown",t=>{this._btnclick(t)});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){let e=closest(t.target,"button")==this._btn?this._ddDate:this._ddTime;this._setDropdown(e);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);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(!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);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()}}}super._keydown(t)}_updateDateTimeValue(t,e,s){let i=this._tbx,n=i.selectionStart,l=i.value,a=this.value,h={},o={},r=0,d=0,u=0,c=[],_=[],m=i.value.match(getSpecialCharsRegex());if(null==e||null==m){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{let n=t.replaceAll('"',""),a=s.substring(r),u=l.substring(d);if(u.startsWith("г.")){u=u.replace("г. ","");d+="г. ".length}let c=a.indexOf(t),_=u.indexOf(n);if(-1==_){let t=m[i];_=u.indexOf(t)}let p=a.substring(0,c);if(""!=p){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)}let p=_.filter(t=>n>=parseInt(t.toString()));p.length>0&&(u=p.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)}}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._handleComposingState();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;i&&(s=null!=(s=i.getValue(t))?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"}});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.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._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()}}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;this._wjTpl.insertBefore(t,this._wjInput);this._helperInput=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){if(i){if((s=this._getItemIndex(i))>-1){e=this._selItems[s];n=!0}}else if(this._selItems.length>0){e=this._selItems[this._selItems.length-1];n=!0}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("a");e.appendChild(s);e.appendChild(i);e.className=MultiAutoCompleteClsNames.token;s.className=MultiAutoCompleteClsNames.tokenLabel;s.innerHTML=t;i.className=MultiAutoCompleteClsNames.tokenClose;i.href="#";i.tabIndex=-1;i.text="×";e.style.cssFloat=this.rightToLeft?"right":"left";this.addEventListener(e,"click",t=>{this._helperInput.focus();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();t.preventDefault()});return e}_itemOn(t){let e,s,i,n=getActiveElement();if((this._tbx!=n||0===this._tbx.value.length)&&0!==(e=this._wjTpl.querySelectorAll(`.${MultiAutoCompleteClsNames.token}`)).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()}else{removeClass(s,MultiAutoComplete._clsActive);addClass(e[i-1],MultiAutoComplete._clsActive);this._helperInput.focus()}}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()}else{removeClass(s,MultiAutoComplete._clsActive);this._tbx.focus()}}}}_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"}_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{_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,tryCast,createElement,hasItems,isObject,isString,asArray,asFunction,asNumber,asType,asCollectionView,closest,escapeHtml,toPlainText,setCss,Binding,Rect,DateTime,assert,isFirefox,_CLS_STATE_DISABLED,UtilitesClsNames,_setAriaLabelBy,getUniqueId,isNumber,enable,isFunction,escapeRegExp,isSafari,setText,isDate,isBoolean,asDate,asInt,Globalize,_ClickRepeater,CollectionView,format,uidGenerator,moveFocus,_isMacOS,clamp,Color,_MaskProvider,getSpecialCharsRegex,isEmpty,isNullOrUndefined,isEdge,setChecked,Point,isArray,getElementRect,PopupPosition,getElement,isUndefined,_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"};export const InputDateRangeClsNames={hostElement:"wj-inputdaterange"};export const InputDateTimeClsNames={hostElement:"wj-inputdatetime"};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"};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));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" inputmode="numeric" 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 o=t.indexOf(n),r=this._format||(o>-1?"n2":"n0"),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);l&&d>=0&&!a&&(c=this._chrNeg+c);h&&o>-1&&"g"==this._fmtSpc&&0!=this._fmtPrc&&(c=t).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()}_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:if(this.clamp(-1)>=0)this.value<0&&this._flipSign();else if(this.value&&e.selectionStart==e.selectionEnd)this._flipSign();else if(this.clamp(-1)<0){e.value=this._chrNeg;setSelectionRange(e,1)}t.preventDefault();break;case"+":case this._chrPls:this.value<0&&this._flipSign();t.preventDefault();break;case".":case this._chrDec:if(0==this._fmtPrc)t.preventDefault();else{let s=e.value.indexOf(this._chrDec);if(s>-1){e.selectionStart<=s&&s++;setSelectionRange(e,s);t.preventDefault()}}}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()}}}}_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){1==l.length?setSelectionRange(t,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)}})}_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;!t||t.id||this._ariaLabelledby?setAttribute(t,"aria-label",null):setAttribute(t,"aria-label",this._inputElementAriaLabel)}getAriaLabelForScreenReader(){return culture.InputNumber.ariaLabels.inputNumber}}InputNumber._ctrlTemplate="";_addCultureInfo("InputMask",{ariaLabels:{inputMask:"Input Mask"}});export class InputMask extends Control{constructor(t,e){super(t);this._fullEdit=!1;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()})}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)}getAriaLabelForScreenReader(){return culture.InputMask.ariaLabels.inputMask}}InputMask._ctrlTemplate="";export class ColorPicker extends Control{constructor(t,e){super(t);this._hsb=[.5,1,1];this._alpha=1;this.valueChanged=new Event;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);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=>{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())}});this.value="#ffffff";this.initialize(e);this._updatePanels()}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"}get value(){return this._value}set value(t){if(t!=this.value){t=(t=asString(t)).trim();let e=Color.fromString(t);if(e){this._value=t;this._eText.innerText=t;let s=e.getHsb();if(this._hsb[0]!=s[0]||this._hsb[1]!=s[1]||this._hsb[2]!=s[2]||this._alpha!=e.a){if(0==s[2]){s[0]=this._hsb[0];s[1]=this._hsb[1]}else 0==s[1]&&(s[0]=this._hsb[0]);this._hsb=s;this._alpha=e.a;this._updatePanels();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()}}onValueChanged(t){this._updatePanels();this.valueChanged.raise(this,t)}_mouseDown(t){this._htDown=this._getTargetPanel(t);if(this._htDown){t.preventDefault();this.focus();this._mouseMove(t)}}_mouseMove(t){var e=t.touches?t.touches[0]:t,s=this._htDown;if(s){let t=s.getBoundingClientRect(),i=this._hsb;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&&(this._alpha=clamp((e.clientX-t.left)/t.width,0,1));this._updateColor()}}_mouseUp(t){this._htDown=null}_updateColor(){let t=Color.fromHsb(this._hsb[0],this._hsb[1],this._hsb[2],this._alpha);this.value=t.toString();this._updatePanels()}_updatePalette(){let t=new Color("#fff"),e=new Color("#000");this._ePal.innerHTML="";for(let s=0;s<this._palette.length;s++){let i=createElement('<div style="float:left;width:10%;box-sizing:border-box;padding:1px">'),n=new Color(this._palette[s]),l=n.getHsb();i.appendChild(this._makePalEntry(n,4));for(let s=0;s<5;s++){if(0==l[1]){let i=.1*s+(l[2]>.5?.05:.55);n=Color.interpolate(t,e,i)}else n=Color.fromHsb(l[0],.1+.2*s,1-.1*s);i.appendChild(this._makePalEntry(n,0))}this._ePal.appendChild(i)}}_makePalEntry(t,e){let s=document.createElement("div");setCss(s,{cursor:"pointer",backgroundColor:t.toString(),marginBottom:e||""});s.innerHTML=" ";return s}_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)");this._ePreview.style.backgroundColor=this.value;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)+"%"}_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}}ColorPicker._ctrlTemplate="";ColorPicker._tplCursor='<div style="position:absolute;left:50%;top:50%;width:7px;height:7px;transform:translate(-50%,-50%);border:2px solid #f0f0f0;border-radius:50px;box-shadow:0px 0px 4px 2px #0f0f0f"></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){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._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(t=>{t.firstElementChild.disabled?t.firstElementChild.setAttribute("tabindex","-1"):t.firstElementChild.setAttribute("tabindex",this._orgTabIndex.toString())});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._btnFirst,this._btnPrev,this._btnNext,this._btnLast].forEach(e=>{if(t){e.firstElementChild.setAttribute("disabled","");e.firstElementChild.setAttribute("tabindex","-1")}else{e.firstElementChild.removeAttribute("disabled");e.firstElementChild.setAttribute("tabindex",this._orgTabIndex.toString())}toggleClass(e,ControlStateClsNames.disabled,t)});this._txtCurr.tabIndex=t?-1:this._orgTabIndex;toggleClass(this._txtCurr,ControlStateClsNames.disabled,t)}}}}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.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&&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);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,o=0;h.innerHTML=a.join("");for(let t=0;t<h.children.length;t++){let 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,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 o=document.createDocumentFragment(),r=this.containsFocus();this._ePadTop.style.height=l*e+"px";o.appendChild(this._ePadTop);if(this.showGroups&&!hasClass(s[l],ListBoxClsNames.header))for(let t=l;t>=0;t--)if(hasClass(s[t],ListBoxClsNames.header)){o.appendChild(s[t]);break}for(let t=l;t<=l+a&&t<s.length;t++)o.appendChild(s[t]);this._ePadBot.style.height=h*e+"px";o.appendChild(this._ePadBot);t.textContent="";t.appendChild(o);let d=(l+a+h)*e-t.scrollHeight;this._ePadBot.style.height=this._ePadBot.offsetHeight-d+"px";let 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){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)}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=`\n <label class="wj-checklist-item">\n <span class="wj-checklist-base" role="checkbox" aria-hidden="true">\n <span class="wj-checklist-mark" style="display: ${a?"block":"none"}"></span>\n </span>\n <span class="wj-checklist-caption">${n}</span>\n </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 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,a)?'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 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){const t=i.querySelector(".wj-checklist-mark");if(t){i.setAttribute("aria-selected",e.toString());toggleClass(i,ControlStateClsNames.checked,e);t.style.display=e?"block":"none"}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()}_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]))}}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"});export class MultiSelectListBox extends Control{constructor(t,e){super(t);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: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}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)}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()&&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));i(this._btnCancel,"click",this.oneCancelButtonClick.bind(this));i(this._btnOK,"click",this.onOkButtonClick.bind(this));this._focusValue=DateTime.newDate();setAttribute(s,"role","application");setAttribute(this.hostElement,"aria-label",this._ariaLabel);let n=culture.Calendar.buttons;setText(this._btnOK,n.ok);setText(this._btnCancel,n.cancel);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 wj-part="confirmation-button-container" class="${CalendarClsNames.confirmationButtonContainer}">`+`<button wj-part="btn-ok" class="${InputFormElementsClsNames.btn} ${CalendarClsNames.button}"></button>`+`<button wj-part="btn-cancel" class="${InputFormElementsClsNames.btn} ${CalendarClsNames.button}"></button>`+"</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._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){this._clearingRangeEnd=!DateTime.equals(this._focusValue,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);this._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);this._rngEnd=t==e.Range?this._value:null;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)$/.test(e)){let s=this[e];isFunction(s)||s instanceof Event||(t[e]=s)}this._cals.push(t);e.appendChild(t.hostElement)}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":"";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.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,o=DateTime.newDate();const r=this._min&&this._min>o,d=this._max&&this._max<o;(r||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==u[0]&&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),o=s.monthLast(t),r=this._tbMth.querySelectorAll("th");this._updateMonthButtonAria();for(let t=0;t<7&&t<r.length;t++){let 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);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<=o;)c=this._addWeek(c);for(let t=0;t<this._wksAfter;t++)c=this._addWeek(c,CalendarClsNames.weekAfter);r=this._tbYr.querySelectorAll("td");let _=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);let n=r[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.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=s[i],l=n[t],a=this.value,h=this.rangeEnd,o=this._selMode&&null!=a&&e.sameDate(l,a),r=this._selMode&&null!=a&&e.sameDate(l,h),d=this._selMode&&null!=a&&l>a&&null!=h&&l<=h;toggleClass(n,ControlStateClsNames.selected,o);toggleClass(n,ControlStateClsNames.multiSelected,d);toggleClass(n,ControlStateClsNames.lastSelected,r);setAttribute(n,"aria-selected",!!o||null);this._customizeCell(i,l,n)}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&&this._updateFocusInAccessibilityMode()}_updateFocusInAccessibilityMode(){let t,e=Calendar._DATE_KEY,s=DateTime,i=this._tbMth.querySelectorAll("td");for(let n=0;n<i.length;n++){let l=i[n],a=l[e],h=this._selMode&&null!=this.focusValue&&s.sameDate(a,this.focusValue)&&this._isSameDay(this.focusValue,a);void 0===t&&!l.classList.contains(CalendarClsNames.dayOtherMonth)&&this._isDayValid(a)&&(t=l);this._isSameDay(this.focusValue,a)&&this._isDayValid(a)&&(t=l);this._updateCellFocus(l,h)}if(0===this._tbMth.querySelectorAll('[tabindex="0"]').length&&this.monthView&&t){setAttribute(t,"tabIndex","0");toggleClass(t,CalendarClsNames.focused,!0);this._focusValue=t[e]}let n=(i=this._tbYr.querySelectorAll("td"))[0];for(let t=0;t<i.length;t++){let s=i[t],l=s[e],a=this._sameMonth(l,this.focusValue);this._isSameMonth(this.value,l)&&(n=s);this._updateCellFocus(s,a)}if(0===this._tbYr.querySelectorAll('td[tabindex="0"]').length&&!this.monthView){setAttribute(n,"tabIndex","0");toggleClass(n,CalendarClsNames.focused,!0);this._focusValue=n[e]}}_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(),o=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,o);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",_confirmationButtonContainer:"confirmation-button-container",_btnOK:"btn-ok",_btnCancel:"btn-cancel"});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.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);e=!0}else if(contains(this._btnNxt,s)){this._navigate(1);e=!0}else if(contains(this._btnTdy,s)){this._navigate(0);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){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(t.ctrlKey||t.metaKey||t.shiftKey&&!this._rngMode())return;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),i=DateTime.fromDateTime;if(this.monthView){if(e&&this._canChangeValue()){let s=i(e,this._value);if(this._inValidRange(s)&&this._valid(s))if(this._rngMode()&&this.value&&!this.rangeEnd&&s>=this.value)this.rangeEnd=s;else{this._enterKeyDownToSetValue.raise(this,t);this.value=s}}}else if(e){this.displayMonth=e;if(this._mthMode()){if(this._canChangeValue()){let t=i(this.displayMonth,this.value);this._inValidRange(t)&&(this.value=t)}}else this.monthView=!0}}"Space"===t.code&&t.preventDefault();return}if(!contains(this._tbMth,t.target)&&(!contains(this._tbYr,t.target)||contains(this._tbYr.firstElementChild,t.target)))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}_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,o=h.hostElement,r=closest(e,`.${CalendarClsNames.header}`),d=this.hostElement,u=closest(d,`.${InputDateClsNames.inputDateDropDown}`)||d;h.itemsSource=l;h.selectedIndex=s-l[0];setAttribute(o,"dir",this.rightToLeft?"rtl":null);setCss(o,{minWidth:"",width:r.offsetWidth});showPopup(o,r,!1,!1,u);requestAnimationFrame(()=>{h.showSelection(!0)});this.addEventListener(window,"touchstart",t=>{if(!contains(o,t.target)){hidePopup(o);this._tmYrHidden=Date.now();this.removeEventListener(window,"touchstart")}});t.preventDefault()}get focusMode(){return this._focusMode}set focusMode(t){this._focusMode=t;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()}_isSameDay(t,e){return!(e.getMonth()!=this.displayMonth.getMonth())&&t.getDate()===e.getDate()}_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}getFocusableElements(){return Array.from(this.hostElement.querySelectorAll("a, button, input, textarea, select, [tabindex]:not([tabindex='-1'])")).filter(t=>!t.hasAttribute("disabled")&&null!==t.offsetParent)}_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.value=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(){if(this.keyActionTab===CalendarTabKeyAction.All&&!0!==this.isDisabled){setAttribute(this._btnMth,"tabindex","0");setAttribute(this._btnPrv,"tabindex","0");setAttribute(this._btnTdy,"tabindex","0");setAttribute(this._btnNxt,"tabindex","0");setAttribute(this._showYearListBoxButton,"tabindex","0")}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")}}_onEnterKeyDownToSetValue(t){this._enterKeyDownToSetValue.raise(this,t)}get showConfirmationButtons(){return this._showConfirmationButtons}set showConfirmationButtons(t){this._showConfirmationButtons=t}_setIsDisabled(t){super._setIsDisabled(t);this._updateButtonTabIndex()}}Calendar._DATE_KEY="$WJ-DATE";Calendar._ctrlTemplate="";_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._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,o=this.addEventListener.bind(this),r=this._updateFocusState.bind(this);o(h,"blur",r,!0);o(h,"focus",r);let d=this._keydown.bind(this);o(a,"keydown",d);o(h,"keydown",d);let u=this._keypress.bind(this);o(a,"keypress",u,!0);o(h,"keypress",u,!0);o(l,"input",this._input.bind(this));o(l,"beforeinput",(function(t){"historyUndo"!==t.inputType&&"historyRedo"!==t.inputType||t.preventDefault()}));o(l,"blur",()=>{this._commitText(!0,!1)},!0);o(l,"click",()=>{this._autoExpand&&this._expandSelection()});o(l,"mousedown",t=>{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._btnclick(t)});removeChild(h);isIE()&&this._elRef==this._tbx&&o(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()&&o(l,"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}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)}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.isReadOnly=!0;this.isDroppedDown=!this.isDroppedDown;this.focus();setTimeout(()=>{this.isReadOnly=!1},0)}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)}}}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;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")}if(e=this._owner=null!=t?getElement(t):null){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()});setTimeout(()=>{this.addEventListener(window,"click",t=>{this._hideTrigger&PopupTrigger.BlurPopup&&this.isDisabled&&!contains(s,t.target,!0)&&this.hide()})});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;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)}}dispose(){this._initialOwner.appendChild(this.hostElement);this._initialOwner=null;this.owner=null;this._bkDrop&&this._bkDrop.remove();super.dispose()}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,o=Popup._SZ_MIN,r=Rect.fromBoundingRect(a);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+l,t);r.height=Math.max(r.height-l,i)}else h&_Edges.Bottom&&(r.height=Math.max(r.height+l,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){let t=this.hostElement.children;for(let e=0;e<t.length;e++)Control.invalidateAll(t[e])}}else if(this._draggable&&(this._dragged||Math.abs(n)+Math.abs(l)>Popup._DRAG_THRESHOLD)){r.left=Math.max(a.left+n+(i.pageX-i.clientX),50-a.width);r.top=Math.max(a.top+l+(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){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)}}Popup._DRAG_THRESHOLD=6;Popup._SZ_EDGE=10;Popup._SZ_MIN=40;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="d";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._keyActionTab=TabKeyAction.CloseAndMoveFocus;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"));a.tabOrder=l.tabOrder=-1;let h=this._dropDown;addClass(h,InputDateClsNames.inputDateDropDown);h.appendChild(l.hostElement);h.appendChild(a.hostElement);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);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._closeOnChange()});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);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)}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)}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=this._cal.getFocusableElements();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()}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);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={},o={},r=0,d=0,u=0,c=[],_=[],m=i.value.match(getSpecialCharsRegex());if(null==e||null==m){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{let n=t.replaceAll('"',""),a=s.substring(r),u=l.substring(d),c=a.indexOf(t),_=u.indexOf(n);if(-1==_){let t=m[i];_=u.indexOf(t)}let p=a.substring(0,c);if(""!=p){h[p]=r;o[p]=d}r=r+c+t.length;d=d+_+n.length;if(i==e.length-1){p=s.substring(r);h[p]=r;o[p]=d}});c=Object.keys(h);_=Object.values(o)}let p=_.filter(t=>n>=parseInt(t.toString()));p.length>0&&(u=p.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 o=t.replaceAll('"',""),r=s.substring(n);if(r.startsWith("г.")){r=r.replace("г. ","");n+="г. ".length}let d=r.indexOf(o);0==d&&e++;if(-1==d){let t=h[i];d=r.indexOf(t)}let u=-1===d?r:r.substring(0,d);i==e&&-1==l&&(a=(l=n)+u.length);n=n+d+o.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),o=this.rightToLeft?t[1]:t[0];if(2==t.length&&o){let s=a(o,n,this.value);if(s){let o=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(o){l.value=this._fromDateTime(s);if(DateTime.sameDate(o,this._clamp(o))){l.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){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.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}get keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=asEnum(t,TabKeyAction)}_shouldRaiseInvalidInput(t){return isNullOrUndefined(t)?!this._containsFocus():t}}InputDate._ctrlTemplate="";_addCultureInfo("InputDateRange",{ariaLabels:{inputDateRangeInput:"InputDateRange Input"}});export class InputDateRange extends InputDate{constructor(t,e){super(t,{selectionMode:DateSelectionMode.Range,showMonthPicker:"Outside",monthCount:2});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(!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="";_addCultureInfo("InputColor",{ariaLabels:{inputColor:"Input Color"}});export class InputColor extends DropDown{constructor(t,e){super(t);this._textInitialized=!1;this.valueChanged=new Event;addClass(this.hostElement,InputColorClsNames.hostElement);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)}});this._colorPicker.tabOrder=-1}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}onValueChanged(t){this.valueChanged.raise(this,t)}onIsDroppedDownChanged(t){super.onIsDroppedDownChanged(t);this.isDroppedDown&&!this.isTouching&&this.selectAll()}_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:if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();t.preventDefault()}}super._keydown(t)}_commitText(){if(this._value!=this.text){let t=!this.text||!this.text.trim();if(!this.isRequired&&t){this._value="";this._ePreview.style.backgroundColor="";this.onValueChanged();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}let t=this._colorPicker;t.value=this.text;this._value=t.value;this._ePreview.style.backgroundColor=this.value;this.onValueChanged()}else this.onInvalidInput(new CancelEventArgs)&&(this.text=this._value?this._value:"")}}_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}}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._keyActionTab=TabKeyAction.CloseAndMoveFocus;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 keyActionTab(){return this._keyActionTab}set keyActionTab(t){this._keyActionTab=asEnum(t,TabKeyAction)}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=null!=(i=e?this._pathHdr.getValue(e):null)?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,o=this.text;if(l===h&&i===o){if(this._oldFilter){this.collectionView.filter=this._oldFilter;this._oldFilter=null}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=l>-1&&l<a.length?a[l].id:null;setAttribute(t,"aria-controls",i&&e?s:null);setAttribute(t,"aria-expanded",i?e:null);setAttribute(t,"aria-activedescendant",this.isDroppedDown&&h&&h.length?h: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 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)}let 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){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();let e=this._getSelStart(),s=this._getSelEnd();const i=this._delKey,n=this.text;if(this._shouldOpenDropdown()){this._controlDropdownVisibility();this._tbx.value=n;this._setSelRange(e,s);this._delKey=i}const l=n.trim();!this.isEditable&&l?this._handleIsEditableFalseInput():this._updateComponentText();this._updateEmptyValueFlag();this._resetDragState()}_handleDragTextState(){this._draggingText&&(this._emptyValueAction=""===this.text)}_handleComposingState(){this._composing&&(this._composing=!1)}_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&&-1===(s=this._findNextWhenIsEditableFalse(t,1,-1))){const i=t[t.length-1];e=1;-1===(s=this._findNextWhenIsEditableFalse(i,1))&&(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}}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;this._lbx.itemsChanged.addHandler(()=>{this.isDroppedDown&&this.refresh()});super._createDropDown()}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._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.itemClicked=new Event;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,this._tbx);s.tabIndex=this.isDisabled?-1:this._orgTabIndex;this.isRequired=!1;setAttribute(s,"role","button");setAttribute(i,"role",null);setAttribute(i,"aria-autocomplete",null);setAttribute(i,"aria-owns",null);setAttribute(l,"role","menu");n.itemRole="menuitem";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(s,"aria-expanded",!1);setAttribute(s,"aria-label",this._ariaLabel);setAttribute(s,"aria-haspopup","menu");setAttribute(s,"aria-owns",l.id);setAttribute(s,"aria-controls",l.id)}static get controlTemplate(){Menu._ctrlTemplate||(Menu._ctrlTemplate=ComboBox.controlTemplate);return Menu._ctrlTemplate}static set controlTemplate(t){Menu._ctrlTemplate=t}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){if(t!=this._ariaLabel){this._ariaLabel=t;setAttribute(this.hostElement,"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)}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);setAttribute(this.hostElement,"aria-expanded",this.isDroppedDown);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{if(!this.selectedItem){let t=this._lbx._checking;this._lbx._checking=!0;this.selectedItem=this._defaultItem;this._lbx._checking=t}let t=this._subMenu;t&&(t.isDroppedDown=!1)}}_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")}}_keydown(t){if(!t.defaultPrevented){let s=this._getKeyCode(t);if(this.isDroppedDown)switch(s){case Key.Tab:if(this.isDroppedDown){this.isDroppedDown=!1;this.containsFocus()||this.focus();t.preventDefault()}break;case Key.Enter:case Key.Right:if(this._showSubMenu()){t.preventDefault();return}break;case Key.Left:var e=Control.getControl(this.owner);if(e instanceof Menu){let s=e.dropDown,i=e.selectedIndex,n=i>-1?s.children[i]:s;setAttribute(n,"aria-expanded",!1);n.removeAttribute("aria-owns");n.focus();t.preventDefault();return}}if(s==Key.Enter)if(this.isDroppedDown)this.selectedIndex>-1&&this._raiseCommand();else{this.isDroppedDown=!0;t.preventDefault()}}super._keydown(t)}_dropDownClick(t){if(!t.defaultPrevented&&t.target!=this.dropDown){this._clearHover(t);if(this._showSubMenu()){t.preventDefault();return}this.selectedIndex>-1&&this._raiseCommand()}super._dropDownClick(t)}_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,itemClicked:(t,e)=>{this.itemClicked.raise(t,e)},formatItem:(t,e)=>{this.formatItem.raise(t,e)}});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 o=l.dropDown;setAttribute(o,"dir",n?"rtl":null);l.show(i);o[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}let e=t.owner;!e&&t.dropDown&&(e=t.dropDown[Control._OWNR_KEY]);t.isDroppedDown=!1;t.focus();if(!t.containsFocus()&&e instanceof HTMLElement&&e.offsetHeight)if(isIE){let t=document.documentElement,s=t.scrollLeft,i=t.scrollTop;e.focus();t.scrollLeft=s,t.scrollTop=i}else e.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);this.hostElement.tabIndex=this.isDisabled?-1:this._orgTabIndex}_setTabOrder(t){super._setTabOrder(t);this.hostElement.tabIndex=this.isDisabled?-1:this._orgTabIndex}}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();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={},o={},r=0,d=0,u=0,c=[],_=[],m=i.value.match(getSpecialCharsRegex());if(null==e||null==m){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{let n=t.replaceAll('"',""),a=s.substring(r),u=l.substring(d),c=a.indexOf(t),_=u.indexOf(n),m=a.substring(0,c);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)}let p=_.filter(t=>n>=parseInt(t.toString()));p.length>0&&(u=p.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('"',""),o=s.substring(n),r=o.indexOf(h),d=o.substring(0,r),u=""==d?o.length:d.length;i==e&&-1==l&&(a=(l=n)+u);n=n+r+h.length});if(-1==l){l=n;a=i.value.length}setSelectionRange(i,l,a)}_commitText(){if(this.text||this.isRequired){let t=this.value?Globalize.format(this.value,this.format):"";if(this.text!=t){let e=this.selectedItem&&this.selectedItem.value?this.selectedItem.value:Globalize.parseDate(this.text,this.format,this.value);e?(DateTime.sameTime(e,this._clamp(e))||this.onInvalidInput(new CancelEventArgs))&&(this.value=DateTime.fromDateTime(this.value,e)):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._composing&&(this._composing=!1);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);setAriaLabel(this._btnTm,s.tglTime);this._updateInputAriaLabel();this.value=new Date;this.format="g";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()},keyActionPrintCharacters:0,keyActionTab:0});let i=this.addEventListener.bind(this);this._btnTm=this.hostElement.querySelector('[wj-part="btn-tm"]');i(this._btnTm,"mousedown",t=>{this._btnclick(t)});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){let e=closest(t.target,"button")==this._btn?this._ddDate:this._ddTime;this._setDropdown(e);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);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(!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);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()}}}super._keydown(t)}_updateDateTimeValue(t,e,s){let i=this._tbx,n=i.selectionStart,l=i.value,a=this.value,h={},o={},r=0,d=0,u=0,c=[],_=[],m=i.value.match(getSpecialCharsRegex());if(null==e||null==m){c=[this.format];_=["0"];e=[""]}else{e.forEach((t,i)=>{let n=t.replaceAll('"',""),a=s.substring(r),u=l.substring(d);if(u.startsWith("г.")){u=u.replace("г. ","");d+="г. ".length}let c=a.indexOf(t),_=u.indexOf(n);if(-1==_){let t=m[i];_=u.indexOf(t)}let p=a.substring(0,c);if(""!=p){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)}let p=_.filter(t=>n>=parseInt(t.toString()));p.length>0&&(u=p.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)}}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._handleComposingState();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;i&&(s=null!=(s=i.getValue(t))?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"}});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.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._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()}}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;this._wjTpl.insertBefore(t,this._wjInput);this._helperInput=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){if(i){if((s=this._getItemIndex(i))>-1){e=this._selItems[s];n=!0}}else if(this._selItems.length>0){e=this._selItems[this._selItems.length-1];n=!0}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("a");e.appendChild(s);e.appendChild(i);e.className=MultiAutoCompleteClsNames.token;s.className=MultiAutoCompleteClsNames.tokenLabel;s.innerHTML=t;i.className=MultiAutoCompleteClsNames.tokenClose;i.href="#";i.tabIndex=-1;i.text="×";e.style.cssFloat=this.rightToLeft?"right":"left";this.addEventListener(e,"click",t=>{this._helperInput.focus();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();t.preventDefault()});return e}_itemOn(t){let e,s,i,n=getActiveElement();if((this._tbx!=n||0===this._tbx.value.length)&&0!==(e=this._wjTpl.querySelectorAll(`.${MultiAutoCompleteClsNames.token}`)).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()}else{removeClass(s,MultiAutoComplete._clsActive);addClass(e[i-1],MultiAutoComplete._clsActive);this._helperInput.focus()}}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()}else{removeClass(s,MultiAutoComplete._clsActive);this._tbx.focus()}}}}_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"}_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);
|