{"version":3,"sources":["webpack:///./src/components/ReportDatePicker.vue?1dd9","webpack:///src/components/ReportDatePicker.vue","webpack:///./src/components/ReportDatePicker.vue?71b4","webpack:///./src/components/ReportDatePicker.vue","webpack:///./src/services/dashboard/index.js","webpack:///./src/views/Report/MasterExposure.vue?98ac","webpack:///src/views/Report/MasterExposure.vue","webpack:///./src/views/Report/MasterExposure.vue?23c3","webpack:///./src/views/Report/MasterExposure.vue?912c","webpack:///./node_modules/@progress/kendo-vue-common/dist/es/classNames.js","webpack:///./node_modules/@progress/kendo-vue-common/dist/es/guid.js","webpack:///./node_modules/@progress/kendo-vue-common/dist/es/keys.js","webpack:///./node_modules/@progress/kendo-vue-common/dist/es/canUseDOM.js","webpack:///./node_modules/@progress/kendo-vue-common/dist/es/noop.js","webpack:///./node_modules/@progress/kendo-vue-common/dist/es/listeners.js","webpack:///./node_modules/@progress/kendo-vue-common/dist/es/templateRendering.js","webpack:///./node_modules/@progress/kendo-vue-common/dist/es/defaultSlots.js","webpack:///./node_modules/@progress/kendo-vue-common/dist/es/main.js","webpack:///./src/helpers/finmetrix-colors.js","webpack:///./src/views/Report/MasterExposure.vue?7da9","webpack:///./src/dashboard-components lazy ^\\.\\/.*\\.js$ namespace object","webpack:///./src/helpers/color-helper.js","webpack:///./src/views/List/Deal/DrawdownForm.vue?f1a4","webpack:///./src/components/DrawDownEmailPreview.vue?1613","webpack:///src/components/DrawDownEmailPreview.vue","webpack:///./src/components/DrawDownEmailPreview.vue?ac1e","webpack:///./src/components/DrawDownEmailPreview.vue","webpack:///src/views/List/Deal/DrawdownForm.vue","webpack:///./src/views/List/Deal/DrawdownForm.vue?7bb8","webpack:///./src/views/List/Deal/DrawdownForm.vue","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/messages/index.js","webpack:///./node_modules/@progress/kendo-vue-animation/dist/es/util.js","webpack:///./node_modules/@progress/kendo-vue-animation/dist/es/AnimationChild.js","webpack:///./node_modules/@progress/kendo-vue-animation/dist/es/Animation.js","webpack:///./node_modules/@progress/kendo-vue-animation/dist/es/Fade.js","webpack:///./node_modules/@progress/kendo-vue-animation/dist/es/Expand.js","webpack:///./node_modules/@progress/kendo-vue-animation/dist/es/Push.js","webpack:///./node_modules/@progress/kendo-vue-animation/dist/es/Slide.js","webpack:///./node_modules/@progress/kendo-vue-animation/dist/es/Zoom.js","webpack:///./node_modules/@progress/kendo-vue-animation/dist/es/Reveal.js","webpack:///./node_modules/@progress/kendo-vue-popup/dist/es/util.js","webpack:///./node_modules/@progress/kendo-vue-popup/dist/es/services/alignService.js","webpack:///./node_modules/@progress/kendo-vue-popup/dist/es/services/domService.js","webpack:///./node_modules/@progress/kendo-vue-popup/dist/es/services/positionService.js","webpack:///./node_modules/@progress/kendo-vue-popup/dist/es/Popup.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/ListContainer.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/ListFilter.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/utils.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/ListDefaultItem.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/ListItem.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/List.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/VirtualScroll.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/Navigation.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/DropDownBase.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/DropDownList/DropDownList.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/SearchBar.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/common/ClearButton.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/ComboBox/ComboBox.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/AutoComplete/AutoComplete.js","webpack:///./node_modules/@progress/kendo-vue-dropdowns/dist/es/main.js","webpack:///./src/components/AnalystEmail.vue?6bd5","webpack:///src/components/AnalystEmail.vue","webpack:///./src/components/AnalystEmail.vue?d2bc","webpack:///./src/components/AnalystEmail.vue","webpack:///./src/services/dashboard/dashboard-template.html","webpack:///./src/components/VonapToolbarLabel.vue?8e02","webpack:///src/components/VonapToolbarLabel.vue","webpack:///./src/components/VonapToolbarLabel.vue?2075","webpack:///./src/components/VonapToolbarLabel.vue?4381","webpack:///./src/components/Report/ExposureDrilldown.vue?3823","webpack:///./src/components/Report/OtcExposureDrilldown.vue?3290","webpack:///src/components/Report/OtcExposureDrilldown.vue","webpack:///./src/components/Report/OtcExposureDrilldown.vue?0b43","webpack:///./src/components/Report/OtcExposureDrilldown.vue","webpack:///src/components/Report/ExposureDrilldown.vue","webpack:///./src/components/Report/ExposureDrilldown.vue?256f","webpack:///./src/components/Report/ExposureDrilldown.vue","webpack:///./src/components/VonapToolbarLabel.vue?eaf2","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/align-point.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/align.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/add-scroll.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/apply-location-offset.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/owner-document.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/window.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/document.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/scrollbar-width.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/window-viewport.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/bounding-offset.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/offset-parent.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/is-body-offset.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/offset.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/parents.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/scroll-position.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/element-scroll-position.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/parent-scroll-position.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/position.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/offset-parent-scroll-position.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/position-with-scroll.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/remove-scroll.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/collision.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/restrict-to-view.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/siblings.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/sibling-container.js","webpack:///./node_modules/@progress/kendo-popup-common/dist/es/main.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/default-data.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/common/is-string.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/error-details.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/errors.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/info.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/common/constants.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/territory.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/date-field-name.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/date-format-names.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/parse-range-date.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/currency.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/constants.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/first-day.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/weekend-range.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/cldr/number-symbols.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/numbers/format-currency-symbol.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/numbers/group-integer.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/numbers/is-currency-style.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/common/pad.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/common/round.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/numbers/standard-number-format.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/numbers/custom-number-format.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/numbers/format-options.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/numbers/format-number.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/common/is-number.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/numbers/parse-number.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/common/format-string.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/dates/date-pattern.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/dates/date-name-type.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/dates/format-names.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/common/is-date.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/dates/constants.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/dates/format-date.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/dates/time-utils.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/dates/parse-date.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/dates/split-date-format.js","webpack:///./node_modules/@telerik/kendo-intl/dist/es/format.js","webpack:///./node_modules/@progress/kendo-vue-intl/dist/es/Intl/IntlService.js","webpack:///./node_modules/@progress/kendo-vue-intl/dist/es/Intl/IntlProvider.js","webpack:///./node_modules/@progress/kendo-vue-intl/dist/es/Intl/main.js","webpack:///./node_modules/@progress/kendo-vue-intl/dist/es/Localization/messages.js","webpack:///./node_modules/@progress/kendo-vue-intl/dist/es/Localization/LocalizationService.js","webpack:///./node_modules/@progress/kendo-vue-intl/dist/es/Localization/LocalizationProvider.js","webpack:///./node_modules/@progress/kendo-vue-intl/dist/es/Localization/main.js","webpack:///./node_modules/@progress/kendo-vue-intl/dist/es/intlUtils.js","webpack:///./node_modules/@progress/kendo-vue-intl/dist/es/main.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticStyle","attrs","selectedDate","on","selectedDateChanged","staticRenderFns","prop","data","mounted","reportDate","value","$emit","computed","methods","$store","dispatch","component","$","kendo","jQuery","getDashboard","dashboardId","asOfDate","sectorId","axios","get","params","emitEvent","eventArgs","parent","postMessage","location","protocol","host","loadModules","components","Promise","resolve","unorderedIndex","all","map","index","resolveModule","module","file","replace","then","name","message","progress","Math","floor","length","modules","orderedModules","filter","x","sort","a","b","isChart","test","shouldSetSideBySide","el","getComponentByIndex","fitInOnePage","renderComponents","$printArea","clientId","reject","sectorName","item","setSideBySide","prevComponent","append","text","appendTo","$component","$row","$col","halfContainers","find","titleLabel","css","removeClass","addClass","subTitleLabel","$container","note","default","nbMonths","ccyPairId","quarterView","quarterly","dataInstruments","chartData","dataInstrumentIds","ccyPairIds","marketId","catch","error","dashboard","clientTemplate","processTemplate","template","clientLogoUrl","masterLogoUrl","dashboardTitle","description","dashboardNote","pageFooterTemplate","languageId","html","disclaimer","odd","each","add","wrapAll","generatePdf","dashboardName","errorThrown","status","String","variables","match","drawing","drawDOM","paperSize","margin","left","right","top","bottom","forcePageBreak","keepTogether","landscape","repeatHeaders","group","pdf","saveAs","loadIframe","progressCallback","Date","tzOffset","getTimezoneOffset","localISODate","toISOString","slice","reportUrl","iframe","receiveMessage","window","removeEventListener","addEventListener","load","drillDownParams","isReadOnly","drilldownOpen","$event","periodChange","forecastDate","forecastDateDataSource","onForecastDateChange","onForecastDateDataBound","directives","rawName","expression","analystEmailChanged","model","callback","$$v","analystEmail","responsibleEmailChanged","responsibleEmail","ccyPairs","ccyPair","changeSelectedCcy","clients","reportLayout","changeReportLayout","_v","_s","lastProcessLabel","ref","mixins","security","PageToolbar","VonapToolbarLabel","AnalystEmail","ResponsibleEmail","ExposureDrilldown","DropDownList","PeriodControl","$el","drilldownClick","beforeDestroy","masterExposureGrid","destroy","startDate","endDate","DataSource","transport","read","url","type","gridColumns","localStorage","getItem","clientName","fromDate","toDate","divisionId","foreignCcyIsFx","optionValue","historicalView","unitId","ratio","columnType","refreshGrid","createGrid","sender","trigger","getCcyPairs","getDynamicColumns","allColumns","push","getGridColumns","getGridDetailColumns","getDynamicFields","flowTypeId","CcyPairId","CcyPairCode","periodCode","TotalActiveOrders","forEach","fields","column","columnName","field","editable","defaultValue","validation","getDataItem","validColumns","Value","forecastItems","newDataItem","dataItem","detailInit","forecastOaDate","vm","ClientId","reportLayoutClientId","target","className","ForecastDate","classNames","args","_i","arguments","arg","Array","isArray","apply","Object","keys","key","idx","join","guid","i","random","id","toString","Keys","backspace","tab","enter","shift","esc","space","pageUp","pageDown","end","home","up","down","delete","Boolean","document","createElement","noop","getListeners","v3","listeners","startsWith","$attrs","$listeners","__assign","assign","t","s","n","p","prototype","hasOwnProperty","call","allVue","gh","h","templateRendering","scopedSlot","$slots","toLowerCase","$scopedSlots","getTemplate","_a","events","props","componentOptions","defaultRendering","defaultSlots","additionalProps","additionalListeners","swapDefaultSlots","passedProps","transformListeners","hasComponentOptions","defaultListeners","defaultProps","propsData","newListeners","listenersKeys","currentKey","charAt","toUpperCase","getDefaultSlots","LightGray","Gray","Blue","Green","LightBlue","Red","webpackAsyncContext","req","ids","__webpack_require__","e","Error","code","exports","chartColors","fnColor","refresh","close","preventDefault","sendMail","staticClass","templateDataSource","templateId","dealDataSource","onSave","amountEditor","amountTemplate","v","onSendFromChange","sendFrom","sendTo","sendCc","sendSubject","analystEmailsDataSource","emailSignature","sendInstructionsEmail","saveEmailParams","togglePreview","sending","_e","actualDrawDownParams","drawDownEmailPreviewVisible","show","fromEmail","toEmail","subject","domProps","VonapWindow","formParams","set","watch","newVal","getData","VCard","VContainer","DrawDownEmailPreview","selectedOperations","schema","operationId","amount","complete","operationModel","clientEmail","sendingMessageId","sendingMessageName","sendingMessageData","contentType","sendComments","optionDataSource","showTransactionsPanel","changeSendingMessageVisible","testMode","getFormParams","ccEmail","drawDownDate","drawDownItems","onTestModeChange","fullPartialTemplate","FullPartial","values","$nextTick","VBtn","VCardActions","VDivider","VFlex","VForm","VIcon","VLayout","VProgressCircular","VSpacer","VSwitch","VTextField","element","wnd","ownerDocument","defaultView","computedStyles","getComputedStyle","marginTop","parseFloat","marginBottom","offsetHeight","marginLeft","marginRight","offsetWidth","styles","outerHeight","outerWidth","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","Transition","util","AnimationChild","in","transitionName","required","transitionStyle","componentChildClassName","appear","exit","transitionEnterDuration","Number","transitionExitDuration","mountOnEnter","unmountOnExit","animationEnteringStyle","animationEnteredStyle","animationExitingStyle","animationExitedStyle","created","animationStep","setup","elementRef","undefined","_element","$refs","onBeforeEnter","animatedElement","onEnter","onAfterEnter","onBeforeLeave","onLeave","onAfterLeave","_this","$props","defaultSlot","hasChildren","transitionTag","childAnimationContainerClassNames","enterDuration","exitDuration","defaultStyle","transitionDelay","transitionDuration","animationStyle","entering","entered","exiting","exited","childElementStyles","duration","leave","rendererChildren","style","appearClass","appearToClass","enterClass","enterToClass","leaveClass","leaveToClass","appearFromClass","enterFromClass","leaveFromClass","Animation","childFactory","tag","onEntering","onEntered","onExit","onExiting","onExited","parentDivClass","stackChildren","componentChildStyle","onBeforeenter","EXITING_ANIMATION_STYLE","position","Slide","direction","eitherRect","rect","offset","height","width","replaceOffset","result","removeStackingOffset","stackingOffset","isDocumentAvailable","body","isWindowAvailable","OVERFLOW_REGEXP","overflowStyle","overflow","overflowX","overflowY","scrollableParents","parentElements","parentElement","FRAME_DURATION","hasRelativeStackingContext","transform","innerHTML","appendChild","isDifferent","children","getBoundingClientRect","removeChild","HAS_RELATIVE_STACKING_CONTEXT","anchor","container","sibling","concat","reduce","zIndexStyle","zIndex","current","parseInt","CollisionType","fit","flip","AlignPoint","center","throttle","func","wait","options","timeout","context","previous","later","leading","getTime","throttled","now","remaining","clearTimeout","trailing","setTimeout","AlignService","_dom","alignElement","settings","anchorAlign","elementAlign","fixedMode","hasOffsetParent","anchorRect","absoluteRect","relativeRect","align","elementRect","dom","stackingElementOffset","removedOffset","stackingScroll","stackingElementScroll","withScroll","addScroll","scrollPosition","elementScrollPosition","removeScroll","scrollX","pageXOffset","scrollY","pageYOffset","y","DOMService","addOffset","addition","boundingOffset","getWindow","isBodyOffset","offsetParentEl","offsetParent","nodeName","staticOffset","currentOffset","popup","parentSibling","relativeOffset","currentLocation","scroll","restrictToView","relativeContextElement","getRelativeContextElement","scrollLeft","scrollTop","stackingElementViewPort","scrollHeight","scrollWidth","useRelativePosition","windowViewPort","zoomLevel","documentElement","clientWidth","innerWidth","toFixed","isZoomed","PositionService","positionElement","collisions","viewPort","initialElementRect","flipped","DEFAULT_OFFSET","ANIMATION_CONTAINER_SHOWN","K_POPUP","Popup","popupClass","collision","horizontal","vertical","popupAlign","animate","transition","mountedAppendTo","mountedAnchor","_flipped","_offsetTop","_offsetLeft","_exitingAnimation","_prevShow","_domService","_alignService","_positionService","reposition","bind","getParentRef","_parentElement","updated","destroyed","detachRepositionHandlers","unmounted","beforeUnmount","onOpened","classList","attachRepositionHandlers","onClosing","remove","onClosed","$forceUpdate","openDuration","closeDuration","$parent","kendoAnchorRef","anchorElement","alignedOffset","calculatePosition","appendToElement","root","internalClass","class","domClass","newPosition","firstChild","parentNode","_scrollableParents","defaultAppentTo","_b","ListContainer","dir","popupSettings","onMouseDown","onBlur","onOpen","onClose","open","onMousedown","onFocusout","ListFilter","inputRef","onKeyDown","onChange","input","onInput","onKeydown","isPresent","sameCharsOnly","word","character","shuffleData","splitIndex","defaultItem","matchText","ignoreCase","temp","scrollToItem","scrollElem","itemHeight","itemIndex","translate","virtualScroll","viewportHeight","itemOffsetTop","diff","itemIndexStartsWith","items","itemText","getItemValue","getItemIndexByText","textField","matchCase","casing","findIndex","path","split","data_1","areSame","item1","item2","getFocusedItem","selectedIndex","suggested","suggestedItem","suggestedText","substring","preventDefaultNonInputs","event","ListDefaultItem","selected","onClick","ListItem","focused","handleClick","role","click","nodata","clear","messages","inject","List","dataItems","valueField","optionsGuid","wrapperCssClass","wrapperStyle","listStyle","skip","focusedIndex","highlightSelected","itemRender","Function","noDataRender","kendoLocalizationService","listRef","list","localizationService","renderNoValueElement","noDataElement","toLanguageString","renderItems","realIndex","onItemclick","unselectable","maxHeightIE","VirtualScroll","containerHeight","total","enabled","pageSize","prevScrollPos","listTranslate","scrollSyncing","scrollerRef","vs","setAttribute","calcScrollElementHeight","heightChanged","min","newHeight","scrollElement","scrollHandler","defineProperty","enumerable","configurable","changePage","newSkip","max","PageChange","take","translateTo","dY","reset","scrollToEnd","localScrollUp","targetTranslate","additionalOnTop","validateTranslate","localScrollDown","itemsLenght","scrollNonStrict","floatItemIndex","prev","Navigation","navigate","keyCode","next","step","DropDownBase","navigation","handleItemClick","state","initState","handleItemSelect","togglePopup","applyState","handleFocus","currentFocused","filterChanged","filterable","operator","opened","currentOpened","calculatePopupWidth","pageChange","page","triggerOnPageChange","scrollToVirtualItem","virtual","selectedItemIndex","listBoxId","didMount","popupWidth","shouldUpdate","calculateDir","dirCalculated","wrapper","vsEnabled","newValue","computedValue","eventData","triggerPageChangeCornerItems","dataItemKey","validityStyles","VALIDATION_MESSAGE","modelValue","label","placeholder","valid","validate","validationMessage","delay","iconClassName","valueRender","valueMap","disabled","tabIndex","accessKey","loading","listNoDataRender","focusedItemIndex","header","footer","ariaLabelledBy","ariaDescribedBy","hasMounted","currentText","currentValue","searchState","last","_skipFocusEvent","valueDuringOnChange","_navigated","_","oldValue","prevCurrentOpened","prevOpened","prevValue","prevCurrnetValue","_newValue","_oldValue","virtualTotalHasChanged","virtualHasChanged","base","selectRef","baseWrapperRef","select","baseWrapper","setValidity","opening","filterInput","scroller","onPopupOpened","selectedItem_1","prevSelectedItem","selectedItemChanged","spanClassNames","isValid","validity","focus","customError","valueMissing","newSelected","triggerOnChange","onNavigate","newIndex","search","typingTimeout","selectNext","mappedData","isInLoop","dataLength","startIndex","loopMatch","nextMatch","handleKeyDown","homeOrEndKeys","upOrDownKeys","shouldOpen","altKey","shouldClose","leftOrRightKeys","shouldNavigate","handleBlur","handleDefaultItemClick","handleWrapperClick","handleKeyPress","fromCharCode","charCode","handleListFilterChange","focusElement","onPopupClosed","filterText","hasSelected","setCustomValidity","dummySelect","title","opacity","border","renderDropDownWrapper","valueDefaultRendering","valueElement","$data","onKeypress","renderDefaultItem","onDefaultitemclick","renderList","float","maxHeight","onListclick","renderListFilter","renderScrollWrapper","onScroll","renderScrollElement","renderListContainer","_this2","headerTemplate","footerTemplate","dropdownlist","onFocusin","SearchBar","emits","size","readOnly","expanded","owns","activedescendant","describedby","clearButton","prevSuggestedText","valueChanged","deleting","endsWith","activeElement","setSelectionRange","onFocus","clearButtonClick","autoComplete","ClearButton","onClickHandler","usersClientDataSource","_t","dealId","showDealForm","dealTypeId","reportParameters","readUrl","exportUrl","openDealForm","drawdownModalVisible","scheduleModalVisible","closeScheduleDeliveryModal","exportToExcel","getSelectedRows","dataSource","onGridDataBound","openDealTemplate","deliveryScheduleLinkTemplate","dealLinkClick","number","sector","hedgeType","division","counterparty","leg","product","tradeDate","settlementDate","maturityDate","hedgeMonth","buySell","undeliveredAmount","amountCcy1","hedgeAmount","gainLoss","ccy1","hedgeRate","collarRate","amountCcy2","otherBarrier","ccy2","reference","isExercised","lastModified","lastUser","isFuture","canDrawDown","aggregate","grid","gridData","view","exposureDrillDownGrid","kendoWidget","row","lockedTable","uid","selectedIds","href","closeDrawdownModal","DealForm","DrawdownForm","ScheduleDeliveryForm","showExposureDrillDown","OtcExposureDrilldown","anchorHorizontal","anchorVertical","elementHorizontal","elementVertical","horizontalMargin","verticalMargin","middle","round","applyLocationOffset","isOffsetBody","getDocument","cachedWidth","scrollbarWidth","div","cssText","windowViewport","win","innerHeight","clientHeight","viewport","rectOfHiddenElement","display","until","parentScrollPosition","elementStyles","useRelative","parentOffset","parentStyles","borderTopWidth","borderLeftWidth","offsetParentElement","scale","ref$1","positionScale","viewPortSize","output","anchorSize","anchorAlignPoint","elementAlignPoint","isPositionCentered","isOriginCentered","marginToAdd","isBeforeAnchor","elementTop","elementLeft","elementHeight","elementWidth","viewPortHeight","viewPortWidth","isHorizontalFlip","isVerticalFlip","flippedHorizontal","flippedVertical","firstElementChild","nextElementSibling","siblingElements","parents","containerElement","siblings","defaultData","en","identity","version","_number","_cldrVersion","language","territory","numbers","symbols","decimal","percentSign","plusSign","minusSign","exponential","superscriptingExponent","perMille","infinity","nan","timeSeparator","patterns","groupSize","scientific","percent","currency","currencies","BGN","displayName","symbol","EUR","USD","localeCurrency","accounting","calendar","gmtFormat","gmtZeroFormat","d","D","m","M","Y","F","g","G","T","u","dateTimeFormats","full","long","medium","short","availableFormats","Bh","Bhm","Bhms","E","EBhm","EBhms","Ed","Ehm","EHm","Ehms","EHms","Gy","GyMMM","GyMMMd","GyMMMEd","H","hm","Hm","hms","Hms","hmsv","Hmsv","hmv","Hmv","Md","MEd","MMM","MMMd","MMMEd","MMMMd","ms","yM","yMd","yMEd","yMMM","yMMMd","yMMMEd","yMMMM","yQQQ","yQQQQ","timeFormats","dateFormats","days","format","abbreviated","narrow","wide","months","quarters","dayPeriods","midnight","am","noon","pm","morning1","afternoon1","evening1","night1","eras","dateFields","era","year","quarter","month","week","day","weekday","dayperiod","hour","minute","second","zone","supplemental","likelySubtags","currencyData","region","US","_from","weekData","firstDay","weekendStart","weekendEnd","isString","formatRegExp","IntlError","formatMessage","len","flattenValues","flatten","formattedMessage","arr","toIntlErrors","errors","predicate","availableLocaleInfo","fullName","suffixes","parts","script","cldr","localeFullName","getLocaleInfo","locale","info","NoLocale","DECIMAL","CURRENCY","ACCOUNTING","PERCENT","SCIENTIFIC","CURRENCY_PLACEHOLDER","PERCENT_PLACEHOLDER","NUMBER_PLACEHOLDER","LIST_SEPARATOR","GROUP_SEPARATOR","POINT","EMPTY","DEFAULT_LOCALE","territoryFromName","likelyName","part","variant","splice","localeTerritory","dateFieldName","NoDateFieldNames","fieldNameInfo","nameType","lowerArray","lowerObject","obj","cloneLower","dateFormatNames","standAlone","lower","formatType","lowerNameType","formatNames","parseRangeDate","NoCurrency","NoCurrencyDisplay","NoSupplementalCurrency","NoCurrencyRegion","NoValidCurrency","DEFAULT_CURRENCY_FRACTIONS","SYMBOL","INVALID_CURRENCY_CODE","GLOBAL_CURRENCIES","getCurrencyInfo","throwIfNoValid","currencyDisplayInfo","lengthComparer","regionCurrency","regionCurrencies","latestValidUntil","latestValidUntilRange","latestStillValid","latestStillValidDate","_tender","_to","validFrom","validTo","to","from","stillValidDate","currencyDisplays","currencyInfo","displays","currencyDisplay","currencyFractionOptions","minimumFractionDigits","maximumFractionDigits","fractions","_digits","territoryCurrencyCode","currencyCode","DAYS_OF_WEEK","DEFAULT_TERRITORY","NoWeekData","NoFirstDay","isNaN","numberSymbols","formatCurrencySymbol","groupInteger","start","decimalIndex","groupSizes","integerEnd","integer","integerLength","newGroupSize","reverse","isCurrencyStyle","pad","digits","count","padString","MAX_PRECISION","precision","decimals","DEFAULT_DECIMAL_ROUNDING","DEFAULT_PERCENT_ROUNDING","trailingZeroRegex","fractionOptions","currencyFractions","isCurrency","applyPattern","pattern","ch","currencyUnitPattern","standardNumberFormat","toExponential","negative","fraction","minimumIntegerDigits","formattedValue","useGrouping","PLACEHOLDER","SHARP","ZERO","literalRegExp","trailingZerosRegExp","trailingPointRegExp","commaRegExp","setFormatLiterals","formatOptions","literals","quoteChar","literal","trimTrailingZeros","lastZero","trimRegex","RegExp","roundNumber","zeroIndex","lastIndexOf","sharpIndex","hasZero","hasSharp","abs","trailingZeros","isConstantFormat","setValueSpecificFormat","hasNegativeFormat","zeroFormat","constant","setStyleOptions","setGroupOptions","hasGroup","placeholderIndex","index1","index2","setPlaceholderIndices","lastZeroIndex","replaceStyleSymbols","replaceLiterals","replacePlaceHolders","replacement","applyCustomFormat","customNumberFormat","standardFormatRegExp","standardFormatOptions","formatAndPrecision","exec","formatNumber","isFinite","isNumber","exponentRegExp","nonBreakingSpaceRegExp","cleanNegativePattern","cleanCurrencyNumber","includes","cleanNumber","parseNumber","isPercent","negativeSignIndex","isNegative","negativeCurrency","newNumber","formatString","REMOVAL_PENALTY","ADDITION_PENALTY","LENGHT_DELTA","LONG_LESS_PENALTY_DELTA","SHORT_LESS_PENALTY_DELTA","SHORT_MORE_PENALTY_DELTA","LONG_MORE_PENALTY_DELTA","PENALTIES","VALUE_FORMAT_LENGTH","numeric","TIME_SPECIFIERS_REGEX","getHourSpecifier","hour12","DATE_OPTIONS_MAP","specifier","getSpecifier","STAND_ALONE_SPECIFIERS","Q","specifiersRegex","resolvedFormats","getSpecifierRegex","skeletonSpecifiers","skeleton","findBestMatch","specifiers","bestMatches","specifiersLength","maxScore","MAX_VALUE","matches","currentFormat","score","specifierRegex","delta","idx$1","bestMatch","matchSpecifier","cacheFormat","skeletonFormat","timeStartIndex","dateSkeleton","substr","timeSkeleton","skeletonFromOptions","option","spcifier","repeat","datePattern","datetime","date","time","dateNameType","formatLength","isFunction","fun","isDate","getMonth","MONTH","HOUR","ZONE","WEEKDAY","QUARTER","DATE_FIELD_MAP","dateFormatRegExp","formatDayOfWeekIndex","localeInfo","dayIndex","firstDayIndex","formatMonth","formatQuarter","formatTimeZone","shortHours","optionalMinutes","separator","localizedName","zZeroOffset","sign","hoursMinutes","minutes","localizedFormat","formatDayOfWeek","getDay","formatters","formatDate","convertTimeZone","fromOffset","toOffset","fromLocalOffset","offsetDate","toLocalOffset","adjustDST","hours","getHours","setHours","getDate","L","getFullYear","k","K","getMinutes","getSeconds","S","milliseconds","getMilliseconds","z","Z","X","c","q","timeZoneOffsetRegExp","dateRegExp","offsetRegExp","numberRegExp","2","3","4","numberRegex","standardDateFormats","FORMATS_SEQUENCE","TWO_DIGIT_YEAR_MAX","outOfRange","lookAhead","getNumber","regex","valueIdx","getIndexByName","names","nameLength","subValue","matchLength","matchIdx","checkLiteral","calendarGmtFormats","NoGMTInfo","parseTimeZoneOffset","noSeparator","zLiteral","UTC","hoursMatch","minutesMatch","hoursOffset","minutesOffset","parseMonth","parseDayOfWeek","dayOfWeek","parsers","createDate","seconds","pmHour","hasTime","setFullYear","parseExact","invalid","parseMicrosoftDateOffset","parseMicrosoftDateFormat","tzoffset","defaultFormats","formats","parseDate","parseValue","trim","parseFormats","currentYear","periodFormats","shortFormat","NAME_TYPES","minLength","LITERAL","addLiteral","lastPart","isHour12","splitDateFormat","lastIndex","patternLength","placeholderFormat","IntlService","provide","IntlProvider","getChildContext","intlService","newLocale","kendoIntlService","getIntlService","vue","create","LocalizationService","LocalizationProvider","newLanguage","getLocalizationService","provideIntlService","intlServiceFromContext","some","provideLocalizationService","localizationServiceFromContext"],"mappings":"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AAK,UACLpC,EAAG,IACHqC,GAAI,MACJC,IAAK,SACLC,IAAK,MACLC,KAAM,QACNC,MAAO,WACPC,MAAO,SACP,kBAAmB,qBACnB,oBAAqB,qBACrBC,GAAI,QACJlmB,EAAG,IACHmmB,GAAI,MACJC,IAAK,QACLC,KAAM,WACNC,KAAM,QACNC,MAAO,WACPC,OAAQ,cACRC,MAAO,SACPC,KAAM,QACNC,MAAO,SACP,eAAgB,kBAChB,iBAAkB,oBAG1BC,YAAa,CACT7C,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAEX2C,YAAa,CACT9C,KAAM,kBACNC,KAAM,YACNC,OAAQ,WACRC,MAAO,UAEX4C,KAAM,CACFC,OAAQ,CACJC,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ/C,MAAO,CACH,KACA,KACA,KACA,KACA,KACA,KACA,MAEJgD,KAAM,CACF,SACA,SACA,UACA,YACA,WACA,SACA,aAGR,cAAe,CACXF,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ/C,MAAO,CACH,KACA,KACA,KACA,KACA,KACA,KACA,MAEJgD,KAAM,CACF,SACA,SACA,UACA,YACA,WACA,SACA,cAIZC,OAAQ,CACJJ,OAAQ,CACJC,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAM,CACF,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGR,cAAe,CACXF,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAM,CACF,UACA,WACA,QACA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","file":"js/reports~sitemap.6a83b07a.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('kendo-datepicker',{staticStyle:{\"width\":\"120px\"},attrs:{\"value\":_vm.selectedDate,\"format\":'yyyy-MM-dd'},on:{\"change\":_vm.selectedDateChanged}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportDatePicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportDatePicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ReportDatePicker.vue?vue&type=template&id=4fb264de&\"\nimport script from \"./ReportDatePicker.vue?vue&type=script&lang=js&\"\nexport * from \"./ReportDatePicker.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import axios from 'axios'\nimport template from './dashboard-template.html'\n\nconst $ = kendo.jQuery\n\nasync function getDashboard(dashboardId, asOfDate, sectorId) {\n const {data} = await axios.get('/api/report/Dashboard', {\n params: {\n dashboardId: dashboardId,\n asOfDate: asOfDate,\n sectorId: sectorId,\n },\n })\n\n return data\n}\n\nfunction emitEvent(eventArgs) {\n parent.postMessage(eventArgs, location.protocol + '//' + location.host)\n}\n\nfunction loadModules(components) {\n return new Promise(function(resolve) {\n let unorderedIndex = 0\n Promise.all(\n components.map(function(component, index) {\n return new Promise(function(resolveModule) {\n if (component.module) {\n const file = component.module.replace('.js', '')\n import('../../dashboard-components/' + file + '.js').then(function(module) {\n emitEvent({\n name: 'loading',\n message: 'Loading reporting modules',\n progress: Math.floor((unorderedIndex++ / components.length) * 100),\n })\n\n resolveModule({\n component: component,\n index: index,\n module: module,\n })\n })\n } else {\n resolveModule({\n index: index,\n module: null,\n })\n }\n })\n }),\n ).then(function(modules) {\n const orderedModules = modules\n .filter(function(x) {\n return x.module != null\n })\n .sort(function(a, b) {\n if (a.index > b.index) {\n return 1\n } else if (a.index < b.index) {\n return -1\n }\n return 0\n })\n\n resolve(orderedModules)\n })\n })\n}\n\nfunction isChart(component) {\n return /chart/i.test(component.module)\n}\n\nfunction shouldSetSideBySide(index, components) {\n var el = getComponentByIndex(index, components)\n return el && isChart(el.component) && !el.component.fitInOnePage\n}\n\nfunction getComponentByIndex(index, components) {\n return components.filter(function(el) {\n return el.index == index\n })[0]\n}\n\nfunction renderComponents($printArea, asOfDate, components, clientId) {\n return new Promise(function(resolve, reject) {\n loadModules(components).then(function(modules) {\n let sectorName = null\n let unorderedIndex = 0\n Promise.all(\n modules.map(item => {\n return new Promise(resolveModule => {\n var module = item.module,\n component = item.component,\n setSideBySide = shouldSetSideBySide(item.index, modules)\n\n if (sectorName != component.sectorName) {\n sectorName = component.sectorName\n var prevComponent = components[item.index - 1]\n if (item.index != 0 && prevComponent != null && !prevComponent.fitInOnePage) {\n $printArea.append('
')\n }\n\n $('
')\n .text(sectorName)\n .appendTo($printArea)\n }\n\n var $component = $('
').appendTo($printArea),\n $row = $('
').appendTo($component),\n $col = $('
').appendTo($row),\n halfContainers = $printArea.find('.col-md-6').length\n\n $('
' + component.titleLabel + '
').appendTo($col)\n\n if (component.fitInOnePage && !isChart(component)) {\n $row.css('min-height', '450px')\n }\n\n if (\n setSideBySide &&\n ((shouldSetSideBySide(item.index - 1, modules) && halfContainers % 2 != 0) ||\n (shouldSetSideBySide(item.index + 1, modules) && halfContainers % 2 == 0))\n ) {\n $row.removeClass('row').addClass('chartRow')\n $col.removeClass('col-md-12').addClass('col-md-6')\n }\n\n if (component.subTitleLabel) {\n $('
' + component.subTitleLabel + '
').appendTo(\n $col,\n )\n }\n\n var $container = $('
').appendTo($col)\n\n if (component.note) {\n $('
' + component.note + '
').appendTo($col)\n }\n module.default\n .render($container, {\n asOfDate: asOfDate,\n sectorId: component.sectorId,\n nbMonths: component.nbMonths,\n ccyPairId: component.ccyPairId || 0,\n quarterView: component.quarterly || false,\n dataInstruments: component.chartData.dataInstrumentIds,\n ccyPairIds: component.chartData.ccyPairIds,\n marketId: component.chartData.marketId,\n clientId,\n })\n .then(function() {\n emitEvent({\n name: 'rendering',\n message: `Rendering: ${component.component}`,\n progress: Math.floor((unorderedIndex++ / modules.length) * 100),\n })\n\n resolveModule()\n })\n .catch(error => {\n reject(error)\n })\n })\n }),\n ).then(function() {\n resolve()\n })\n })\n })\n}\n\nfunction render($printArea, dashboardId, asOfDate, sectorId) {\n return new Promise(function(resolve, reject) {\n getDashboard(dashboardId, asOfDate, sectorId).then(function(dashboard) {\n renderComponents($printArea, asOfDate, dashboard.components, dashboard.clientId)\n .then(function() {\n var clientTemplate = processTemplate(template, {\n clientLogoUrl: `/api/config/Client/getLogo?clientId=${dashboard.clientId || 0}`,\n // url.action('GetLogo', 'Client') + '?clientId=' + (dashboard.ClientId || 0),\n masterLogoUrl: `/api/config/Client/getLogo?clientId=0`,\n dashboardTitle: dashboard.description,\n dashboardNote: dashboard.note,\n pageFooterTemplate:\n dashboard.languageId == 1\n ? 'Page #:pageNum# of #:totalPages#'\n : 'Page #:pageNum# de #:totalPages#',\n })\n\n $('
').appendTo($printArea)\n $('

')\n .html(dashboard.disclaimer)\n .appendTo($printArea)\n\n // Wrap half container pairs in a row\n var odd = $('div.col-md-6:odd')\n $('div.col-md-6:even').each(function(index) {\n $(this)\n .add(odd.get(index))\n .wrapAll('
')\n })\n\n generatePdf($printArea, clientTemplate, dashboard.dashboardName).then(() => resolve())\n })\n .catch(error => {\n reject(error)\n })\n })\n }).catch(error => {\n const message = error.errorThrown || error.status || String(error)\n emitEvent({\n name: 'error',\n message,\n })\n })\n}\n\nfunction processTemplate(template, variables) {\n return template.replace(/\\${(\\w+)}/g, function(match, name) {\n return variables[name] || name\n })\n}\n\nfunction generatePdf($printArea, template, dashboardName) {\n return kendo.drawing\n .drawDOM($printArea, {\n paperSize: 'A4',\n margin: {\n left: '15mm',\n right: '15mm',\n top: '25.4mm',\n bottom: '25.4mm',\n },\n forcePageBreak: '.page-break',\n keepTogether: '.component',\n landscape: true,\n repeatHeaders: true,\n template: template,\n })\n .then(function(group) {\n kendo.drawing.pdf.saveAs(group, dashboardName + '.pdf')\n\n emitEvent({\n name: 'saveComplete',\n })\n })\n}\n\nfunction loadIframe(dashboardId, asOfDate, sectorId, progressCallback) {\n return new Promise(function(resolve, reject) {\n if (asOfDate instanceof Date) {\n const tzOffset = asOfDate.getTimezoneOffset() * 60000\n const localISODate = new Date(asOfDate - tzOffset).toISOString().slice(0, 10)\n asOfDate = localISODate\n }\n const reportUrl = `/dashboard.html?asOfDate=${asOfDate}&dashboardId=${dashboardId}§orId=${sectorId}`\n let iframe = $('#pdfExportIframe')\n if (iframe.length == 0) {\n iframe = $(\n ``,\n ).appendTo('body')\n }\n\n const receiveMessage = ({data}) => {\n if (data.name == 'error') {\n window.removeEventListener('message', receiveMessage)\n reject(data)\n } else if (data.name == 'saveComplete') {\n // cleanup\n window.removeEventListener('message', receiveMessage)\n resolve(data)\n } else {\n if (typeof progressCallback == 'function') {\n progressCallback(data)\n }\n }\n }\n\n window.addEventListener('message', receiveMessage)\n\n iframe.prop('src', reportUrl)\n })\n}\n\nexport default {\n load: function($printArea, dashboardId, asOfDate, sectorId) {\n return render($printArea, dashboardId, asOfDate, sectorId)\n },\n loadIframe,\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('exposure-drilldown',{attrs:{\"reportParameters\":_vm.drillDownParams,\"is-read-only\":_vm.isReadOnly,\"value\":_vm.drilldownOpen},on:{\"input\":function($event){_vm.drilldownOpen = $event}}}),_c('page-toolbar',{staticStyle:{\"height\":\"60px\"}},[_c('vonap-toolbar-label',{attrs:{\"label\":\"Position Date\"}},[_c('period-control',{staticStyle:{\"display\":\"inline\"},attrs:{\"show-all-year-item\":true,\"show-all-period-item\":true},on:{\"change\":_vm.periodChange}}),_c('kendo-dropdownlist',{staticStyle:{\"width\":\"132px\"},attrs:{\"value\":_vm.forecastDate,\"dataSource\":_vm.forecastDateDataSource,\"auto-bind\":false,\"data-value-field\":\"oaDate\",\"data-text-field\":\"date\"},on:{\"change\":_vm.onForecastDateChange,\"databound\":_vm.onForecastDateDataBound}})],1),_c('vonap-toolbar-label',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.clientId == 0),expression:\"clientId == 0\"}],attrs:{\"label\":\"Analyst\"}},[_c('analyst-email',{on:{\"change\":_vm.analystEmailChanged},model:{value:(_vm.analystEmail),callback:function ($$v) {_vm.analystEmail=$$v},expression:\"analystEmail\"}})],1),_c('vonap-toolbar-label',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.clientId == 0),expression:\"clientId == 0\"}],attrs:{\"label\":\"Responsible\"}},[_c('responsible-email',{on:{\"change\":_vm.responsibleEmailChanged},model:{value:(_vm.responsibleEmail),callback:function ($$v) {_vm.responsibleEmail=$$v},expression:\"responsibleEmail\"}})],1),_c('vonap-toolbar-label',{attrs:{\"label\":\"Ccy Pair\"}},[_c('drop-down-list',{staticStyle:{\"width\":\"140px\"},attrs:{\"data-items\":_vm.ccyPairs,\"data-item-key\":\"ccyPairId\",\"text-field\":\"pairCodeDisplay\",\"value\":_vm.ccyPair},on:{\"change\":_vm.changeSelectedCcy}})],1),_c('vonap-toolbar-label',{attrs:{\"label\":\"Report Layout\"}},[_c('drop-down-list',{staticStyle:{\"width\":\"180px\"},attrs:{\"data-items\":_vm.clients,\"data-item-key\":\"clientId\",\"text-field\":\"clientName\",\"value\":_vm.reportLayout},on:{\"change\":_vm.changeReportLayout}})],1),_c('vonap-toolbar-label',{staticStyle:{\"width\":\"176px\"},attrs:{\"label\":\"Last Process Run\"}},[_c('label',{staticStyle:{\"width\":\"250px\",\"margin-right\":\"14px\",\"font-weight\":\"400\",\"top\":\"2px\",\"position\":\"relative\"}},[_vm._v(_vm._s(_vm.lastProcessLabel)+\"\\n \")])])],1),_c('div',{ref:\"masterExposureGrid\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MasterExposure.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MasterExposure.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MasterExposure.vue?vue&type=template&id=2574629e&\"\nimport script from \"./MasterExposure.vue?vue&type=script&lang=js&\"\nexport * from \"./MasterExposure.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MasterExposure.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : typeof arg === 'object'\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","/* tslint:disable:no-bitwise */\n/**\n * @hidden\n */\nvar guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\nexport { guid };\n","/**\n * @hidden\n */\nvar Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\nexport { Keys };\n","/**\n * @hidden\n */\nvar canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\nexport { canUseDOM };\n","/**\n * @hidden\n */\nvar noop = function () { };\nexport { noop };\n","/**\n * @hidden\n */\nexport function hasListener(eventName) {\n if (this.v3) {\n return Object.keys(this.$attrs).map(function (name) { return name.toLowerCase(); })\n .some(function (event) { return event.endsWith(eventName.toLowerCase()); });\n }\n else {\n return this.$listeners[eventName];\n }\n}\n/**\n * @hidden\n */\nexport function getListeners() {\n if (this.v3) {\n var listeners = {};\n for (var key in (this.$attrs)) {\n if (key.startsWith('on')) {\n listeners[key] = this.$attrs[key];\n }\n }\n return listeners;\n }\n else {\n return this.$listeners;\n }\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\n/**\n * @hidden\n */\nexport function templateRendering(template, listeners) {\n if (!template) {\n return undefined;\n }\n var scopedSlot = gh ?\n this.$slots[template] ||\n (template.toLowerCase ? this.$slots[template.toLowerCase()]\n : null) :\n this.$scopedSlots[template] ||\n (template.toLowerCase ? this.$scopedSlots[template.toLowerCase()]\n : null);\n // @ts-ignore\n if (typeof template === 'string' && scopedSlot) {\n // @ts-ignore\n return { type: 'slot', render: scopedSlot, listeners: listeners };\n }\n if (typeof template === 'string' || typeof template === 'object' ||\n (typeof template === 'function' && template.component)) {\n return { type: 'component', render: template, listeners: listeners };\n }\n return { type: 'renderFunction', render: template, listeners: listeners };\n}\n/**\n * @hidden\n */\nexport function getTemplate(_a) {\n var h = _a.h, template = _a.template, defaultRendering = _a.defaultRendering, defaultSlots = _a.defaultSlots, additionalProps = _a.additionalProps, additionalListeners = _a.additionalListeners, swapDefaultSlots = _a.swapDefaultSlots;\n if (!template) {\n return defaultRendering;\n }\n var events;\n var props;\n var componentOptions;\n if (gh) {\n var passedProps = defaultRendering ? defaultRendering.props : {};\n events = __assign(__assign({}, transformListeners(additionalListeners)), template.listeners);\n props = __assign(__assign({}, passedProps), additionalProps);\n componentOptions = __assign(__assign({}, props), events);\n }\n else {\n var hasComponentOptions = defaultRendering && defaultRendering.componentOptions;\n var defaultListeners = hasComponentOptions ?\n defaultRendering.componentOptions.listeners : {};\n var defaultProps = hasComponentOptions ?\n defaultRendering.componentOptions.propsData : {};\n events = __assign(__assign(__assign({}, defaultListeners), additionalListeners), template.listeners);\n props = __assign(__assign({}, defaultProps), additionalProps);\n componentOptions = { props: props, on: events };\n }\n if (template.type === 'slot') {\n return template.render({ props: props, listeners: events, methods: events,\n defaultSlots: defaultSlots })[0];\n }\n else if (template.type === 'renderFunction') {\n if (swapDefaultSlots) {\n return template.render(h, defaultRendering, defaultSlots, props, events);\n }\n return template.render(h, defaultRendering, props, events, defaultSlots);\n }\n else {\n return h(template.render, componentOptions, gh ? function () { return [defaultSlots]; } : [defaultSlots]);\n }\n}\n/**\n * @hidden\n */\nexport function transformListeners(listeners) {\n if (!listeners) {\n return listeners;\n }\n var newListeners = {};\n var listenersKeys = Object.keys(listeners);\n for (var i = 0; i < listenersKeys.length; i++) {\n var currentKey = listenersKeys[i];\n newListeners['on' + currentKey.charAt(0).toUpperCase() + currentKey.slice(1)] =\n listeners[currentKey];\n }\n return newListeners;\n}\n","/**\n * @hidden\n */\nexport function getDefaultSlots(component) {\n var defaultSlots = component.$slots.default;\n return (component.v3 && defaultSlots && typeof defaultSlots === 'function') ? defaultSlots() : defaultSlots;\n}\n","import { classNames } from './classNames';\nimport { guid } from './guid';\nimport { Keys } from './keys';\nimport { canUseDOM } from './canUseDOM';\nimport { focusFirstFocusableChild } from './focus';\nimport { clone, cloneArray, cloneValue, cloneObject, cloneDate } from './clone';\nimport { noop } from './noop';\nimport { hasListener, getListeners } from './listeners';\nimport { templateRendering, getTemplate } from './templateRendering';\nimport { getTabIndex } from './getTabIndex';\nimport { getDefaultSlots } from './defaultSlots';\nexport { classNames, guid, Keys, noop, getListeners, hasListener, canUseDOM, focusFirstFocusableChild, clone, cloneArray, cloneValue, cloneObject, cloneDate, getTemplate, templateRendering, getTabIndex, getDefaultSlots };\n","export default {\n LightGray: '#d3d0ce',\n Gray: '#787779',\n Blue: '#1a345d',\n Green: '#96c93c',\n LightBlue: '#99caea',\n Red: '#ff0000',\n}\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MasterExposure.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MasterExposure.vue?vue&type=style&index=0&lang=css&\"","var map = {\n\t\"./expiry-option-grid.js\": [\n\t\t\"797b\",\n\t\t\"chunk-2d0d7e63\"\n\t],\n\t\"./exposure-chart.js\": [\n\t\t\"b74b\",\n\t\t\"chunk-4c528384\"\n\t],\n\t\"./exposure-grid.js\": [\n\t\t\"2fc7\",\n\t\t\"chunk-2d0be69e\"\n\t],\n\t\"./exposure-gridV4.js\": [\n\t\t\"d5ef\",\n\t\t\"chunk-2d21e9a8\"\n\t],\n\t\"./heroux-exposure-chart.js\": [\n\t\t\"38da\",\n\t\t\"chunk-e63794f6\"\n\t],\n\t\"./heroux-exposure-grid.js\": [\n\t\t\"45ba\",\n\t\t\"chunk-2d0c1776\"\n\t],\n\t\"./last-next-transactions.js\": [\n\t\t\"8a78\",\n\t\t\"chunk-2d0e88c0\"\n\t],\n\t\"./market-data-chart.js\": [\n\t\t\"e9d7\",\n\t\t\"chunk-a8a29802\"\n\t],\n\t\"./order-last-next-transactions.js\": [\n\t\t\"64ac\",\n\t\t\"chunk-2d0cfc56\"\n\t],\n\t\"./product-hedge-distribution.js\": [\n\t\t\"12b8\",\n\t\t\"chunk-2d0aaeed\"\n\t],\n\t\"./product-hedge-distribution_chart.js\": [\n\t\t\"37d1\",\n\t\t\"chunk-33fb1569\"\n\t],\n\t\"./rates-chart.js\": [\n\t\t\"e54d\",\n\t\t\"chunk-a6f1f7d0\"\n\t],\n\t\"./undelivered-balance-grid.js\": [\n\t\t\"321d\",\n\t\t\"chunk-2d0b91e8\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"8998\";\nmodule.exports = webpackAsyncContext;","import fnColor from './finmetrix-colors'\n\nexport function chartColors() {\n return [\n fnColor.LightBlue,\n fnColor.Green,\n fnColor.LightGray,\n fnColor.Blue,\n fnColor.Gray,\n fnColor.Red,\n '#0F243E',\n '#16365C',\n '#366092',\n '#538DD5',\n '#8DB4E2',\n '#C6D9F1',\n '#DDD9C4',\n '#C4BD97',\n '#948A54',\n '#595331',\n '#494529',\n '#1D1B10',\n '#F2DCDB',\n '#E6B8B7',\n '#DA9694',\n '#BF4C49',\n '#963634',\n '#632523',\n '#71FFB1',\n '#00E266',\n '#00B050',\n '#007033',\n '#00602B',\n '#003A1A',\n '#D9D9D9',\n '#BFBFBF',\n '#A6A6A6',\n '#808080',\n '#595959',\n '#404040',\n '#0B5FA4',\n '#960224',\n ]\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vonap-window',{attrs:{\"transition\":\"dialog-scale-transition\",\"title\":\"Drawdown\",\"width\":\"920px\",\"height\":\"600px\",\"modal\":true,\"visible\":_vm.value},on:{\"success\":_vm.refresh,\"close\":_vm.close}},[_c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.sendMail($event)}}},[_c('v-card',{staticClass:\"mx-auto\"},[_c('v-container',{staticClass:\"py-2\",attrs:{\"fluid\":\"\",\"grid-list-sm\":\"\"}},[_c('v-layout',{staticStyle:{\"height\":\"50px\",\"padding-top\":\"8px\"},attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs6\":\"\"}},[_c('vonap-toolbar-label',{attrs:{\"label\":\"Drawdown Date:\"}},[_c('kendo-datepicker',{staticStyle:{\"width\":\"125px\",\"display\":\"inline-block\"},attrs:{\"format\":'yyyy-MM-dd'},model:{value:(_vm.asOfDate),callback:function ($$v) {_vm.asOfDate=$$v},expression:\"asOfDate\"}})],1)],1),_c('v-flex',{attrs:{\"xs6\":\"\"}},[_c('vonap-toolbar-label',{attrs:{\"label\":\"Template\"}},[_c('kendo-dropdownlist',{staticStyle:{\"width\":\"92px\"},attrs:{\"data-source\":_vm.templateDataSource,\"data-text-field\":'text',\"data-value-field\":'value'},model:{value:(_vm.templateId),callback:function ($$v) {_vm.templateId=$$v},expression:\"templateId\"}})],1)],1)],1),_c('kendo-grid',{attrs:{\"data-source\":_vm.dealDataSource,\"height\":200,\"editable\":true},on:{\"save\":_vm.onSave}},[_c('kendo-grid-column',{attrs:{\"field\":\"operationId\",\"title\":\"Trade Id\",\"width\":80}}),_c('kendo-grid-column',{attrs:{\"field\":\"description\",\"title\":\"Description\"}}),_c('kendo-grid-column',{attrs:{\"width\":\"150px\",\"field\":\"amount\",\"title\":\"Drawdown Amount\",\"format\":\"{0:n0}\",\"editor\":_vm.amountEditor,\"template\":_vm.amountTemplate}}),_c('kendo-grid-column',{attrs:{\"width\":\"100px\",\"field\":\"complete\",\"title\":\"Full/Partial\",\"template\":\"#= amount == leftToSettle ? 'Full' : 'Partial' # \"}})],1),_c('v-text-field',{attrs:{\"label\":\"Client Name\",\"readonly\":\"\"},model:{value:(_vm.clientName),callback:function ($$v) {_vm.clientName=$$v},expression:\"clientName\"}}),_c('v-text-field',{attrs:{\"type\":\"email\",\"label\":\"From:\",\"required\":\"\",\"rules\":[function (v) { return !!v || 'Email is required!'; }]},on:{\"change\":_vm.onSendFromChange},model:{value:(_vm.sendFrom),callback:function ($$v) {_vm.sendFrom=$$v},expression:\"sendFrom\"}}),_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('v-text-field',{attrs:{\"type\":\"email\",\"label\":\"To:\",\"required\":\"\",\"rules\":[function (v) { return !!v || 'Email is required!'; }]},model:{value:(_vm.sendTo),callback:function ($$v) {_vm.sendTo=$$v},expression:\"sendTo\"}})],1),_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('v-text-field',{attrs:{\"type\":\"email\",\"label\":\"CC:\",\"required\":\"\",\"rules\":[function (v) { return !!v || 'Email is required!'; }]},model:{value:(_vm.sendCc),callback:function ($$v) {_vm.sendCc=$$v},expression:\"sendCc\"}})],1),_c('v-text-field',{attrs:{\"type\":\"text\",\"label\":\"Subject:\",\"rules\":[function (v) { return !!v || 'Subject is required!'; }],\"counter\":\"114\"},model:{value:(_vm.sendSubject),callback:function ($$v) {_vm.sendSubject=$$v},expression:\"sendSubject\"}}),_c('v-divider'),_c('v-card-actions',[_c('v-flex',{attrs:{\"xs5\":\"\"}},[_c('vonap-toolbar-label',{attrs:{\"label\":\"Email Signature\"}},[_c('kendo-dropdownlist',{staticStyle:{\"width\":\"150px\"},attrs:{\"data-source\":_vm.analystEmailsDataSource,\"data-text-field\":'email',\"data-value-field\":'email'},model:{value:(_vm.emailSignature),callback:function ($$v) {_vm.emailSignature=$$v},expression:\"emailSignature\"}})],1)],1),_c('v-spacer'),_c('vonap-toolbar-label',[_c('v-switch',{attrs:{\"label\":\"Send instructions Email\"},model:{value:(_vm.sendInstructionsEmail),callback:function ($$v) {_vm.sendInstructionsEmail=$$v},expression:\"sendInstructionsEmail\"}})],1),_c('v-btn',{staticStyle:{\"width\":\"32px\",\"height\":\"32px\"},attrs:{\"small\":\"\",\"icon\":\"\",\"color\":\"blue primary\"},on:{\"click\":_vm.saveEmailParams}},[_c('v-icon',[_vm._v(\"save\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"blue primary\"},on:{\"click\":_vm.togglePreview}},[_c('v-icon',{staticStyle:{\"font-size\":\"16px\"}},[_vm._v(\"fa fa-binoculars\")])],1),_c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"blue primary\",\"disabled\":_vm.sending}},[(_vm.sending)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\"\\n Send\\n \")],1)],1)],1)],1)],1),_c('draw-down-email-preview',{attrs:{\"form-params\":_vm.actualDrawDownParams},on:{\"success\":function($event){_vm.drawDownEmailPreviewVisible = $event}},model:{value:(_vm.drawDownEmailPreviewVisible),callback:function ($$v) {_vm.drawDownEmailPreviewVisible=$$v},expression:\"drawDownEmailPreviewVisible\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('vonap-window',{attrs:{\"width\":\"1082px\",\"height\":\"632px\",\"title\":\"Email preview\",\"modal\":\"\"},on:{\"close\":_vm.close},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticStyle:{\"margin-bottom\":\"20px\"}},[_c('div',[_c('b',[_vm._v(\"Client: \")]),_c('span',[_vm._v(_vm._s(_vm.clientName))])]),_c('div',[_c('b',[_vm._v(\"From: \")]),_c('span',[_vm._v(_vm._s(_vm.fromEmail))])]),_c('div',[_c('b',[_vm._v(\"To: \")]),_c('span',[_vm._v(_vm._s(_vm.toEmail))])]),_c('div',[_c('b',[_vm._v(\"Subject: \")]),_c('span',[_vm._v(_vm._s(_vm.subject))])])]),_c('v-card',[_c('v-container',{staticStyle:{\"background-color\":\"#e3e3e3\"},attrs:{\"grid-list-xl\":\"\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.message)}})])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawDownEmailPreview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawDownEmailPreview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DrawDownEmailPreview.vue?vue&type=template&id=3d7b3d74&\"\nimport script from \"./DrawDownEmailPreview.vue?vue&type=script&lang=js&\"\nexport * from \"./DrawDownEmailPreview.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VContainer})\n","\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vuetify-loader/lib/loader.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawdownForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vuetify-loader/lib/loader.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawdownForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DrawdownForm.vue?vue&type=template&id=8ccf22aa&\"\nimport script from \"./DrawdownForm.vue?vue&type=script&lang=js&\"\nexport * from \"./DrawdownForm.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VContainer,VDivider,VFlex,VForm,VIcon,VLayout,VProgressCircular,VSpacer,VSwitch,VTextField})\n","var _a;\n/**\n * @hidden\n */\nexport var nodata = 'dropdowns.nodata';\n/**\n * @hidden\n */\nexport var clear = 'dropdowns.clear';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[clear] = 'clear',\n _a[nodata] = 'NO DATA FOUND.',\n _a);\n","/**\n * @hidden\n */\nvar outerHeight = function (element) {\n if (!element) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginTop = parseFloat(computedStyles.marginTop);\n var marginBottom = parseFloat(computedStyles.marginBottom);\n return element.offsetHeight + marginTop + marginBottom;\n};\n/**\n * @hidden\n */\nvar outerWidth = function (element) {\n if (!element) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginLeft = parseFloat(computedStyles.marginLeft);\n var marginRight = parseFloat(computedStyles.marginRight);\n return element.offsetWidth + marginLeft + marginRight;\n};\n/**\n * @hidden\n */\nvar styles = {\n 'animation-container': 'k-animation-container',\n 'animation-container-relative': 'k-animation-container-relative',\n 'animation-container-fixed': 'k-animation-container-fixed',\n 'push-right-enter': 'k-push-right-enter',\n 'push-right-appear': 'k-push-right-appear',\n 'push-right-enter-active': 'k-push-right-enter-active',\n 'push-right-appear-active': 'k-push-right-appear-active',\n 'push-right-exit': 'k-push-right-exit',\n 'push-right-exit-active': 'k-push-right-exit-active',\n 'push-left-enter': 'k-push-left-enter',\n 'push-left-appear': 'k-push-left-appear',\n 'push-left-enter-active': 'k-push-left-enter-active',\n 'push-left-appear-active': 'k-push-left-appear-active',\n 'push-left-exit': 'k-push-left-exit',\n 'push-left-exit-active': 'k-push-left-exit-active',\n 'push-down-enter': 'k-push-down-enter',\n 'push-down-appear': 'k-push-down-appear',\n 'push-down-enter-active': 'k-push-down-enter-active',\n 'push-down-appear-active': 'k-push-down-appear-active',\n 'push-down-exit': 'k-push-down-exit',\n 'push-down-exit-active': 'k-push-down-exit-active',\n 'push-up-enter': 'k-push-up-enter',\n 'push-up-appear': 'k-push-up-appear',\n 'push-up-enter-active': 'k-push-up-enter-active',\n 'push-up-appear-active': 'k-push-up-appear-active',\n 'push-up-exit': 'k-push-up-exit',\n 'push-up-exit-active': 'k-push-up-exit-active',\n 'expand': 'k-expand',\n 'expand-vertical-enter': 'k-expand-vertical-enter',\n 'expand-vertical-appear': 'k-expand-vertical-appear',\n 'expand-vertical-enter-active': 'k-expand-vertical-enter-active',\n 'expand-vertical-appear-active': 'k-expand-vertical-appear-active',\n 'expand-vertical-exit': 'k-expand-vertical-exit',\n 'expand-vertical-exit-active': 'k-expand-vertical-exit-active',\n 'expand-horizontal-enter': 'k-expand-horizontal-enter',\n 'expand-horizontal-appear': 'k-expand-horizontal-appear',\n 'expand-horizontal-enter-active': 'k-expand-horizontal-enter-active',\n 'expand-horizontal-appear-active': 'k-expand-horizontal-appear-active',\n 'expand-horizontal-exit': 'k-expand-horizontal-exit',\n 'expand-horizontal-exit-active': 'k-expand-horizontal-exit-active',\n 'child-animation-container': 'k-child-animation-container',\n 'fade-enter': 'k-fade-enter',\n 'fade-appear': 'k-fade-appear',\n 'fade-enter-active': 'k-fade-enter-active',\n 'fade-appear-active': 'k-fade-appear-active',\n 'fade-exit': 'k-fade-exit',\n 'fade-exit-active': 'k-fade-exit-active',\n 'zoom-in-enter': 'k-zoom-in-enter',\n 'zoom-in-appear': 'k-zoom-in-appear',\n 'zoom-in-enter-active': 'k-zoom-in-enter-active',\n 'zoom-in-appear-active': 'k-zoom-in-appear-active',\n 'zoom-in-exit': 'k-zoom-in-exit',\n 'zoom-in-exit-active': 'k-zoom-in-exit-active',\n 'zoom-out-enter': 'k-zoom-out-enter',\n 'zoom-out-appear': 'k-zoom-out-appear',\n 'zoom-out-enter-active': 'k-zoom-out-enter-active',\n 'zoom-out-appear-active': 'k-zoom-out-appear-active',\n 'zoom-out-exit': 'k-zoom-out-exit',\n 'zoom-out-exit-active': 'k-zoom-out-exit-active',\n 'slide-in-appear': 'k-slide-in-appear',\n 'centered': 'k-centered',\n 'slide-in-appear-active': 'k-slide-in-appear-active',\n 'slide-down-enter': 'k-slide-down-enter',\n 'slide-down-appear': 'k-slide-down-appear',\n 'slide-down-enter-active': 'k-slide-down-enter-active',\n 'slide-down-appear-active': 'k-slide-down-appear-active',\n 'slide-down-exit': 'k-slide-down-exit',\n 'slide-down-exit-active': 'k-slide-down-exit-active',\n 'slide-up-enter': 'k-slide-up-enter',\n 'slide-up-appear': 'k-slide-up-appear',\n 'slide-up-enter-active': 'k-slide-up-enter-active',\n 'slide-up-appear-active': 'k-slide-up-appear-active',\n 'slide-up-exit': 'k-slide-up-exit',\n 'slide-up-exit-active': 'k-slide-up-exit-active',\n 'slide-right-enter': 'k-slide-right-enter',\n 'slide-right-appear': 'k-slide-right-appear',\n 'slide-right-enter-active': 'k-slide-right-enter-active',\n 'slide-right-appear-active': 'k-slide-right-appear-active',\n 'slide-right-exit': 'k-slide-right-exit',\n 'slide-right-exit-active': 'k-slide-right-exit-active',\n 'slide-left-enter': 'k-slide-left-enter',\n 'slide-left-appear': 'k-slide-left-appear',\n 'slide-left-enter-active': 'k-slide-left-enter-active',\n 'slide-left-appear-active': 'k-slide-left-appear-active',\n 'slide-left-exit': 'k-slide-left-exit',\n 'slide-left-exit-active': 'k-slide-left-exit-active',\n 'reveal-vertical-enter': 'k-reveal-vertical-enter',\n 'reveal-vertical-appear': 'k-reveal-vertical-appear',\n 'reveal-vertical-enter-active': 'k-reveal-vertical-enter-active',\n 'reveal-vertical-appear-active': 'k-reveal-vertical-appear-active',\n 'reveal-vertical-exit': 'k-reveal-vertical-exit',\n 'reveal-vertical-exit-active': 'k-reveal-vertical-exit-active',\n 'reveal-horizontal-enter': 'k-reveal-horizontal-enter',\n 'reveal-horizontal-appear': 'k-reveal-horizontal-appear',\n 'reveal-horizontal-enter-active': 'k-reveal-horizontal-enter-active',\n 'reveal-horizontal-appear-active': 'k-reveal-horizontal-appear-active',\n 'reveal-horizontal-exit': 'k-reveal-horizontal-exit',\n 'reveal-horizontal-exit-active': 'k-reveal-horizontal-exit-active'\n};\n/**\n * @hidden\n */\nexport default {\n outerHeight: outerHeight,\n outerWidth: outerWidth,\n styles: styles\n};\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar Transition = allVue.Transition;\nimport util from './util';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar styles = util.styles;\n/**\n * Represents the default `Animation` component.\n */\n\nvar AnimationChild = {\n props: {\n in: Boolean,\n transitionName: {\n type: String,\n required: true\n },\n transitionStyle: Object,\n componentChildClassName: [Array],\n className: String,\n appear: {\n type: Boolean,\n default: true\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: Number,\n transitionExitDuration: Number,\n mountOnEnter: Boolean,\n unmountOnExit: Boolean,\n animationEnteringStyle: Object,\n animationEnteredStyle: Object,\n animationExitingStyle: Object,\n animationExitedStyle: Object\n },\n created: function created() {\n this.animationStep = '';\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var elementRef = ref(null);\n return {\n v3: v3,\n elementRef: elementRef\n };\n },\n mounted: function mounted() {\n this._element = this.v3 ? this.elementRef || null : this.$refs.element || null;\n },\n computed: {\n element: {\n get: function get() {\n return this._element;\n }\n }\n },\n methods: {\n onBeforeEnter: function onBeforeEnter(e) {\n this.$emit('beforeenter', {\n animatedElement: e,\n target: this\n });\n },\n onEnter: function onEnter(e) {\n this.animationStep = 'entering';\n this.$emit('entering', {\n animatedElement: e,\n target: this\n });\n },\n onAfterEnter: function onAfterEnter(e) {\n this.animationStep = 'entered';\n this.$emit('entered', {\n animatedElement: e,\n target: this\n });\n },\n onBeforeLeave: function onBeforeLeave(e) {\n this.$emit('exit', {\n animatedElement: e,\n target: this\n });\n },\n onLeave: function onLeave(e) {\n this.animationStep = 'exiting';\n this.$emit('exiting', {\n animatedElement: e,\n target: this\n });\n },\n onAfterLeave: function onAfterLeave(e) {\n this.animationStep = 'exited';\n this.$emit('exited', {\n animatedElement: e,\n target: this\n });\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n\n var _a = this.$props,\n appear = _a.appear,\n enter = _a.enter,\n exit = _a.exit,\n transitionName = _a.transitionName,\n transitionEnterDuration = _a.transitionEnterDuration,\n transitionExitDuration = _a.transitionExitDuration,\n className = _a.className,\n componentChildClassName = _a.componentChildClassName,\n mountOnEnter = _a.mountOnEnter,\n unmountOnExit = _a.unmountOnExit,\n animationEnteringStyle = _a.animationEnteringStyle,\n animationEnteredStyle = _a.animationEnteredStyle,\n animationExitingStyle = _a.animationExitingStyle,\n animationExitedStyle = _a.animationExitedStyle,\n other = __rest(_a, [\"appear\", \"enter\", \"exit\", \"transitionName\", \"transitionEnterDuration\", \"transitionExitDuration\", \"className\", \"componentChildClassName\", \"mountOnEnter\", \"unmountOnExit\", \"animationEnteringStyle\", \"animationEnteredStyle\", \"animationExitingStyle\", \"animationExitedStyle\"]);\n\n var defaultSlot = getDefaultSlots(this);\n var hasChildren = this.v3 ? appear : !!defaultSlot;\n var transitionTag = this.v3 ? Transition : 'transition';\n var childAnimationContainerClassNames = [componentChildClassName, styles['child-animation-container']];\n var enterDuration = enter ? transitionEnterDuration : 0;\n var exitDuration = exit ? transitionExitDuration : 0;\n\n var defaultStyle = __assign({\n transitionDelay: '0ms',\n transitionDuration: hasChildren ? enterDuration + \"ms\" : exitDuration + \"ms\"\n }, this.$props.transitionStyle);\n\n var animationStyle = {\n entering: __assign({\n transitionDuration: enterDuration + \"ms\"\n }, animationEnteringStyle),\n entered: __assign({}, animationEnteredStyle),\n exiting: __assign({\n transitionDuration: exitDuration + \"ms\"\n }, animationExitingStyle),\n exited: __assign({}, animationExitedStyle)\n };\n var childElementStyles = [defaultStyle, animationStyle[this.animationStep]];\n var duration = {\n enter: enterDuration,\n leave: exitDuration\n };\n var rendererChildren = [hasChildren ? h('div', {\n style: childElementStyles,\n 'class': childAnimationContainerClassNames,\n ref: this.v3 ? function (el) {\n _this.elementRef = el;\n } : 'element'\n }, [defaultSlot]) : null];\n return h(transitionTag, {\n duration: duration,\n attrs: this.v3 ? null : {\n duration: duration,\n name: transitionName,\n appear: appear,\n appearClass: styles[transitionName + \"-appear\"] || transitionName + \"-appear\",\n appearToClass: styles[transitionName + \"-appear-active\"] || transitionName + \"-appear-active\",\n enterClass: styles[transitionName + \"-enter\"] || transitionName + \"-enter\",\n enterToClass: styles[transitionName + \"-enter-active\"] || transitionName + \"-enter-active\",\n leaveClass: styles[transitionName + \"-exit\"] || transitionName + \"-exit\",\n leaveToClass: styles[transitionName + \"-exit-active\"] || transitionName + \"-exit-active\"\n },\n name: transitionName,\n appear: appear,\n appearFromClass: styles[transitionName + \"-appear\"] || transitionName + \"-appear\",\n enterFromClass: styles[transitionName + \"-enter\"] || transitionName + \"-enter\",\n leaveFromClass: styles[transitionName + \"-exit\"] || transitionName + \"-exit\",\n appearToClass: styles[transitionName + \"-appear-active\"] || transitionName + \"-appear-active\",\n enterToClass: styles[transitionName + \"-enter-active\"] || transitionName + \"-enter-active\",\n leaveToClass: styles[transitionName + \"-exit-active\"] || transitionName + \"-exit-active\",\n onBeforeEnter: this.onBeforeEnter,\n on: this.v3 ? null : {\n 'beforeEnter': this.onBeforeEnter,\n 'enter': this.onEnter,\n 'afterEnter': this.onAfterEnter,\n 'beforeLeave': this.onBeforeLeave,\n 'leave': this.onLeave,\n 'afterLeave': this.onAfterLeave\n },\n onEnter: this.onEnter,\n onAfterEnter: this.onAfterEnter,\n onBeforeLeave: this.onBeforeLeave,\n onLeave: this.onLeave,\n onAfterLeave: this.onAfterLeave\n }, this.v3 ? function () {\n return rendererChildren;\n } : rendererChildren);\n }\n};\nexport { AnimationChild };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { AnimationChild } from './AnimationChild';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nimport util from './util';\nvar styles = util.styles;\n/**\n * Represents the default `Animation` component.\n */\n\nvar Animation = {\n props: {\n childFactory: Object,\n className: String,\n tag: String,\n id: String,\n animationEnteringStyle: Object,\n animationExitingStyle: Object,\n componentChildClassName: [Array],\n transitionName: {\n type: String,\n required: true\n },\n appear: {\n type: Boolean,\n default: true\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number\n },\n transitionExitDuration: {\n type: Number\n }\n },\n methods: {\n onEntering: function onEntering(e) {\n this.$emit('entering', e);\n },\n onEnter: function onEnter(e) {\n this.$emit('enter', e);\n },\n onEntered: function onEntered(e) {\n this.$emit('entered', e);\n },\n onExit: function onExit(e) {\n this.$emit('exit', e);\n },\n onExiting: function onExiting(e) {\n this.$emit('exiting', e);\n },\n onExited: function onExited(e) {\n this.$emit('exited', e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n var _a = this.$props,\n id = _a.id,\n tag = _a.tag,\n className = _a.className,\n childFactory = _a.childFactory,\n stackChildren = _a.stackChildren,\n componentChildStyle = _a.componentChildStyle,\n componentChildClassName = _a.componentChildClassName,\n other = __rest(_a, [\"id\", \"tag\", \"className\", \"childFactory\", \"stackChildren\", \"componentChildStyle\", \"componentChildClassName\"]);\n\n var parentDivClass = [styles['animation-container'], styles['animation-container-relative'], className];\n return h(\"div\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id\n },\n \"class\": parentDivClass\n }, [// @ts-ignore function children\n h(AnimationChild, {\n key: 'some',\n appear: this.$props.appear,\n attrs: this.v3 ? undefined : {\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionName: this.$props.transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n animationEnteringStyle: this.$props.animationEnteringStyle,\n animationExitingStyle: this.$props.animationExitingStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionName: this.$props.transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n onBeforeenter: this.onEnter,\n on: this.v3 ? undefined : {\n \"beforeenter\": this.onEnter,\n \"entering\": this.onEntering,\n \"entered\": this.onEntered,\n \"exit\": this.onExit,\n \"exiting\": this.onExiting,\n \"exited\": this.onExited\n },\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited,\n animationEnteringStyle: this.$props.animationEnteringStyle,\n animationExitingStyle: this.$props.animationExitingStyle,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])]);\n }\n};\nexport { Animation };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Fade` component.\n */\n\nvar Fade = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: false\n },\n transitionEnterDuration: {\n type: Number,\n default: 500\n },\n transitionExitDuration: {\n type: Number,\n default: 500\n },\n childFactory: Object,\n className: String,\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return (// @ts-ignore function children\n h(Animation, {\n transitionName: \"fade\",\n attrs: this.v3 ? undefined : {\n transitionName: \"fade\",\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nexport { Fade };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Expand` component.\n */\n\nvar Expand = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'vertical'\n },\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n var _a = this.$props,\n direction = _a.direction,\n other = __rest(_a, [\"direction\"]);\n\n var transitionName = \"expand-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nexport { Expand };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar EXITING_ANIMATION_STYLE = {\n position: 'absolute',\n top: '0',\n left: '0'\n};\n/**\n * Represents the default `Push` component.\n */\n\nvar Push = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'right'\n },\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var transitionName = \"push-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nexport { Push };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `Slide` component.\n */\n\nvar Slide = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n componentChildClassName: [Array],\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'down'\n },\n tag: String,\n id: String\n },\n methods: {\n onEntering: function onEntering(e) {\n this.$emit('entering', e);\n },\n onEnter: function onEnter(e) {\n this.$emit('enter', e);\n },\n onEntered: function onEntered(e) {\n this.$emit('entered', e);\n },\n onExit: function onExit(e) {\n this.$emit('exit', e);\n },\n onExiting: function onExiting(e) {\n this.$emit('exiting', e);\n },\n onExited: function onExited(e) {\n this.$emit('exited', e);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n var _a = this.$props,\n direction = _a.direction,\n other = __rest(_a, [\"direction\"]);\n\n var transitionName = \"slide-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n componentChildClassName: this.$props.componentChildClassName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n },\n componentChildClassName: this.$props.componentChildClassName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n onEnter: this.onEnter,\n on: this.v3 ? undefined : {\n \"enter\": this.onEnter,\n \"entering\": this.onEntering,\n \"entered\": this.onEntered,\n \"exit\": this.onExit,\n \"exiting\": this.onExiting,\n \"exited\": this.onExited\n },\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nexport { Slide };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar EXITING_ANIMATION_STYLE = {\n position: 'absolute',\n top: '0',\n left: '0'\n};\n/**\n * Represents the default `Zoom` component.\n */\n\nvar Zoom = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n stackChildren: {\n type: Boolean,\n default: false\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'out'\n },\n tag: String,\n id: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var transitionName = \"zoom-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n transitionName: transitionName,\n attrs: this.v3 ? undefined : {\n transitionName: transitionName,\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n },\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationExitingStyle: this.$props.stackChildren ? EXITING_ANIMATION_STYLE : undefined\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nexport { Zoom };","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Animation } from './Animation';\nimport util from './util';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar noop = function noop() {};\n/**\n * Represents the default `Reveal` component.\n */\n\n\nvar Reveal = {\n props: {\n appear: {\n type: Boolean,\n default: false\n },\n enter: {\n type: Boolean,\n default: true\n },\n exit: {\n type: Boolean,\n default: true\n },\n transitionEnterDuration: {\n type: Number,\n default: 300\n },\n transitionExitDuration: {\n type: Number,\n default: 300\n },\n childFactory: Object,\n className: String,\n direction: {\n type: String,\n default: 'vertical'\n },\n tag: String,\n id: String\n },\n data: function data() {\n return {\n maxHeight: '',\n maxWidth: ''\n };\n },\n methods: {\n componentWillEnter: function componentWillEnter(event) {\n var onEnter = this.$props.onEnter;\n this.updateContainerDimensions(event.animatedElement, function () {\n if (onEnter) {\n onEnter.call(undefined, event);\n }\n });\n },\n componentIsEntering: function componentIsEntering(event) {\n var onEntering = this.$props.onEntering;\n this.updateContainerDimensions(event.animatedElement, function () {\n if (onEntering) {\n onEntering.call(undefined, event);\n }\n });\n },\n componentWillExit: function componentWillExit(event) {\n var onExit = this.$props.onExit;\n this.updateContainerDimensions(event.animatedElement, function () {\n if (onExit) {\n onExit.call(undefined, event);\n }\n });\n },\n updateContainerDimensions: function updateContainerDimensions(node, done) {\n if (done === void 0) {\n done = noop;\n }\n\n var content = node ? node.firstElementChild : null;\n\n if (content) {\n var newHeight = util.outerHeight(content);\n var newWidth = util.outerWidth(content);\n this.$data.maxHeight = newHeight;\n this.$data.maxWidth = newWidth;\n done();\n }\n }\n },\n computed: {\n animationEnteringStyle: {\n get: function get() {\n var maxOffset;\n\n if (this.$props.direction === 'vertical') {\n maxOffset = {\n maxHeight: this.maxHeight ? this.maxHeight + \"px\" : null\n };\n } else {\n maxOffset = {\n maxWidth: this.maxWidth ? this.maxWidth + \"px\" : null\n };\n }\n\n return {\n maxHeight: maxOffset.maxHeight,\n maxWidth: maxOffset.maxWidth\n };\n }\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n\n var _a = this.$props,\n direction = _a.direction,\n childFactory = _a.childFactory,\n other = __rest(_a, [\"direction\", \"childFactory\"]);\n\n var transitionName = \"reveal-\" + this.$props.direction;\n return (// @ts-ignore function children\n h(Animation, {\n appear: this.$props.appear,\n attrs: this.v3 ? undefined : {\n appear: this.$props.appear,\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n animationEnteringStyle: this.animationEnteringStyle,\n transitionName: transitionName\n },\n enter: this.$props.enter,\n exit: this.$props.exit,\n transitionEnterDuration: this.$props.transitionEnterDuration,\n transitionExitDuration: this.$props.transitionExitDuration,\n onEnter: this.componentWillEnter,\n on: this.v3 ? undefined : {\n \"enter\": this.componentWillEnter,\n \"entering\": this.componentIsEntering,\n \"exit\": this.componentWillExit\n },\n onEntering: this.componentIsEntering,\n onExit: this.componentWillExit,\n animationEnteringStyle: this.animationEnteringStyle,\n transitionName: transitionName\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot])\n );\n }\n};\nexport { Reveal };","import { parents, siblingContainer } from '@progress/kendo-popup-common';\n/**\n * @hidden\n */\n\nexport var eitherRect = function eitherRect(rect, offset) {\n if (!rect) {\n return {\n height: 0,\n left: offset.left,\n top: offset.top,\n width: 0\n };\n }\n\n return rect;\n};\n/**\n * @hidden\n */\n\nexport var replaceOffset = function replaceOffset(rect, offset) {\n if (!offset) {\n return rect;\n }\n\n var result = {\n height: rect.height,\n left: offset.left,\n top: offset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\n\nexport var removeStackingOffset = function removeStackingOffset(rect, stackingOffset) {\n if (!stackingOffset) {\n return rect;\n }\n\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\n\nexport var isDifferentOffset = function isDifferentOffset(oldOffset, newOffset) {\n var oldLeft = oldOffset.left,\n oldTop = oldOffset.top;\n var newLeft = newOffset.left,\n newTop = newOffset.top;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\n\nexport var isDocumentAvailable = function isDocumentAvailable() {\n return typeof document !== 'undefined' && !!document.body;\n};\n/**\n * @hidden\n */\n\nexport var isWindowAvailable = function isWindowAvailable() {\n return typeof window !== 'undefined';\n};\n/**\n * @hidden\n */\n\nexport var hasBoundingRect = function hasBoundingRect(elem) {\n return !!elem.getBoundingClientRect;\n};\n/**\n * @hidden\n */\n\nexport var OVERFLOW_REGEXP = /auto|scroll/;\n/**\n * @hidden\n */\n\nvar overflowStyle = function overflowStyle(element) {\n var styles = window.getComputedStyle(element);\n return \"\" + styles.overflow + styles.overflowX + styles.overflowY;\n};\n/**\n * @hidden\n */\n\n\nexport var scrollableParents = function scrollableParents(element) {\n var parentElements = [];\n\n if (!isDocumentAvailable() || !isWindowAvailable()) {\n return parentElements;\n }\n\n var parent = element.parentElement;\n\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent))) {\n parentElements.push(parent);\n }\n\n parent = parent.parentElement;\n }\n\n parentElements.push(window);\n return parentElements;\n};\n/**\n * @hidden\n */\n\nexport var FRAME_DURATION = 1000 / 60; // 1000ms divided by 60fps\n\n/**\n * @hidden\n */\n\nexport var hasRelativeStackingContext = function hasRelativeStackingContext() {\n if (!isDocumentAvailable()) {\n return false;\n }\n\n var top = 10;\n var parent = document.createElement('div');\n parent.style.transform = 'matrix(10, 0, 0, 10, 0, 0)';\n parent.innerHTML = \"
child
\";\n document.body.appendChild(parent);\n var isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n document.body.removeChild(parent);\n return isDifferent;\n};\n/**\n * @hidden\n */\n\nexport var HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/**\n * @hidden\n */\n\nexport var zIndex = function zIndex(anchor, container) {\n if (!anchor || !isDocumentAvailable() || !isWindowAvailable()) {\n return null;\n }\n\n var sibling = siblingContainer(anchor, container);\n\n if (!sibling) {\n return null;\n }\n\n var result = [anchor].concat(parents(anchor, sibling)).reduce(function (index, p) {\n var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n var current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n }, 0);\n return result ? result + 1 : null;\n};\n/**\n * @hidden\n */\n\nexport var CollisionType = {\n fit: 'fit',\n flip: 'flip'\n};\n/**\n * @hidden\n */\n\nexport var AlignPoint = {\n left: 'left',\n center: 'center',\n right: 'right',\n bottom: 'bottom',\n top: 'top'\n};\n/**\n * @hidden\n */\n\nexport var throttle = function throttle(func, wait, options) {\n if (options === void 0) {\n options = {};\n }\n\n var timeout, context, args, result;\n var previous = 0;\n options = options || {};\n\n var later = function later() {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n };\n\n var throttled = function throttled() {\n var now = new Date().getTime();\n\n if (!previous && options.leading === false) {\n previous = now;\n }\n\n var remaining = wait - (now - previous); // @ts-ignore\n\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n\n return throttled;\n};","import { eitherRect, removeStackingOffset } from '../util';\n/**\n * @hidden\n */\nvar AlignService = /** @class */ (function () {\n function AlignService(_dom) {\n this._dom = _dom;\n }\n AlignService.prototype.alignElement = function (settings) {\n var anchor = settings.anchor, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, offset = settings.offset;\n var fixedMode = !this._dom.hasOffsetParent(element);\n var anchorRect = fixedMode ?\n this.absoluteRect(anchor, element, offset) :\n this.relativeRect(anchor, element, offset);\n return this._dom.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: this._dom.offset(element)\n });\n };\n AlignService.prototype.absoluteRect = function (anchor, element, offset) {\n var dom = this._dom;\n var rect = eitherRect(dom.offset(anchor), offset);\n var stackingOffset = dom.stackingElementOffset(element);\n var removedOffset = removeStackingOffset(rect, stackingOffset);\n var stackingScroll = dom.stackingElementScroll(element);\n var withScroll = dom.addScroll(removedOffset, stackingScroll);\n var scrollPosition = this.elementScrollPosition(anchor, element);\n var result = dom.removeScroll(withScroll, scrollPosition);\n result.left += window.scrollX || window.pageXOffset;\n result.top += window.scrollY || window.pageYOffset;\n return result;\n };\n AlignService.prototype.elementScrollPosition = function (anchor, element) {\n return anchor ? { x: 0, y: 0 } : this._dom.scrollPosition(element);\n };\n AlignService.prototype.relativeRect = function (anchor, element, offset) {\n return eitherRect(this._dom.position(anchor, element), offset);\n };\n return AlignService;\n}());\nexport { AlignService };\n","import { align, applyLocationOffset, boundingOffset, getWindowViewPort, isBodyOffset, offset, positionWithScroll, restrictToView, addScroll, removeScroll, scrollPosition, siblingContainer } from '@progress/kendo-popup-common';\nimport { isDocumentAvailable, isWindowAvailable, HAS_RELATIVE_STACKING_CONTEXT, scrollableParents, zIndex } from '../util';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n }\n DOMService.prototype.addOffset = function (current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n };\n DOMService.prototype.align = function (settings) {\n return align(settings);\n };\n DOMService.prototype.boundingOffset = function (el) {\n return boundingOffset(el);\n };\n DOMService.prototype.getWindow = function () {\n return isWindowAvailable() ? window : null;\n };\n DOMService.prototype.isBodyOffset = function (el) {\n return isBodyOffset(el);\n };\n DOMService.prototype.hasOffsetParent = function (el) {\n if (!el) {\n return false;\n }\n var offsetParentEl = el.offsetParent;\n return offsetParentEl &&\n !(offsetParentEl.nodeName === 'BODY' &&\n window.getComputedStyle(offsetParentEl).position === 'static');\n };\n DOMService.prototype.offset = function (el) {\n if (!el) {\n return null;\n }\n return offset(el);\n };\n DOMService.prototype.staticOffset = function (element) {\n if (!element) {\n return null;\n }\n var _a = element.style, left = _a.left, top = _a.top;\n element.style.left = '0px';\n element.style.top = '0px';\n var currentOffset = offset(element);\n element.style.left = left;\n element.style.top = top;\n return currentOffset;\n };\n DOMService.prototype.position = function (element, popup) {\n if (!element || !popup) {\n return null;\n }\n var parentSibling = siblingContainer(element, popup);\n return positionWithScroll(element, parentSibling);\n };\n DOMService.prototype.relativeOffset = function (el, currentLocation) {\n return applyLocationOffset(this.offset(el), currentLocation, this.isBodyOffset(el));\n };\n DOMService.prototype.addScroll = function (rect, scroll) {\n return addScroll(rect, scroll);\n };\n DOMService.prototype.removeScroll = function (rect, scroll) {\n return removeScroll(rect, scroll);\n };\n DOMService.prototype.restrictToView = function (settings) {\n return restrictToView(settings);\n };\n DOMService.prototype.scrollPosition = function (el) {\n return scrollPosition(el);\n };\n DOMService.prototype.scrollableParents = function (el) {\n return scrollableParents(el);\n };\n DOMService.prototype.stackingElementOffset = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return offset(relativeContextElement);\n };\n DOMService.prototype.stackingElementScroll = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return { x: 0, y: 0 };\n }\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n };\n DOMService.prototype.stackingElementViewPort = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n };\n DOMService.prototype.getRelativeContextElement = function (el) {\n if (!el || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n var parent = el.parentElement;\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n };\n DOMService.prototype.useRelativePosition = function (el) {\n return !!this.getRelativeContextElement(el);\n };\n DOMService.prototype.windowViewPort = function (el) {\n return getWindowViewPort(el);\n };\n DOMService.prototype.zIndex = function (anchor, container) {\n return zIndex(anchor, container);\n };\n DOMService.prototype.zoomLevel = function () {\n if (!isDocumentAvailable() || !isWindowAvailable()) {\n return 1;\n }\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2));\n };\n DOMService.prototype.isZoomed = function () {\n return this.zoomLevel() > 1;\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { eitherRect, replaceOffset } from '../util';\n/**\n * @hidden\n */\nvar PositionService = /** @class */ (function () {\n function PositionService(_dom) {\n this._dom = _dom;\n }\n PositionService.prototype.positionElement = function (settings) {\n var anchor = settings.anchor, currentLocation = settings.currentLocation, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, collisions = settings.collisions;\n var dom = this._dom;\n var viewPort = settings.viewPort || dom.stackingElementViewPort(element) || dom.windowViewPort(element);\n var anchorRect = eitherRect(dom.offset(anchor), currentLocation);\n var initialElementRect = replaceOffset(dom.staticOffset(element), currentLocation);\n var elementRect = this.elementRect(element, initialElementRect);\n var result = dom.restrictToView({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n collisions: collisions,\n elementAlign: elementAlign,\n elementRect: elementRect,\n viewPort: viewPort\n });\n return {\n flipped: result.flipped,\n offset: dom.addOffset(initialElementRect, result.offset)\n };\n };\n PositionService.prototype.elementRect = function (element, rect) {\n return this._dom.removeScroll(rect, this._dom.scrollPosition(element));\n };\n return PositionService;\n}());\nexport { PositionService };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Slide } from '@progress/kendo-vue-animation';\nimport { CollisionType, AlignPoint, throttle, FRAME_DURATION, isWindowAvailable } from './util';\nimport { AlignService } from './services/alignService';\nimport { DOMService } from './services/domService';\nimport { PositionService } from './services/positionService';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\nvar DEFAULT_OFFSET = {\n left: -1000,\n top: 0\n};\nvar ANIMATION_CONTAINER = 'k-animation-container';\nvar ANIMATION_CONTAINER_SHOWN = 'k-animation-container-shown';\nvar K_POPUP = 'k-popup';\n/**\n * Represents the default `Animation` component.\n */\n\nvar Popup = {\n name: 'Popup',\n props: {\n appendTo: {\n type: String,\n default: ''\n },\n anchor: {\n type: String,\n default: ''\n },\n className: String,\n id: String,\n popupClass: String,\n collision: {\n type: Object,\n default: function _default() {\n return {\n horizontal: CollisionType.fit,\n vertical: CollisionType.flip\n };\n }\n },\n anchorAlign: {\n type: Object,\n default: function _default() {\n return {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.bottom\n };\n }\n },\n popupAlign: {\n type: Object,\n default: function _default() {\n return {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.top\n };\n }\n },\n offset: {\n type: Object,\n default: function _default() {\n return DEFAULT_OFFSET;\n }\n },\n show: {\n type: Boolean,\n default: false\n },\n animate: {\n type: [Boolean, Object],\n default: function _default() {\n return true;\n }\n },\n direction: {\n type: String,\n default: 'down'\n },\n transition: {\n type: String,\n default: 'expand'\n }\n },\n created: function created() {\n this.mountedAppendTo = undefined;\n this.mountedAnchor = undefined;\n this._flipped = false;\n this._offsetTop = 0;\n this._offsetLeft = -1000;\n this._exitingAnimation = false;\n this._prevShow = false;\n this._prevShow = this.$props.show;\n this._domService = new DOMService();\n this._alignService = new AlignService(this._domService);\n this._positionService = new PositionService(this._domService);\n this.reposition = throttle(this.reposition.bind(this), FRAME_DURATION);\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n mounted: function mounted() {\n this.mountedAppendTo = this.$props.appendTo ? this.getParentRef(this.$props.appendTo) : document.body;\n this.mountedAnchor = this.$props.anchor ? this.getParentRef(this.$props.anchor) : document.body;\n this._parentElement = this.$el.parentElement;\n this.mountedAppendTo.appendChild(this.$el);\n },\n updated: function updated() {\n this._prevShow = this.$props.show;\n },\n destroyed: !!gh ? undefined : function () {\n this.detachRepositionHandlers();\n },\n beforeDestroy: !!gh ? undefined : function () {\n if (this._parentElement) {\n this._parentElement.appendChild(this.$el);\n }\n },\n // @ts-ignore\n unmounted: function unmounted() {\n this.detachRepositionHandlers();\n },\n // @ts-ignore\n beforeUnmount: function beforeUnmount() {\n if (this._parentElement) {\n this._parentElement.appendChild(this.$el);\n }\n },\n methods: {\n onOpened: function onOpened() {\n var element = this.$el;\n\n if (this.$props.show) {\n element.classList.add(ANIMATION_CONTAINER_SHOWN);\n }\n\n this.attachRepositionHandlers(element);\n this.$emit('open', {\n target: this\n });\n },\n onClosing: function onClosing() {\n if (!this.$props.show) {\n var element = this.$el;\n element.classList.remove(ANIMATION_CONTAINER_SHOWN);\n }\n\n this.detachRepositionHandlers();\n },\n onClosed: function onClosed() {\n if (this._exitingAnimation) {\n this._exitingAnimation = false;\n this.$forceUpdate();\n }\n\n this.$emit('close', {\n target: this\n });\n },\n transitionDuration: function transitionDuration() {\n var animate = this.$props.animate;\n var transitionEnterDuration = 0;\n var transitionExitDuration = 0;\n\n if (animate) {\n if (animate === true) {\n // Inherit the default duration of the Animation component.\n transitionEnterDuration = transitionExitDuration = undefined;\n } else {\n transitionEnterDuration = animate.openDuration;\n transitionExitDuration = animate.closeDuration;\n }\n }\n\n return {\n transitionEnterDuration: transitionEnterDuration,\n transitionExitDuration: transitionExitDuration\n };\n },\n getParentRef: function getParentRef(anchor) {\n // @ts-ignore\n var parent = this.$parent;\n\n while (!parent.$refs[anchor]) {\n // @ts-ignore\n if (parent && parent.kendoAnchorRef) {\n // @ts-ignore\n return parent.kendoAnchorRef;\n } // @ts-ignore\n\n\n parent = parent.$parent;\n\n if (!parent) {\n return document.body;\n }\n } // @ts-ignore\n\n\n return parent.$refs[anchor].$el || parent.$refs[anchor];\n },\n position: function position(settings, element, anchor) {\n var anchorAlign = settings.anchorAlign,\n popupAlign = settings.popupAlign,\n collision = settings.collision,\n offset = settings.offset;\n var anchorElement = anchor ? this.v3 ? this.mountedAnchor : this.getParentRef(anchor) : document.body;\n\n var alignedOffset = this._alignService.alignElement({\n anchor: anchorElement,\n element: element,\n elementAlign: popupAlign,\n anchorAlign: anchorAlign,\n offset: offset\n });\n\n var result = this._positionService.positionElement({\n anchor: anchorElement,\n anchorAlign: anchorAlign,\n collisions: collision,\n element: element,\n currentLocation: alignedOffset,\n elementAlign: popupAlign\n });\n\n return result;\n },\n calculatePosition: function calculatePosition($props, appendToElement) {\n if (!this.$props.anchor || !appendToElement || !isWindowAvailable()) {\n return {\n flipped: false,\n offset: $props.offset\n };\n }\n\n var defaultSlot = getDefaultSlots(this);\n var root = document.createElement('div');\n appendToElement.appendChild(root); // @ts-ignore\n\n var internalClass = this.v3 ? defaultSlot && defaultSlot[0].props ? defaultSlot[0].props.class : '' : defaultSlot && defaultSlot[0].data ? defaultSlot[0].data.staticClass : ''; // @ts-ignore\n\n var domClass = this.v3 ? this.$props.popupClass ? this.$props.popupClass : '' : defaultSlot && defaultSlot[0].data ? defaultSlot[0].data.class : '';\n root.innerHTML = \"
\\t\\n
\\n
\\n
\\t\\n
\\t\\n
\";\n var newPosition = this.position($props, root.firstChild, this.$props.anchor);\n root.parentNode.removeChild(root);\n return newPosition;\n },\n attachRepositionHandlers: function attachRepositionHandlers(element) {\n var _this = this;\n\n this.detachRepositionHandlers();\n this._scrollableParents = this._domService.scrollableParents(this.$props.anchor ? this.mountedAnchor : element);\n\n this._scrollableParents.map(function (p) {\n return p.addEventListener('scroll', _this.reposition);\n });\n\n window.addEventListener('resize', this.reposition);\n },\n detachRepositionHandlers: function detachRepositionHandlers() {\n var _this = this;\n\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) {\n return p.removeEventListener('scroll', _this.reposition);\n });\n\n this._scrollableParents = undefined;\n }\n\n window.removeEventListener('resize', this.reposition);\n },\n reposition: function reposition() {\n this.$forceUpdate();\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n className = _a.className,\n popupClass = _a.popupClass,\n show = _a.show,\n id = _a.id;\n var defaultSlots = getDefaultSlots(this);\n var defaultSlot = this.v3 ? defaultSlots : show ? defaultSlots : null;\n var defaultAppentTo = isWindowAvailable() ? this.$props.appendTo ? this.mountedAppendTo || this.getParentRef(this.$props.appendTo) : document.body : undefined;\n\n if (this.$props.show) {\n var newPosition = this.calculatePosition(this.$props, defaultAppentTo);\n this._offsetLeft = newPosition.offset.left;\n this._offsetTop = newPosition.offset.top;\n this._flipped = !!newPosition.flipped;\n }\n\n var direction = this._flipped && show ? 'up' : 'down';\n\n var _b = this.transitionDuration(),\n transitionEnterDuration = _b.transitionEnterDuration,\n transitionExitDuration = _b.transitionExitDuration;\n\n this._exitingAnimation = this._exitingAnimation || this._prevShow && !show;\n\n if (show || this._exitingAnimation && defaultAppentTo) {\n var popup = // @ts-ignore function children\n h(Slide, {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n componentChildClassName: [popupClass, K_POPUP],\n className: className,\n direction: direction,\n transitionEnterDuration: transitionEnterDuration,\n transitionExitDuration: transitionExitDuration,\n appear: show\n },\n componentChildClassName: [popupClass, K_POPUP],\n className: className,\n onEntered: this.onOpened,\n on: this.v3 ? undefined : {\n \"entered\": this.onOpened,\n \"exiting\": this.onClosing,\n \"exited\": this.onClosed\n },\n onExiting: this.onClosing,\n onExited: this.onClosed,\n direction: direction,\n style: {\n position: 'absolute',\n top: this._offsetTop + 'px',\n left: this._offsetLeft + 'px'\n },\n transitionEnterDuration: transitionEnterDuration,\n transitionExitDuration: transitionExitDuration,\n appear: show\n }, this.v3 ? function () {\n return [defaultSlot];\n } : [defaultSlot]);\n return popup;\n }\n\n return null;\n }\n};\nexport { Popup };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { Popup } from '@progress/kendo-vue-popup';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * Represents the default `ListContainer` component.\n */\n\nvar ListContainer = {\n name: 'list-container',\n props: {\n width: [String, Number],\n dir: String,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {\n animate: true,\n height: '200px'\n };\n }\n }\n },\n created: function created() {\n this.kendoAnchorRef = undefined;\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n onMouseDown: function onMouseDown(e) {\n this.$emit('mousedown', e);\n },\n onBlur: function onBlur(e) {\n this.$emit('blur', e);\n },\n onOpen: function onOpen(e) {\n this.$emit('open', e);\n },\n onClose: function onClose(e) {\n this.$emit('close', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n var _a = this.$props,\n onMouseDown = _a.onMouseDown,\n onBlur = _a.onBlur,\n width = _a.width,\n dir = _a.dir,\n popupSettings = _a.popupSettings; // @ts-ignore\n\n var className = popupSettings.className,\n animate = popupSettings.animate,\n anchor = popupSettings.anchor,\n show = popupSettings.show,\n open = popupSettings.open,\n close = popupSettings.close;\n return (// @ts-ignore function children\n h(Popup, {\n style: {\n width: width,\n direction: dir\n },\n className: className,\n attrs: this.v3 ? undefined : {\n className: className,\n animate: animate,\n anchor: anchor,\n show: show\n },\n animate: animate,\n anchor: anchor,\n show: show,\n onOpen: this.onOpen,\n on: this.v3 ? undefined : {\n \"open\": this.onOpen,\n \"close\": this.onClose\n },\n onClose: this.onClose\n }, this.v3 ? function () {\n return [h(\"div\", {\n onMousedown: _this.onMouseDown,\n on: _this.v3 ? undefined : {\n \"mousedown\": _this.onMouseDown,\n \"focusout\": _this.onBlur\n },\n onFocusout: _this.onBlur\n }, [defaultSlot])];\n } : [h(\"div\", {\n onMousedown: _this.onMouseDown,\n on: _this.v3 ? undefined : {\n \"mousedown\": _this.onMouseDown,\n \"focusout\": _this.onBlur\n },\n onFocusout: _this.onBlur\n }, [defaultSlot])])\n );\n }\n};\nexport { ListContainer };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\n/**\n * Represents the default `ListFilter` component.\n */\n\nvar ListFilter = {\n name: 'list-filter',\n props: {\n value: String\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef\n };\n },\n methods: {\n onKeyDown: function onKeyDown(e) {\n this.$emit('keydown', e);\n },\n onChange: function onChange(e) {\n this.$emit('change', e);\n }\n },\n mounted: function mounted() {\n this.input = this.v3 ? this.inputRef : this.$refs.input;\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n return h(\"span\", {\n \"class\": \"k-list-filter\"\n }, [h(\"input\", {\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n value: this.v3 ? this.$props.value || '' : null,\n domProps: this.v3 ? undefined : {\n \"value\": this.$props.value || ''\n },\n \"class\": \"k-textbox\",\n onInput: this.onChange,\n on: this.v3 ? undefined : {\n \"input\": this.onChange,\n \"keydown\": this.onKeyDown\n },\n onKeydown: this.onKeyDown\n }), h(\"span\", {\n \"class\": \"k-icon k-i-search\"\n })]);\n }\n};\nexport { ListFilter };","/**\n * @hidden\n */\nvar isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nvar sameCharsOnly = function (word, character) {\n for (var idx = 0; idx < word.length; idx++) {\n if (word.charAt(idx) !== character) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar shuffleData = function (data, splitIndex, defaultItem) {\n var result = data;\n if (defaultItem) {\n result = [defaultItem].concat(result);\n }\n return result.slice(splitIndex).concat(result.slice(0, splitIndex));\n};\n/**\n * @hidden\n */\nvar matchText = function (text, word, ignoreCase) {\n if (!isPresent(text)) {\n return false;\n }\n var temp = String(text);\n if (ignoreCase) {\n temp = temp.toLowerCase();\n }\n return temp.indexOf(word) === 0;\n};\n/**\n * @hidden\n */\nvar scrollToItem = function (scrollElem, itemHeight, itemIndex, translate, virtualScroll) {\n var viewportHeight = scrollElem.offsetHeight;\n var itemOffsetTop = (itemHeight * itemIndex) +\n (virtualScroll ? translate - scrollElem.scrollTop : 0);\n if (virtualScroll) {\n var diff = 0;\n if (itemOffsetTop + itemHeight > viewportHeight) {\n diff = itemOffsetTop + itemHeight - viewportHeight;\n }\n else if (itemOffsetTop < 0) {\n diff = itemOffsetTop;\n }\n if (diff !== 0) {\n scrollElem.scrollTop += diff;\n }\n else if (scrollElem.scrollTop === 0 && translate !== 0) {\n scrollElem.scrollTop = translate;\n }\n }\n else {\n if (itemOffsetTop + itemHeight > viewportHeight + scrollElem.scrollTop) {\n scrollElem.scrollTop = (itemOffsetTop + itemHeight - viewportHeight);\n }\n else if (itemOffsetTop < scrollElem.scrollTop) {\n scrollElem.scrollTop -= scrollElem.scrollTop - itemOffsetTop;\n }\n }\n};\n/**\n * @hidden\n */\nvar itemIndexStartsWith = function (items, text, field) {\n var result = -1;\n if (text) {\n text = text.toLowerCase();\n for (var i = 0; i < items.length; i++) {\n var itemText = (getItemValue(items[i], field) || '') + '';\n if (itemText && itemText.toLowerCase().startsWith(text)) {\n result = i;\n break;\n }\n }\n }\n return result;\n};\n/**\n * @hidden\n */\nvar getItemIndexByText = function (data, text, textField, matchCase) {\n if (matchCase === void 0) { matchCase = false; }\n var casing = function (value) { return matchCase ? value : value.toLowerCase(); };\n return data.findIndex(function (item) {\n return textField ? casing(getItemValue(item, textField)) === casing(text) :\n casing(text) === casing(item.toString());\n });\n};\n/**\n * @hidden\n */\nvar getItemValue = function (item, field) {\n if (field && isPresent(item)) {\n var path = field.split('.');\n var data_1 = item;\n path.forEach(function (p) {\n data_1 = data_1 ? data_1[p] : undefined;\n });\n return data_1;\n }\n return item;\n};\n/**\n * @hidden\n */\nvar matchDataCollections = function (data1, data2, key) {\n if (data1 === void 0) { data1 = []; }\n if (data2 === void 0) { data2 = []; }\n if (data1 === data2) {\n return true;\n }\n if (data1.length !== data2.length) {\n return false;\n }\n for (var i = 0; i < data1.length; i++) {\n if (!areSame(data1[i], data2[i], key)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar removeDataItems = function (items, toRemove, key) {\n toRemove.forEach(function (item) {\n var itemIndex = items.findIndex(function (i) { return areSame(i, item, key); });\n if (itemIndex !== -1) {\n items.splice(itemIndex, 1);\n }\n });\n};\n/**\n * @hidden\n */\nvar areSame = function (item1, item2, key) {\n return item1 === item2 ||\n (isPresent(item1) === isPresent(item2) && getItemValue(item1, key) === getItemValue(item2, key));\n};\n/**\n * @hidden\n */\nvar getFocusedItem = function (data, value, textField) {\n if (value) {\n var selectedIndex = getItemIndexByText(data, value, textField, true);\n return selectedIndex !== -1 ? data[selectedIndex] : data[itemIndexStartsWith(data, value, textField)];\n }\n return data[0];\n};\n/**\n * @hidden\n */\nvar suggestValue = function (value, data, textField) {\n if (data === void 0) { data = []; }\n var suggested = '';\n if (value) {\n var suggestedItem = data[itemIndexStartsWith(data, value, textField)];\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n suggested = suggestedText.substring(value.length);\n }\n }\n }\n return suggested;\n};\n/**\n * @hidden\n */\nvar preventDefaultNonInputs = function (event) {\n if (event.target.nodeName !== 'INPUT') {\n event.preventDefault();\n }\n};\nexport { isPresent, sameCharsOnly, shuffleData, matchText, scrollToItem, itemIndexStartsWith, getItemIndexByText, getItemValue, matchDataCollections, removeDataItems, areSame, getFocusedItem, preventDefaultNonInputs, suggestValue };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { classNames } from '@progress/kendo-vue-common';\nimport { getItemValue } from './utils';\n/**\n * Represents the default `ListDefaultItem` component.\n */\n\nvar ListDefaultItem = {\n name: 'list-default-item',\n props: {\n defaultItem: [Object, String],\n textField: String,\n selected: Boolean\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n },\n onClick: function onClick(e) {\n this.$emit('defaultitemclick', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var _a = this.$props,\n selected = _a.selected,\n defaultItem = _a.defaultItem,\n textField = _a.textField;\n return h(\"div\", {\n onClick: this.onClick,\n on: this.v3 ? undefined : {\n \"click\": this.onClick,\n \"mousedown\": this.onMouseDown\n },\n onMousedown: this.onMouseDown,\n \"class\": classNames('k-list-optionlabel', {\n 'k-state-selected': selected\n })\n }, [getItemValue(defaultItem, textField) || '']);\n }\n};\nexport { ListDefaultItem };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nimport { classNames, getTemplate } from '@progress/kendo-vue-common';\nimport { getItemValue } from './utils';\n/**\n * Represents the default `ListItem` component.\n */\n\nvar ListItem = {\n name: 'list-item',\n props: {\n id: String,\n index: Number,\n dataItem: [Object, String, Number],\n textField: String,\n focused: Boolean,\n selected: Boolean,\n render: Object\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n return {\n v3: v3\n };\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('itemclick', this.$props.index, e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var selected = this.$props.selected;\n var defaultRendering = h(\"li\", {\n id: this.$props.id,\n attrs: this.v3 ? undefined : {\n id: this.$props.id,\n role: \"option\",\n \"aria-selected\": selected\n },\n role: \"option\",\n \"aria-selected\": selected,\n \"class\": classNames('k-item', {\n 'k-state-selected': selected,\n 'k-state-focused': this.$props.focused\n }),\n onClick: this.handleClick,\n on: this.v3 ? undefined : {\n \"click\": this.handleClick\n }\n }, [getItemValue(this.$props.dataItem, this.$props.textField).toString()]);\n return getTemplate.call(this, {\n h: h,\n template: this.$props.render,\n defaultRendering: defaultRendering,\n additionalProps: this.$props,\n additionalListeners: {\n click: this.handleClick\n }\n });\n }\n};\nexport { ListItem };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar inject = allVue.inject;\nimport { ListItem } from './ListItem';\nimport { areSame } from './utils';\nimport { getTemplate } from '@progress/kendo-vue-common';\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, nodata } from '../messages';\n/**\n * Represents the default `List` component.\n */\n\nvar List = {\n name: 'list',\n props: {\n id: String,\n show: Boolean,\n dataItems: Array,\n value: [Object, String, Number, Boolean],\n textField: String,\n valueField: String,\n optionsGuid: String,\n wrapperCssClass: String,\n wrapperStyle: Object,\n listStyle: Object,\n skip: Number,\n focusedIndex: Number,\n highlightSelected: {\n type: Boolean,\n default: true\n },\n itemRender: [String, Function, Object],\n noDataRender: [String, Function, Object]\n },\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var listRef = ref(null);\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n listRef: listRef,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n mounted: function mounted() {\n this.list = this.v3 ? this.listRef : this.$refs.list;\n },\n methods: {\n handleClick: function handleClick(e) {\n this.$emit('listclick', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var localizationService = provideLocalizationService(this);\n var _a = this.$props,\n id = _a.id,\n show = _a.show,\n wrapperCssClass = _a.wrapperCssClass,\n wrapperStyle = _a.wrapperStyle,\n listStyle = _a.listStyle,\n listRef = _a.listRef;\n\n var renderNoValueElement = function renderNoValueElement() {\n var noDataRender = this.$props.noDataRender;\n var noDataElement = h(\"div\", {\n \"class\": 'k-nodata'\n }, [h(\"div\", [localizationService.toLanguageString(nodata, messages[nodata])])]);\n return getTemplate.call(this, {\n h: h,\n template: noDataRender,\n defaultRendering: noDataElement\n });\n };\n\n var renderItems = function renderItems() {\n var _a = this.$props,\n textField = _a.textField,\n valueField = _a.valueField,\n optionsGuid = _a.optionsGuid,\n _b = _a.skip,\n skip = _b === void 0 ? 0 : _b,\n focusedIndex = _a.focusedIndex,\n highlightSelected = _a.highlightSelected,\n value = _a.value,\n itemRender = _a.itemRender;\n var isArray = Array.isArray(value);\n return this.$props.dataItems.map(function (item, index) {\n var realIndex = skip + index;\n var selected = highlightSelected && (!isArray && areSame(item, value, valueField) || isArray && value.findIndex(function (i) {\n return areSame(i, item, valueField);\n }) !== -1);\n return (// @ts-ignore\n h(ListItem, {\n id: \"option-\" + optionsGuid + \"-\" + realIndex,\n attrs: this.v3 ? undefined : {\n id: \"option-\" + optionsGuid + \"-\" + realIndex,\n dataItem: item,\n selected: selected,\n focused: focusedIndex === index,\n index: realIndex,\n textField: textField,\n render: itemRender\n },\n dataItem: item,\n selected: selected,\n focused: focusedIndex === index,\n index: realIndex,\n key: realIndex,\n onItemclick: this.handleClick,\n on: this.v3 ? undefined : {\n \"itemclick\": this.handleClick\n },\n textField: textField,\n render: itemRender\n })\n );\n }, this);\n };\n\n var items = renderItems.call(this);\n return items.length ? h(\"div\", {\n \"class\": wrapperCssClass,\n style: wrapperStyle,\n unselectable: 'on',\n attrs: this.v3 ? undefined : {\n unselectable: 'on'\n }\n }, [h(\"ul\", {\n id: id,\n attrs: this.v3 ? undefined : {\n id: id,\n role: \"listbox\",\n \"aria-hidden\": !show ? true : undefined\n },\n role: \"listbox\",\n \"aria-hidden\": !show ? true : undefined,\n \"class\": 'k-list k-reset',\n ref: this.v3 ? function (el) {\n _this.listRef = el;\n } : 'list',\n style: listStyle\n }, [items])]) : renderNoValueElement.call(this);\n }\n};\nexport { List };","var maxHeightIE = 1533915;\n/**\n * @hidden\n */\n\nvar VirtualScroll =\n/** @class */\nfunction () {\n function VirtualScroll() {\n var _this = this;\n\n this.containerHeight = 0;\n this.skip = 0;\n this.total = 0;\n this.enabled = false;\n this.pageSize = 0;\n this.itemHeight = 0;\n this.prevScrollPos = 0;\n this.listTranslate = 0;\n this.scrollSyncing = false;\n\n this.scrollerRef = function (element) {\n var vs = _this;\n vs.container = element;\n\n if (element) {\n element.setAttribute('unselectable', 'on');\n setTimeout(vs.calcScrollElementHeight.bind(vs), 0);\n }\n };\n\n this.calcScrollElementHeight = function () {\n _this.scrollSyncing = true;\n var heightChanged = false;\n _this.itemHeight = _this.list ? _this.list.children[0].offsetHeight : _this.itemHeight;\n _this.containerHeight = Math.min(maxHeightIE, _this.itemHeight * _this.total);\n var newHeight = _this.containerHeight;\n\n if (_this.scrollElement) {\n heightChanged = _this.scrollElement.style.height !== newHeight + 'px';\n\n if (heightChanged) {\n _this.scrollElement.style.height = newHeight + 'px';\n }\n }\n\n _this.scrollSyncing = false;\n return heightChanged;\n };\n\n this.scrollHandler = this.scrollHandler.bind(this);\n }\n\n Object.defineProperty(VirtualScroll.prototype, \"translate\", {\n get: function get() {\n return this.listTranslate;\n },\n enumerable: false,\n configurable: true\n });\n\n VirtualScroll.prototype.changePage = function (skip, e) {\n var newSkip = Math.min(Math.max(0, skip), this.total - this.pageSize);\n\n if (newSkip !== this.skip) {\n this.PageChange({\n skip: newSkip,\n take: this.pageSize\n }, e);\n }\n };\n\n VirtualScroll.prototype.translateTo = function (dY) {\n this.listTranslate = dY;\n\n if (this.list) {\n this.list.style.transform = 'translateY(' + dY + 'px)';\n }\n };\n\n VirtualScroll.prototype.reset = function () {\n if (this.container) {\n this.calcScrollElementHeight();\n this.container.scrollTop = 0;\n this.translateTo(0);\n }\n };\n\n VirtualScroll.prototype.scrollToEnd = function () {\n if (this.container && this.list) {\n this.calcScrollElementHeight();\n this.container.scrollTop = this.container.scrollHeight - this.container.offsetHeight;\n this.translateTo(this.container.scrollHeight - this.list.offsetHeight);\n }\n };\n\n VirtualScroll.prototype.localScrollUp = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var items;\n var additionalOnTop = scrollTop - targetTranslate;\n\n if (additionalOnTop > height) {\n return;\n }\n\n for (items = 0; items < this.skip; items++) {\n if (targetTranslate + height + additionalOnTop <= scrollTop) {\n break;\n }\n\n targetTranslate -= height;\n }\n\n targetTranslate = this.validateTranslate(targetTranslate);\n\n if (this.skip - items <= 0 && targetTranslate >= scrollTop) {\n this.translateTo(0);\n this.changePage(0, e);\n this.container.scrollTop = 0;\n return;\n }\n\n if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip - items, e);\n }\n };\n\n VirtualScroll.prototype.localScrollDown = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var itemsLenght = this.list.children.length;\n var items;\n\n for (items = 0; items < itemsLenght; items++) {\n if (targetTranslate + height >= scrollTop) {\n break;\n }\n\n targetTranslate += height;\n }\n\n targetTranslate = this.validateTranslate(targetTranslate);\n\n if (items >= itemsLenght && this.skip + items >= this.total) {\n this.translateTo(targetTranslate);\n this.changePage(this.total - 1, e);\n } else if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip + items, e);\n }\n };\n\n VirtualScroll.prototype.scrollNonStrict = function (e) {\n var floatItemIndex = this.total * this.prevScrollPos / this.containerHeight;\n var itemIndex = Math.min(Math.floor(floatItemIndex), this.total - 1);\n var targetTranslate = this.containerHeight * floatItemIndex / this.total;\n targetTranslate = this.validateTranslate(targetTranslate);\n this.translateTo(targetTranslate);\n this.changePage(itemIndex, e);\n };\n\n VirtualScroll.prototype.scrollHandler = function (e) {\n var scrollTop = this.container ? this.container.scrollTop : 0;\n var prev = this.prevScrollPos;\n this.prevScrollPos = scrollTop;\n\n if (!this.enabled || !this.list || !this.container || this.scrollSyncing) {\n return;\n }\n\n if (scrollTop - prev <= 0 && scrollTop > this.listTranslate - this.list.scrollHeight / 10) {\n this.localScrollUp(e);\n } else if (scrollTop - prev > 0 && scrollTop < this.listTranslate + this.list.scrollHeight * 2 / 3) {\n this.localScrollDown(e);\n } else {\n this.scrollNonStrict(e);\n }\n };\n\n VirtualScroll.prototype.validateTranslate = function (translate) {\n translate = Math.max(0, translate);\n translate = Math.min(this.containerHeight - this.list.offsetHeight, translate);\n return translate;\n };\n\n return VirtualScroll;\n}();\n\nexport default VirtualScroll;","import { isPresent } from './utils';\nimport { Keys } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function () {\n function Navigation() {\n }\n Navigation.prototype.navigate = function (args) {\n var keyCode = args.keyCode;\n if (keyCode === Keys.up || keyCode === Keys.left) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: -1 });\n }\n else if (keyCode === Keys.down || keyCode === Keys.right) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: 1 });\n }\n else if (keyCode === Keys.home) {\n return 0;\n }\n else if (keyCode === Keys.end) {\n return args.max;\n }\n };\n Navigation.prototype.next = function (args) {\n if (!isPresent(args.current)) {\n return args.min;\n }\n else {\n return Math.min(args.max, Math.max(args.current + args.step, args.min));\n }\n };\n return Navigation;\n}());\nexport { Navigation };\n","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport VirtualScroll from './VirtualScroll';\nimport { Navigation } from './Navigation';\nimport { scrollToItem, areSame } from './utils';\nimport { guid } from '@progress/kendo-vue-common';\n/**\n * @hidden\n */\n\nvar DropDownBase =\n/** @class */\nfunction () {\n function DropDownBase(component) {\n var _this = this;\n\n this.vs = new VirtualScroll();\n this.navigation = new Navigation();\n\n this.handleItemClick = function (index, event) {\n var state = _this.initState();\n\n state.event = event;\n\n _this.component.handleItemSelect(index, state);\n\n _this.togglePopup(state);\n\n _this.applyState(state);\n };\n\n this.handleFocus = function (event) {\n if (!_this.component.currentFocused) {\n var state = _this.initState(); // @ts-ignore\n\n\n state.data.currentFocused = true;\n state.events.push({\n type: 'focus'\n });\n state.event = event;\n\n _this.applyState(state);\n }\n };\n\n this.filterChanged = function (text, state) {\n // @ts-ignore\n var _a = _this.component.$props,\n textField = _a.textField,\n filterable = _a.filterable;\n\n if (filterable) {\n state.events.push({\n type: 'filterchange',\n filter: {\n field: textField,\n operator: 'contains',\n ignoreCase: true,\n value: text\n }\n });\n }\n };\n\n this.togglePopup = function (state) {\n // @ts-ignore\n var props = _this.component.$props; // @ts-ignore\n\n var opened = props.opened !== undefined ? props.opened : _this.component.currentOpened; // @ts-ignore\n\n if (props.opened === undefined) {\n // @ts-ignore\n state.data.currentOpened = !opened;\n }\n\n if (opened) {\n state.events.push({\n type: 'close'\n });\n } else {\n state.events.push({\n type: 'open'\n });\n\n _this.calculatePopupWidth();\n }\n };\n\n this.pageChange = function (page, event) {\n var state = _this.initState();\n\n state.event = event;\n\n _this.triggerOnPageChange(state, page.skip, page.take);\n\n _this.applyState(state);\n };\n\n this.scrollToVirtualItem = function (virtual, selectedItemIndex) {\n var vs = _this.vs;\n vs.enabled = false;\n\n if (virtual.skip === 0) {\n vs.reset();\n } else if (virtual.skip + virtual.pageSize === virtual.total) {\n vs.scrollToEnd();\n } else {\n var scrollTop = vs.translate;\n\n if (scrollTop === 0) {\n vs.calcScrollElementHeight();\n scrollTop = vs.itemHeight * virtual.skip;\n vs.translateTo(scrollTop - vs.itemHeight);\n }\n\n if (vs.container) {\n vs.container.scrollTop = scrollTop;\n }\n\n _this.scrollToItem(selectedItemIndex, true);\n }\n\n setTimeout(function () {\n return vs.enabled = true;\n }, 10);\n };\n\n this.listBoxId = guid();\n this.guid = guid();\n this.component = component;\n this.vs.PageChange = this.pageChange;\n }\n\n DropDownBase.prototype.didMount = function () {\n // @ts-ignore\n var props = this.component.$props;\n var popupSettings = props.popupSettings || {};\n var style = props.style || {};\n var popupWidth = popupSettings.width;\n var shouldUpdate = props.opened === true;\n\n if (popupWidth === undefined) {\n this.calculatePopupWidth();\n }\n\n if (props.dir === undefined && style.direction === undefined) {\n this.calculateDir();\n shouldUpdate = true;\n }\n\n if (shouldUpdate) {\n // @ts-ignore\n this.component.$forceUpdate();\n }\n };\n\n DropDownBase.prototype.calculateDir = function () {\n if (this.component.element) {\n this.dirCalculated = window.getComputedStyle(this.component.element).direction || undefined;\n }\n };\n\n DropDownBase.prototype.calculatePopupWidth = function () {\n if (this.wrapper) {\n this.popupWidth = this.wrapper.offsetWidth + 'px';\n }\n };\n\n DropDownBase.prototype.scrollToItem = function (itemIndex, vsEnabled) {\n var list = this.list || this.vs.list;\n var item = list ? list.children[0] : undefined;\n\n if (item && itemIndex >= 0) {\n var vs = this.vs;\n var scrollElement = vs.container || list.parentNode;\n var virtualScroll = vsEnabled !== undefined ? vsEnabled : vs.enabled;\n scrollToItem(scrollElement, item.offsetHeight, itemIndex, vs.translate, virtualScroll);\n }\n };\n\n DropDownBase.prototype.initState = function () {\n var state = {\n data: {},\n events: [],\n event: undefined\n };\n return state;\n };\n\n DropDownBase.prototype.applyState = function (state) {\n var _this = this;\n\n if (Object.keys(state.data).length > 0) {\n Object.keys(state.data).forEach(function (key) {\n _this.component[key] = state.data[key];\n });\n } // @ts-ignore\n\n\n var newValue = this.component.computedValue();\n var eventArgs = {\n event: state.event,\n component: this.component,\n target: {\n // @ts-ignore\n name: this.component.$props.name,\n value: newValue\n },\n value: newValue\n };\n state.events.forEach(function (eventData) {\n var type = eventData.type;\n delete eventData.type;\n\n if (type) {\n // @ts-ignore\n _this.component.$emit(type, __assign(__assign({}, eventArgs), eventData));\n\n if (type === 'change') {\n // @ts-ignore\n _this.component.$emit('changemodel', newValue); // @ts-ignore\n\n\n _this.component.$emit('update:modelValue', newValue);\n }\n }\n });\n };\n\n DropDownBase.prototype.triggerOnPageChange = function (state, skip, take) {\n // @ts-ignore\n var virtual = this.component.$props.virtual;\n\n if (virtual) {\n var newSkip = Math.min(Math.max(0, skip), Math.max(0, virtual.total - take));\n\n if (newSkip !== virtual.skip) {\n state.events.push({\n type: 'pagechange',\n page: {\n skip: newSkip,\n take: take\n }\n });\n }\n }\n };\n\n DropDownBase.prototype.triggerPageChangeCornerItems = function (item, state) {\n // @ts-ignore\n var props = this.component.$props;\n var _a = props.dataItems,\n dataItems = _a === void 0 ? [] : _a,\n dataItemKey = props.dataItemKey,\n virtual = props.virtual;\n var opened = props.opened !== undefined ? props.opened : this.component.currentOpened;\n\n if (item && virtual && this.vs.enabled) {\n if (virtual.skip > 0 && areSame(item, dataItems[0], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip - 1, virtual.pageSize);\n } else if (!opened && virtual.skip + virtual.pageSize < virtual.total && areSame(item, dataItems[dataItems.length - 1], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip + 1, virtual.pageSize);\n }\n }\n };\n\n DropDownBase.defaultProps = {\n popupSettings: {\n animate: true,\n height: '200px'\n },\n required: false,\n validityStyles: true\n };\n return DropDownBase;\n}();\n\nexport default DropDownBase;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { templateRendering, getListeners, classNames, Keys, guid, noop, getTemplate } from '@progress/kendo-vue-common';\nimport { ListContainer } from '../common/ListContainer';\nimport { ListFilter } from '../common/ListFilter';\nimport { ListDefaultItem } from '../common/ListDefaultItem';\nimport { List } from '../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport { isPresent, getItemValue, sameCharsOnly, shuffleData, matchText, areSame, preventDefaultNonInputs, getFocusedItem } from '../common/utils';\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\n/**\n * Represents the default `DropDownList` component.\n */\n\nvar DropDownList = {\n model: {\n event: 'changemodel'\n },\n props: {\n id: String,\n dataItemKey: {\n type: [Object, String]\n },\n defaultValue: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n name: String,\n modelValue: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n value: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n label: {\n type: String\n },\n placeholder: String,\n required: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: undefined\n },\n validate: {\n type: Boolean\n },\n validationMessage: {\n type: String,\n default: undefined\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n delay: {\n type: Number,\n default: 500\n },\n ignoreCase: {\n type: Boolean,\n default: true\n },\n iconClassName: String,\n defaultItem: [Object, String],\n valueRender: [String, Function, Object],\n valueMap: Function,\n opened: {\n type: Boolean,\n default: undefined\n },\n disabled: Boolean,\n dir: {\n type: String,\n default: undefined\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n accessKey: String,\n dataItems: Array,\n textField: String,\n className: String,\n loading: Boolean,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {\n animate: true,\n height: '200px'\n };\n }\n },\n itemRender: [String, Function, Object],\n listNoDataRender: [String, Function, Object],\n focusedItemIndex: Function,\n header: [String, Function, Object],\n footer: [String, Function, Object],\n filterable: Boolean,\n filter: {\n type: String,\n default: undefined\n },\n virtual: {\n type: Object,\n default: undefined\n },\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n data: function data() {\n return {\n hasMounted: false,\n currentText: '',\n currentValue: '',\n currentFocused: false,\n currentOpened: false,\n searchState: {\n word: '',\n last: ''\n },\n _skipFocusEvent: false,\n valueDuringOnChange: {},\n _navigated: false\n };\n },\n watch: {\n currentOpened: function currentOpened(_, oldValue) {\n // @ts-ignore\n this.prevCurrentOpened = oldValue;\n },\n opened: function opened(_, oldValue) {\n // @ts-ignore\n this.prevOpened = oldValue;\n },\n value: function value(_, oldValue) {\n // @ts-ignore\n this.prevValue = oldValue;\n },\n currentValue: function currentValue(_, oldValue) {\n // @ts-ignore\n this.prevCurrnetValue = oldValue;\n },\n virtual: function virtual(_newValue, _oldValue) {\n // @ts-ignore\n if (_newValue.total !== _oldValue.total) {\n // @ts-ignore\n this.virtualTotalHasChanged = true;\n } // @ts-ignore\n\n\n this.virtualHasChanged = true;\n }\n },\n created: function created() {\n this.valueDuringOnChange = undefined;\n this.currentText = undefined;\n this.currentValue = undefined;\n this.currentFocused = undefined;\n this.currentOpened = undefined;\n this.base = new DropDownBase(this);\n this.anchor = guid();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var selectRef = ref(null);\n var baseWrapperRef = ref(null);\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n selectRef: selectRef,\n baseWrapperRef: baseWrapperRef,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n mounted: function mounted() {\n this.hasMounted = true;\n this.select = this.v3 ? this.selectRef : this.$refs.select;\n this.base.wrapper = this.v3 ? this.baseWrapperRef : this.$refs.baseWrapper;\n this.base.didMount();\n this.setValidity();\n },\n updated: function updated() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey,\n virtual = _a.virtual;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;\n var opening = !prevOpened && opened;\n var closing = prevOpened && !opened;\n var list = this.$refs.list;\n var filterInput = this.$refs.filterInput;\n var scrollElement = this.$refs.scrollElement;\n var scroller = this.$refs.scroller;\n\n if (list) {\n // @ts-ignore\n this.base.vs.list = list.list; // @ts-ignore\n\n this.base.list = list.list;\n }\n\n if (scrollElement) {\n this.base.vs.scrollElement = scrollElement;\n }\n\n if (filterInput) {\n this.filterInput = filterInput;\n }\n\n if (scroller) {\n this.base.vs.scrollerRef(scroller);\n }\n\n if (!this.$props.popupSettings.animate) {\n if (opening) {\n this.onPopupOpened();\n } else if (closing) {// this.onPopupClosed();\n }\n } // @ts-ignore\n\n\n if (virtual && this.virtualTotalHasChanged) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset(); // @ts-ignore\n\n this.virtualTotalHasChanged = false;\n } else {\n var selectedItem_1 = this.computedValue();\n var prevSelectedItem = this.prevValue !== undefined ? this.prevValue : this.prevCurrnetValue;\n var selectedItemIndex = dataItems.findIndex(function (i) {\n return areSame(i, selectedItem_1, dataItemKey);\n });\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem_1, dataItemKey);\n\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n this.prevCurrentOpened = true;\n } else if (opening && !virtual) {\n this.base.scrollToItem(selectedItemIndex);\n this.prevCurrentOpened = true;\n } else if (opened && prevOpened && selectedItem_1 && selectedItemChanged && !this._navigated) {\n this.base.scrollToItem(selectedItemIndex);\n } else if (opened && prevOpened && this._navigated) {\n if (this._navigated && virtual && virtual.skip === 0) {\n this.base.vs.reset();\n } else if (this._navigated && virtual && virtual.skip === virtual.total - virtual.pageSize) {\n this.base.vs.scrollToEnd();\n }\n }\n }\n\n this._navigated = false;\n this.setValidity();\n },\n computed: {\n index: {\n get: function get() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey;\n var value = this.computedValue(); // TO DO: deprecate it!\n\n return dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n }\n },\n spanClassNames: {\n get: function get() {\n var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-textbox-container': true,\n 'k-state-focused': this.currentFocused,\n 'k-state-empty': !this.computedValue(),\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n if (this.base.wrapper) {\n this.base.wrapper.focus();\n }\n },\n computedValue: function computedValue() {\n var value;\n\n if (this.valueDuringOnChange !== undefined) {\n value = this.valueDuringOnChange;\n } else if (this.$props.value !== undefined) {\n value = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n value = this.$props.modelValue;\n } else if (this.currentValue !== undefined) {\n value = this.currentValue;\n } else if (this.$props.defaultValue !== undefined) {\n value = this.$props.defaultValue;\n }\n\n if (!isPresent(value) && this.$props.defaultItem !== undefined) {\n value = this.$props.defaultItem;\n }\n\n return value;\n },\n validity: function validity() {\n var customError = this.$props.validationMessage !== undefined;\n var isValid = !this.$props.required || this.computedValue() !== null && this.computedValue() !== '' && this.computedValue() !== undefined;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.computedValue() === null\n };\n },\n handleItemSelect: function handleItemSelect(index, state) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n virtual = _a.virtual,\n dataItemKey = _a.dataItemKey,\n defaultItem = _a.defaultItem;\n var skip = virtual ? virtual.skip : 0;\n var item = index === -1 && defaultItem !== undefined ? defaultItem : dataItems[index - skip];\n var newSelected = !areSame(item, this.computedValue(), dataItemKey);\n this.triggerOnChange(item, state);\n\n if (newSelected) {\n this.base.triggerPageChangeCornerItems(item, state);\n }\n },\n onNavigate: function onNavigate(state, keyCode) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n defaultItem = _a.defaultItem,\n dataItemKey = _a.dataItemKey,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0,\n total: 0,\n pageSize: 0\n } : _c;\n var vs = this.base.vs;\n var value = this.computedValue();\n var index = dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n var newIndex = this.base.navigation.navigate({\n current: virtual.skip + index,\n max: (vs.enabled ? virtual.total : dataItems.length) - 1,\n min: defaultItem !== undefined ? -1 : 0,\n keyCode: keyCode\n });\n\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n\n this.applyState(state);\n },\n search: function search(event) {\n var _this = this;\n\n clearTimeout(this.typingTimeout);\n\n if (!this.$props.filterable) {\n this.typingTimeout = setTimeout(function () {\n return _this.searchState.word = '';\n }, this.$props.delay);\n this.selectNext(event);\n }\n },\n selectNext: function selectNext(event) {\n var _this = this;\n\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey;\n var mappedData = dataItems.map(function (item, idx) {\n return {\n item: item,\n itemIndex: idx\n };\n });\n var word = this.searchState.word;\n var last = this.searchState.last;\n var isInLoop = sameCharsOnly(word, last);\n var dataLength = mappedData.length;\n var startIndex = Math.max(0, dataItems.findIndex(function (i) {\n return areSame(i, _this.computedValue(), dataItemKey);\n }));\n var defaultItem;\n\n if (this.$props.defaultItem) {\n defaultItem = {\n item: this.$props.defaultItem,\n itemIndex: -1\n };\n dataLength += 1;\n startIndex += 1;\n }\n\n startIndex += isInLoop ? 1 : 0;\n mappedData = shuffleData(mappedData, startIndex, defaultItem);\n var text,\n loopMatch,\n nextMatch,\n index = 0;\n var _c = this.$props,\n textField = _c.textField,\n ignoreCase = _c.ignoreCase;\n\n for (; index < dataLength; index++) {\n text = getItemValue(mappedData[index].item, textField);\n loopMatch = isInLoop && matchText(text, last, ignoreCase);\n nextMatch = matchText(text, word, ignoreCase);\n\n if (loopMatch || nextMatch) {\n index = mappedData[index].itemIndex;\n break;\n }\n }\n\n if (index !== dataLength) {\n var state = this.base.initState();\n state.event = event;\n this.handleItemSelect(index, state);\n this.applyState(state);\n this.valueDuringOnChange = undefined;\n }\n },\n handleKeyDown: function handleKeyDown(event) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n filterable = _a.filterable,\n disabled = _a.disabled,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0,\n total: 0,\n pageSize: 0\n } : _c;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var keyCode = event.keyCode;\n var homeOrEndKeys = keyCode === Keys.home || keyCode === Keys.end;\n var upOrDownKeys = keyCode === Keys.up || keyCode === Keys.down;\n var shouldOpen = !opened && (event.altKey && keyCode === Keys.down || keyCode === Keys.enter || keyCode === Keys.space);\n var shouldClose = opened && (event.altKey && keyCode === Keys.up || keyCode === Keys.esc);\n var leftOrRightKeys = keyCode === Keys.left || keyCode === Keys.right;\n var shouldNavigate = upOrDownKeys || !filterable && (leftOrRightKeys || homeOrEndKeys);\n var state = this.base.initState();\n state.event = event;\n\n if (disabled) {\n return;\n } else if (homeOrEndKeys && this.base.vs.enabled) {\n if (keyCode === Keys.home) {\n if (virtual.skip !== 0) {\n this.base.triggerOnPageChange(state, 0, virtual.pageSize);\n this._navigated = true;\n } else {\n this.triggerOnChange(dataItems[0], state);\n }\n } else {\n if (virtual.skip < virtual.total - virtual.pageSize) {\n this.base.triggerOnPageChange(state, virtual.total - virtual.pageSize, virtual.pageSize);\n this._navigated = true;\n } else {\n this.triggerOnChange(dataItems[dataItems.length - 1], state);\n }\n }\n } else if (opened && keyCode === Keys.enter) {\n var focusedIndex = this.focusedIndex();\n\n if (focusedIndex !== undefined) {\n this.handleItemSelect(focusedIndex, state);\n }\n\n this.base.togglePopup(state);\n event.preventDefault();\n } else if (shouldOpen || shouldClose) {\n this.base.togglePopup(state);\n event.preventDefault();\n } else if (shouldNavigate) {\n this.onNavigate(state, keyCode);\n event.preventDefault();\n }\n\n this.applyState(state);\n },\n handleItemClick: function handleItemClick(index, event) {\n this.base.handleItemClick(index, event);\n this.valueDuringOnChange = undefined;\n },\n handleFocus: function handleFocus(event) {\n if (this._skipFocusEvent) {\n return;\n }\n\n this.base.handleFocus(event);\n },\n handleBlur: function handleBlur(event) {\n if (this._skipFocusEvent || !this.currentFocused) {\n return;\n }\n\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var state = this.base.initState();\n state.event = event;\n state.data.currentFocused = false;\n state.events.push({\n type: 'blur'\n });\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n this.applyState(state);\n },\n handleDefaultItemClick: function handleDefaultItemClick(event) {\n var state = this.base.initState();\n state.event = event;\n this.base.togglePopup(state);\n this.triggerOnChange(this.$props.defaultItem, state);\n this.applyState(state);\n },\n handleWrapperClick: function handleWrapperClick(event) {\n var state = this.base.initState();\n state.event = event;\n\n if (!this.currentFocused) {\n // @ts-ignore\n state.data.currentFocused = true;\n }\n\n this.base.togglePopup(state);\n this.applyState(state);\n },\n handleKeyPress: function handleKeyPress(event) {\n if (this.$props.filterable || event.keyCode === Keys.enter) {\n return;\n }\n\n var character = String.fromCharCode(event.charCode || event.keyCode);\n\n if (this.$props.ignoreCase) {\n character = character.toLowerCase();\n }\n\n if (character === ' ') {\n event.preventDefault();\n }\n\n this.searchState = {\n word: this.searchState.word + character,\n last: this.searchState.last + character\n };\n this.search(event);\n },\n handleListFilterChange: function handleListFilterChange(event) {\n var state = this.base.initState();\n state.event = event;\n\n if (this.$props.filter === undefined) {\n // @ts-ignore\n state.data.currentText = event.target.value;\n }\n\n this.base.filterChanged(event.target.value, state);\n this.applyState(state);\n },\n onPopupOpened: function onPopupOpened() {\n if (this.filterInput) {\n this.focusElement(this.filterInput.input);\n }\n },\n onPopupClosed: function onPopupClosed() {\n var _this = this;\n\n if (this.currentFocused) {\n setTimeout(function () {\n if (_this.currentFocused && _this.base.wrapper) {\n _this.focusElement(_this.base.wrapper);\n }\n });\n }\n },\n focusedIndex: function focusedIndex() {\n var filterText = isPresent(this.$props.filter) ? this.$props.filter : this.currentText;\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0\n } : _c,\n dataItemKey = _a.dataItemKey,\n textField = _a.textField,\n focusedItemIndex = _a.focusedItemIndex;\n var value = this.computedValue();\n var selectedIndex = dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n var hasSelected = !(selectedIndex < 0 && !this.$props.defaultItem);\n\n if (!hasSelected && filterText && virtual.skip === 0) {\n return focusedItemIndex ? focusedItemIndex(dataItems, filterText, textField) : dataItems.indexOf(getFocusedItem(dataItems, filterText, textField));\n } else {\n return !hasSelected && virtual.skip === 0 ? 0 : undefined;\n }\n },\n focusElement: function focusElement(element) {\n var _this = this;\n\n this._skipFocusEvent = true;\n element.focus();\n setTimeout(function () {\n return _this._skipFocusEvent = false;\n }, 30);\n },\n setValidity: function setValidity() {\n if (this.select && this.select.setCustomValidity) {\n this.select.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);\n }\n },\n triggerOnChange: function triggerOnChange(item, state) {\n if (areSame(this.computedValue(), item, this.$props.dataItemKey)) {\n return;\n }\n\n if (this.$props.value === undefined) {\n this.currentValue = item;\n }\n\n this.valueDuringOnChange = item;\n state.events.push({\n type: 'change'\n });\n },\n applyState: function applyState(state) {\n this.base.applyState(state);\n this.valueDuringOnChange = undefined;\n }\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n style = _a.style,\n className = _a.className,\n label = _a.label,\n dir = _a.dir,\n _b = _a.virtual,\n virtual = _b === void 0 ? {\n skip: 0\n } : _b;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var text = getItemValue(this.computedValue(), this.$props.textField);\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var base = this.base;\n var vs = base.vs;\n vs.enabled = this.$props.virtual !== undefined;\n var popupSettings = Object.assign({}, {\n animate: true,\n height: '200px'\n }, this.$props.popupSettings);\n\n var dummySelect = function dummySelect(value) {\n var _this = this;\n /* Dummy component to support forms */\n\n\n return h(\"select\", {\n name: this.$props.name,\n attrs: this.v3 ? undefined : {\n name: this.$props.name,\n id: this.$props.id,\n tabIndex: -1,\n \"aria-hidden\": true,\n title: this.$props.label\n },\n id: this.$props.id,\n ref: this.v3 ? function (el) {\n _this.selectRef = el;\n } : 'select',\n tabIndex: -1,\n \"aria-hidden\": true,\n title: this.$props.label,\n style: {\n opacity: 0,\n width: 1,\n border: 0,\n zIndex: -1,\n position: 'absolute',\n left: '50%'\n }\n }, [h(\"option\", {\n value: this.v3 ? this.$props.valueMap ? this.$props.valueMap.call(undefined, value) : value : null,\n domProps: this.v3 ? undefined : {\n \"value\": this.$props.valueMap ? this.$props.valueMap.call(undefined, value) : value\n }\n })]);\n };\n\n var renderDropDownWrapper = function renderDropDownWrapper() {\n var _this = this;\n\n var _a = this.$props,\n dataItemKey = _a.dataItemKey,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n disabled = _a.disabled,\n tabIndex = _a.tabIndex,\n loading = _a.loading,\n iconClassName = _a.iconClassName;\n var valueRender = templateRendering.call(this, this.$props.valueRender, getListeners.call(this));\n var focused = this.currentFocused;\n var value = this.computedValue();\n var selectedIndex = dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n var valueDefaultRendering = h(\"span\", {\n \"class\": \"k-input\"\n }, [text]);\n var valueElement = getTemplate.call(this, {\n h: h,\n template: valueRender,\n defaultRendering: valueDefaultRendering,\n additionalProps: __assign({\n value: this.computedValue()\n }, this.$data)\n });\n return h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.baseWrapperRef = el;\n } : 'baseWrapper',\n role: 'listbox',\n attrs: this.v3 ? undefined : {\n role: 'listbox',\n tabIndex: disabled ? undefined : tabIndex,\n accessKey: this.$props.accessKey,\n \"aria-disabled\": disabled || undefined,\n \"aria-haspopup\": true,\n \"aria-expanded\": opened || false,\n \"aria-owns\": this.base.listBoxId,\n \"aria-activedescendant\": 'option-' + this.base.guid + '-' + (selectedIndex + virtual.skip),\n \"aria-label\": this.$props.label,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy\n },\n tabIndex: disabled ? undefined : tabIndex,\n accessKey: this.$props.accessKey,\n \"class\": classNames('k-dropdown-wrap', {\n 'k-state-default': !disabled,\n 'k-state-focused': focused,\n 'k-state-disabled': disabled\n }),\n style: this.$props.style,\n onKeydown: this.handleKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.handleKeyDown,\n \"keypress\": this.handleKeyPress,\n \"click\": disabled ? noop : this.handleWrapperClick\n },\n onKeypress: this.handleKeyPress,\n onClick: disabled ? noop : this.handleWrapperClick,\n \"aria-disabled\": disabled || undefined,\n \"aria-haspopup\": true,\n \"aria-expanded\": opened || false,\n \"aria-owns\": this.base.listBoxId,\n \"aria-activedescendant\": 'option-' + this.base.guid + '-' + (selectedIndex + virtual.skip),\n \"aria-label\": this.$props.label,\n \"aria-labelledby\": this.$props.ariaLabelledBy,\n \"aria-describedby\": this.$props.ariaDescribedBy\n }, [valueElement, h(\"span\", {\n \"class\": \"k-select\"\n }, [h(\"span\", {\n \"class\": classNames('k-icon', iconClassName, {\n 'k-i-arrow-s': !loading && !iconClassName,\n 'k-i-loading': loading && !iconClassName\n })\n })]), dummySelect.call(this, value)]);\n };\n\n var renderDefaultItem = function renderDefaultItem() {\n var _a = this.$props,\n textField = _a.textField,\n defaultItem = _a.defaultItem,\n dataItemKey = _a.dataItemKey;\n return defaultItem !== undefined && // @ts-ignore\n h(ListDefaultItem, {\n defaultItem: defaultItem,\n attrs: this.v3 ? undefined : {\n defaultItem: defaultItem,\n textField: textField,\n selected: areSame(this.computedValue(), defaultItem, dataItemKey)\n },\n textField: textField,\n selected: areSame(this.computedValue(), defaultItem, dataItemKey),\n key: \"defaultitemkey\",\n onDefaultitemclick: this.handleDefaultItemClick,\n on: this.v3 ? undefined : {\n \"defaultitemclick\": this.handleDefaultItemClick\n }\n });\n };\n\n var renderList = function renderList() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n dataItemKey = _a.dataItemKey;\n var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));\n var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));\n var skip = virtual.skip;\n var translate = \"translateY(\" + vs.translate + \"px)\";\n return (// @ts-ignore\n h(List, {\n id: this.base.listBoxId,\n attrs: this.v3 ? undefined : {\n id: this.base.listBoxId,\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: this.focusedIndex(),\n value: this.computedValue(),\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: this.base.guid,\n wrapperStyle: !vs.enabled ? {\n maxHeight: popupSettings.height\n } : {\n float: 'left',\n width: '100%'\n },\n wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined,\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n skip: skip,\n itemRender: itemRender,\n noDataRender: listNoDataRender\n },\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: this.focusedIndex(),\n value: this.computedValue(),\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: this.base.guid,\n ref: 'list',\n wrapperStyle: !vs.enabled ? {\n maxHeight: popupSettings.height\n } : {\n float: 'left',\n width: '100%'\n },\n wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined,\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n key: \"listkey\",\n skip: skip,\n onListclick: this.handleItemClick,\n on: this.v3 ? undefined : {\n \"listclick\": this.handleItemClick\n },\n itemRender: itemRender,\n noDataRender: listNoDataRender\n })\n );\n };\n\n var renderListFilter = function renderListFilter() {\n var filterText = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n return this.$props.filterable && // @ts-ignore\n h(ListFilter, {\n value: filterText,\n attrs: this.v3 ? undefined : {\n value: filterText\n },\n ref: 'filterInput',\n onChange: this.handleListFilterChange,\n on: this.v3 ? undefined : {\n \"change\": this.handleListFilterChange,\n \"keydown\": this.handleKeyDown\n },\n onKeydown: this.handleKeyDown\n });\n }; // Common rendering\n\n\n var renderScrollWrapper = function renderScrollWrapper(children) {\n return vs.enabled ? h(\"div\", {\n onScroll: vs.scrollHandler,\n on: this.v3 ? undefined : {\n \"scroll\": vs.scrollHandler\n },\n ref: 'scroller',\n style: {\n height: popupSettings.height,\n overflowY: 'scroll'\n }\n }, [children]) : children;\n };\n\n var renderScrollElement = function renderScrollElement() {\n return vs.enabled && h(\"div\", {\n ref: 'scrollElement',\n key: 'scrollElementKey'\n });\n };\n\n var renderListContainer = function renderListContainer() {\n var _this2 = this;\n\n var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));\n var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));\n var header = getTemplate.call(this, {\n h: h,\n template: headerTemplate\n });\n var footer = getTemplate.call(this, {\n h: h,\n template: footerTemplate\n });\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n return (// @ts-ignore function children\n h(ListContainer, {\n onMousedown: preventDefaultNonInputs,\n on: this.v3 ? undefined : {\n \"mousedown\": preventDefaultNonInputs,\n \"open\": this.onPopupOpened,\n \"close\": this.onPopupClosed,\n \"blur\": this.handleBlur\n },\n dir: dir !== undefined ? dir : base.dirCalculated,\n attrs: this.v3 ? undefined : {\n dir: dir !== undefined ? dir : base.dirCalculated,\n width: popupWidth // @ts-ignore\n ,\n popupSettings: {\n className: classNames('k-list-container k-reset', popupSettings.className),\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened\n }\n },\n width: popupWidth,\n popupSettings: {\n className: classNames('k-list-container k-reset', popupSettings.className),\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened\n },\n onOpen: this.onPopupOpened,\n onClose: this.onPopupClosed,\n onBlur: this.handleBlur\n }, this.v3 ? function () {\n return [renderListFilter.call(_this2), _this2.$props.virtual ? renderDefaultItem.call(_this2) : undefined, _this2.$props.virtual && header, renderScrollWrapper.call(_this2, !_this2.$props.virtual ? [renderDefaultItem.call(_this2), header, renderList.call(_this2), footer, renderScrollElement.call(_this2)] : [renderList.call(_this2), renderScrollElement.call(_this2)]), _this2.$props.virtual && footer];\n } : [renderListFilter.call(_this2), _this2.$props.virtual ? renderDefaultItem.call(_this2) : undefined, _this2.$props.virtual && header, renderScrollWrapper.call(_this2, !_this2.$props.virtual ? [renderDefaultItem.call(_this2), header, renderList.call(_this2), footer, renderScrollElement.call(_this2)] : [renderList.call(_this2), renderScrollElement.call(_this2)]), _this2.$props.virtual && footer])\n );\n };\n\n if (this.$props.virtual !== undefined) {\n base.vs.skip = virtual.skip; // @ts-ignore\n\n base.vs.total = virtual.total; // @ts-ignore\n\n base.vs.pageSize = virtual.pageSize;\n }\n\n var dropdownlist = h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this.anchor,\n \"class\": classNames('k-widget k-dropdown k-header', {\n 'k-state-invalid': !isValid\n }, className),\n style: !label ? style : __assign(__assign({}, style), {\n width: undefined\n }),\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n },\n onMousedown: opened ? preventDefaultNonInputs : noop,\n on: this.v3 ? undefined : {\n \"mousedown\": opened ? preventDefaultNonInputs : noop,\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n onFocusin: this.handleFocus,\n onFocusout: this.handleBlur\n }, [renderDropDownWrapper.call(this), renderListContainer.call(this)]);\n return label ? h(\"span\", {\n \"class\": this.spanClassNames,\n onFocusin: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.handleFocus,\n \"focusout\": this.handleBlur\n },\n onFocusout: this.handleBlur,\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [dropdownlist, this.$props.label ? this.$props.id ? h(\"label\", {\n \"for\": this.$props.id,\n attrs: this.v3 ? undefined : {\n \"for\": this.$props.id\n },\n \"class\": \"k-label\"\n }, [this.$props.label]) : h(\"span\", {\n \"class\": \"k-label\"\n }, [this.$props.label]) : null]) : dropdownlist;\n }\n};\nexport { DropDownList };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\n/**\n * Represents the default `SearchBar` component.\n */\n\nvar SearchBar = {\n name: 'search-bar',\n // @ts-ignore\n emits: {\n 'change': null,\n 'keydown': null,\n 'focus': null,\n 'blur': null\n },\n props: {\n value: String,\n id: String,\n placeholder: String,\n tabIndex: Number,\n size: {\n type: Number,\n default: undefined\n },\n suggestedText: String,\n focused: Boolean,\n disabled: Boolean,\n readOnly: Boolean,\n expanded: Boolean,\n owns: String,\n name: String,\n activedescendant: String,\n describedby: String,\n clearButton: Boolean,\n accessKey: String\n },\n data: function data() {\n return {\n prevValue: undefined,\n prevSuggestedText: undefined\n };\n },\n watch: {\n suggestedText: function suggestedText(_, oldValue) {\n this.prevSuggestedText = oldValue;\n },\n value: function value(_, oldValue) {\n this.prevValue = oldValue;\n }\n },\n updated: function updated() {\n var _a = this.$props,\n value = _a.value,\n suggestedText = _a.suggestedText,\n focused = _a.focused;\n\n if (!this.input) {\n this.input = this.$refs.input;\n }\n\n var input = this.input;\n var valueChanged = this.$data.prevValue !== value || suggestedText !== this.prevSuggestedText;\n var deleting = valueChanged && this.$data.prevValue && this.$data.prevValue.startsWith(value) && !(this.$data.prevSuggestedText && suggestedText && this.$data.prevSuggestedText.endsWith(suggestedText));\n\n if (focused && input && document.activeElement !== input) {\n input.focus();\n }\n\n if (suggestedText && valueChanged && !deleting && input) {\n input.setSelectionRange(value.length - suggestedText.length, value.length);\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef\n };\n },\n mounted: function mounted() {\n this.input = this.v3 ? this.inputRef : this.$refs.input;\n },\n methods: {\n onChange: function onChange(e) {\n this.$emit('change', e);\n },\n onBlur: function onBlur(e) {\n this.$emit('blur', e);\n },\n onFocus: function onFocus(e) {\n this.$emit('focus', e);\n },\n onKeyDown: function onKeyDown(e) {\n this.$emit('keydown', e);\n },\n clearButtonClick: function clearButtonClick(e) {\n this.$emit('clearbuttonclick', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var suggestedText = this.$props.suggestedText;\n return h(\"span\", {\n \"class\": \"k-searchbar\",\n key: \"searchbar\"\n }, [h(\"input\", {\n autoComplete: \"off\",\n attrs: this.v3 ? undefined : {\n autoComplete: \"off\",\n id: this.$props.id,\n type: \"text\",\n placeholder: this.$props.placeholder,\n tabIndex: this.$props.tabIndex,\n accessKey: this.$props.accessKey,\n role: \"listbox\",\n name: this.$props.name,\n \"aria-disabled\": this.$props.disabled || undefined,\n disabled: this.$props.disabled || undefined,\n readOnly: this.$props.readOnly || undefined,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": this.$props.expanded || false,\n \"aria-owns\": this.$props.owns,\n \"aria-activedescendant\": this.$props.activedescendant,\n \"aria-describedby\": this.$props.describedby\n },\n id: this.$props.id,\n type: \"text\",\n placeholder: this.$props.placeholder,\n \"class\": \"k-input\",\n tabIndex: this.$props.tabIndex,\n accessKey: this.$props.accessKey,\n role: \"listbox\",\n name: this.$props.name,\n value: this.v3 ? this.$props.value : null,\n domProps: this.v3 ? undefined : {\n \"value\": this.$props.value\n },\n onInput: this.onChange,\n on: this.v3 ? undefined : {\n \"input\": this.onChange,\n \"keydown\": this.onKeyDown,\n \"focusin\": this.onFocus,\n \"blur\": this.onBlur\n },\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n onKeydown: this.onKeyDown,\n onFocusin: this.onFocus,\n onBlur: this.onBlur,\n \"aria-disabled\": this.$props.disabled || undefined,\n disabled: this.$props.disabled || undefined,\n readOnly: this.$props.readOnly || undefined,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": this.$props.expanded || false,\n \"aria-owns\": this.$props.owns,\n \"aria-activedescendant\": this.$props.activedescendant,\n \"aria-describedby\": this.$props.describedby\n })]);\n }\n};\nexport { SearchBar };","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar inject = allVue.inject;\nimport { provideLocalizationService } from '@progress/kendo-vue-intl';\nimport { messages, clear } from '../messages';\n/**\n * Represents the default `ClearButton` component.\n */\n\nvar ClearButton = {\n name: 'clear-button',\n inject: {\n kendoLocalizationService: {\n default: null\n }\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var kendoLocalizationService = inject('kendoLocalizationService', {});\n return {\n v3: v3,\n kendoLocalizationService: kendoLocalizationService\n };\n },\n methods: {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n },\n onClickHandler: function onClickHandler(e) {\n this.$emit('clearclick', e);\n }\n },\n // @ts-ignore\n render: function render(createElement) {\n var h = gh || createElement;\n var title = provideLocalizationService(this).toLanguageString(clear, messages[clear]);\n return h(\"span\", {\n \"class\": \"k-icon k-clear-value k-i-close\",\n role: \"button\",\n attrs: this.v3 ? undefined : {\n role: \"button\",\n tabIndex: -1,\n title: title\n },\n onClick: this.onClickHandler,\n on: this.v3 ? undefined : {\n \"click\": this.onClickHandler,\n \"mousedown\": this.onMouseDown\n },\n onMousedown: this.onMouseDown,\n tabIndex: -1,\n title: title,\n key: \"clearbutton\"\n });\n }\n};\nexport { ClearButton };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport DropDownBase from '../common/DropDownBase';\nimport { guid, classNames, Keys, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\nimport { areSame, itemIndexStartsWith, getItemIndexByText, getItemValue, isPresent, suggestValue as _suggestValue } from '../common/utils';\nimport { SearchBar } from '../common/SearchBar';\nimport { ListContainer } from '../common/ListContainer';\nimport { List } from '../common/List';\nimport { ClearButton } from '../common/ClearButton';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n/**\n * Represents the default `ComboBox` component.\n */\n\nvar ComboBox = {\n model: {\n event: 'changemodel'\n },\n // emits: {\n // onOpen: PropTypes.func,\n // onClose: PropTypes.func,\n // onFocus: PropTypes.func,\n // onBlur: PropTypes.func,\n // onChange: PropTypes.func,\n // },\n props: {\n id: String,\n dataItemKey: {\n type: [Object, String]\n },\n defaultValue: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n name: String,\n modelValue: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n value: {\n type: [String, Object, Number, Boolean],\n default: undefined\n },\n label: {\n type: String\n },\n placeholder: String,\n required: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: undefined\n },\n validationMessage: {\n type: String,\n default: undefined\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n iconClassName: String,\n opened: {\n type: Boolean,\n default: undefined\n },\n disabled: Boolean,\n dir: {\n type: String,\n default: undefined\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n accessKey: String,\n dataItems: Array,\n textField: String,\n className: String,\n loading: Boolean,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {\n animate: true,\n height: '200px'\n };\n }\n },\n itemRender: [String, Function, Object],\n listNoDataRender: [String, Function, Object],\n focusedItemIndex: Function,\n header: [String, Function, Object],\n footer: [String, Function, Object],\n filterable: Boolean,\n filter: {\n type: String,\n default: undefined\n },\n virtual: {\n type: Object,\n default: undefined\n },\n suggest: {\n type: Boolean,\n default: false\n },\n allowCustom: {\n type: Boolean,\n default: false\n },\n clearButton: {\n type: Boolean,\n default: true\n },\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n data: function data() {\n return {\n hasMounted: false,\n currentText: '',\n currentValue: '',\n currentFocused: false,\n currentOpened: false,\n searchState: {\n word: '',\n last: ''\n },\n _skipFocusEvent: false,\n valueDuringOnChange: {},\n _navigated: false,\n suggested: ''\n };\n },\n created: function created() {\n this.valueDuringOnChange = undefined;\n this.currentText = undefined;\n this.currentValue = undefined;\n this.currentFocused = undefined;\n this.currentOpened = undefined;\n this.base = new DropDownBase(this);\n this.anchor = guid();\n this.inputId = guid();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n var elementRef = ref(null);\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef,\n elementRef: elementRef,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n mounted: function mounted() {\n this.hasMounted = true; // @ts-ignore\n\n this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;\n this.base.wrapper = this.v3 ? this.baseWrapperRef : this.$refs.baseWrapper;\n this.element = this.v3 ? this.elementRef : this.$refs.element;\n this.base.didMount();\n this.setValidity();\n },\n updated: function updated() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey,\n virtual = _a.virtual;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;\n var opening = !prevOpened && opened;\n var closing = prevOpened && !opened;\n var list = this.$refs.list;\n var scrollElement = this.$refs.scrollElement;\n var scroller = this.$refs.scroller;\n var selectedItem = this.computedValue();\n this.valueOnDidUpdate = selectedItem;\n\n if (list) {\n // @ts-ignore\n this.base.vs.list = list.list; // @ts-ignore\n\n this.base.list = list.list;\n }\n\n if (scrollElement) {\n this.base.vs.scrollElement = scrollElement;\n }\n\n if (scroller) {\n this.base.vs.scrollerRef(scroller);\n } // @ts-ignore\n\n\n if (virtual && this.virtualTotalHasChanged) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n this.virtualTotalHasChanged = false;\n } else {\n var prevSelectedItem = this.prevValue !== undefined ? this.prevValue : this.prevCurrentValue;\n var selectedItemIndex = dataItems.findIndex(function (i) {\n return areSame(i, selectedItem, dataItemKey);\n });\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem, dataItemKey);\n\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n this.prevCurrentOpened = true;\n } else if (opening && !virtual) {\n this.base.scrollToItem(selectedItemIndex);\n this.prevCurrentOpened = true;\n } else if (opened && prevOpened && selectedItem && selectedItemChanged) {\n this.base.scrollToItem(selectedItemIndex);\n }\n }\n\n if (opening && this.input) {\n this.input.focus();\n }\n\n this.setValidity();\n },\n watch: {\n currentOpened: function currentOpened(_, oldValue) {\n this.prevCurrentOpened = oldValue;\n },\n opened: function opened(_, oldValue) {\n this.prevOpened = oldValue;\n },\n value: function value(_, oldValue) {\n this.prevValue = oldValue;\n },\n currentValue: function currentValue(_, oldValue) {\n this.prevCurrentValue = oldValue;\n },\n virtual: function virtual(_newValue, _oldValue) {\n if (_newValue.total !== _oldValue.total) {\n this.virtualTotalHasChanged = true;\n }\n\n this.virtualHasChanged = true;\n }\n },\n computed: {\n index: {\n get: function get() {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey;\n var value = this.computedValue(); // TO DO: deprecate it!\n\n return dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n }\n },\n spanClassNames: {\n get: function get() {\n var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-textbox-container': true,\n 'k-state-focused': this.currentFocused,\n 'k-state-empty': !this.computedValue(),\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n if (this.input) {\n this.input.focus();\n }\n },\n computedValue: function computedValue() {\n var value;\n\n if (this.valueDuringOnChange !== undefined) {\n value = this.valueDuringOnChange;\n } else if (this.$props.value !== undefined) {\n value = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n value = this.$props.modelValue;\n } else if (this.currentValue !== undefined) {\n value = this.currentValue;\n } else if (this.$props.defaultValue !== undefined) {\n value = this.$props.defaultValue;\n }\n\n return value;\n },\n validity: function validity() {\n var customError = this.$props.validationMessage !== undefined;\n var isValid = !this.$props.required || this.computedValue() !== null && this.computedValue() !== '' && this.computedValue() !== undefined;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.computedValue() === null\n };\n },\n handleItemSelect: function handleItemSelect(index, state) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n virtual = _a.virtual,\n dataItemKey = _a.dataItemKey;\n var skip = virtual ? virtual.skip : 0;\n var item = dataItems[index - skip];\n var newSelected = !areSame(item, this.computedValue(), dataItemKey);\n this.triggerOnChange(item, state);\n\n if (this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n }\n\n if (newSelected) {\n this.base.triggerPageChangeCornerItems(item, state);\n }\n },\n onNavigate: function onNavigate(state, keyCode) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0\n } : _c;\n var text = this.$props.filter ? this.$props.filter : this.currentText;\n var focusedIndex = this.getFocusedIndex();\n var vs = this.base.vs;\n var value = this.computedValue();\n this.suggested = '';\n\n if (focusedIndex !== -1 && !isPresent(value)) {\n this.handleItemSelect(focusedIndex, state);\n } else if (text === '') {\n this.handleItemSelect(0, state);\n } else {\n var currentIndex = virtual.skip + focusedIndex;\n var newIndex = this.base.navigation.navigate({\n keyCode: keyCode,\n current: currentIndex,\n max: (vs.enabled ? vs.total : dataItems.length) - 1,\n min: 0\n });\n\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n }\n },\n toggleBtnClick: function toggleBtnClick(event) {\n var state = this.base.initState();\n state.syntheticEvent = event;\n this.base.togglePopup(state);\n this.applyState(state);\n },\n applyValueOnEnter: function applyValueOnEnter(value, state) {\n var _a;\n\n var _b = this.$props,\n _c = _b.dataItems,\n dataItems = _c === void 0 ? [] : _c,\n textField = _b.textField,\n allowCustom = _b.allowCustom;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var currentValueText = getItemValue(this.computedValue(), textField);\n var valueIndex = currentValueText === value ? this.index : getItemIndexByText(dataItems, value, textField);\n var itemSelected = valueIndex !== -1;\n var newSelected = undefined;\n this.suggested = '';\n\n if (itemSelected) {\n // typed text match item from list\n newSelected = dataItems[valueIndex];\n } else {\n if (allowCustom) {\n // any custom text not in list\n newSelected = textField !== undefined ? (_a = {}, _a[textField] = value, _a) : value;\n } else {\n return this.selectFocusedItem(value, state);\n }\n }\n\n this.triggerOnChange(newSelected, state);\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n if (this.$props.filter === undefined && this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n }\n\n this.applyState(state);\n },\n applyValueOnRejectSuggestions: function applyValueOnRejectSuggestions(text, state) {\n var _a;\n\n var _b = this.$props,\n _c = _b.dataItems,\n dataItems = _c === void 0 ? [] : _c,\n textField = _b.textField,\n allowCustom = _b.allowCustom;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var valueItemText = getItemValue(this.computedValue(), textField);\n this.suggested = '';\n\n if (text === valueItemText || text === '' && !isPresent(valueItemText)) {\n if (opened) {\n this.base.togglePopup(state);\n }\n\n return this.applyState(state);\n }\n\n var valueIndex = getItemIndexByText(dataItems, text, textField, true);\n var itemSelected = valueIndex !== -1;\n var newSelected = null;\n\n if (itemSelected) {\n newSelected = dataItems[valueIndex];\n } else if (allowCustom) {\n newSelected = text ? textField ? (_a = {}, _a[textField] = text, _a) : text : null;\n }\n\n this.triggerOnChange(newSelected, state);\n\n if (this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n this.base.filterChanged('', state);\n }\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n this.applyState(state);\n },\n selectFocusedItem: function selectFocusedItem(text, state) {\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0\n } : _c,\n _d = _a.focusedItemIndex,\n focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;\n var skip = virtual.skip;\n var focusedIndex = text === '' && skip === 0 ? 0 : focusedItemIndex(dataItems, text, textField);\n\n if (focusedIndex !== -1) {\n this.handleItemSelect(focusedIndex + skip, state);\n } else {\n this.triggerOnChange(null, state);\n\n if (this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n }\n }\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n return this.applyState(state);\n },\n handleItemClick: function handleItemClick(index, event) {\n this.base.handleItemClick(index, event);\n this.valueDuringOnChange = undefined;\n },\n handleFocus: function handleFocus(event) {\n this.$emit('focus', event);\n },\n handleBlur: function handleBlur(event) {\n if (this.currentFocused) {\n var state = this.base.initState();\n state.data.currentFocused = false;\n state.events.push({\n type: 'blur'\n });\n state.event = event;\n this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n },\n onInputKeyDown: function onInputKeyDown(event) {\n var _this = this;\n\n var keyCode = event.keyCode;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var state = this.base.initState();\n state.event = event;\n\n if (!event.altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n this.onNavigate(state, keyCode);\n this.applyState(state);\n return;\n }\n\n var togglePopup = function togglePopup() {\n event.preventDefault();\n\n _this.base.togglePopup(state);\n\n _this.applyState(state);\n };\n\n if (opened) {\n if (event.altKey && keyCode === Keys.up) {\n togglePopup();\n } else if (keyCode === Keys.enter) {\n event.preventDefault();\n this.applyValueOnEnter(event.currentTarget.value, state);\n } else if (keyCode === Keys.esc) {\n this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n } else if (event.altKey && keyCode === Keys.down) {\n togglePopup();\n }\n },\n inputOnChange: function inputOnChange(event) {\n var state = this.base.initState();\n state.event = event;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var input = event.currentTarget;\n var value = input.value;\n\n if (this.$props.suggest) {\n var selectionAtEnd = input.selectionEnd === value.length;\n var prevText = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n\n if (!isPresent(prevText)) {\n prevText = getItemValue(this.computedValue(), this.$props.textField) || '';\n }\n\n var deletedSuggestion = prevText && prevText === value;\n var deleting = prevText && prevText.length > value.length;\n\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n this.suggested = '';\n } else {\n this.suggestValue(value);\n }\n }\n\n if (this.$props.filter === undefined) {\n // @ts-ignore\n state.data.currentText = value;\n }\n\n if (this.currentFocusedItem !== undefined) {\n // @ts-ignore\n state.data.focusedItem = undefined;\n }\n\n if (!opened) {\n this.base.togglePopup(state);\n }\n\n this.base.filterChanged(value, state);\n this.applyState(state);\n },\n clearButtonClick: function clearButtonClick(event) {\n var state = this.base.initState();\n state.event = event;\n event.stopPropagation();\n this.suggested = '';\n this.base.filterChanged('', state);\n\n if (this.$props.filter === undefined && this.currentText !== undefined) {\n // @ts-ignore\n state.data.currentText = undefined;\n }\n\n this.triggerOnChange(null, state);\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n\n if (opened) {\n this.base.togglePopup(state);\n }\n\n this.applyState(state);\n },\n getFocusedIndex: function getFocusedIndex() {\n var value = this.computedValue();\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n dataItemKey = _a.dataItemKey,\n _c = _a.virtual,\n virtual = _c === void 0 ? {\n skip: 0\n } : _c,\n _d = _a.focusedItemIndex,\n focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;\n var text = this.$props.filter ? this.$props.filter : this.currentText;\n\n if (isPresent(value) && text === undefined) {\n return dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n });\n } else if (text) {\n return focusedItemIndex(dataItems, text, textField);\n } else {\n return virtual.skip === 0 ? 0 : -1;\n }\n },\n suggestValue: function suggestValue(value) {\n var _a = this.$props,\n dataItems = _a.dataItems,\n textField = _a.textField;\n this.suggested = _suggestValue(value, dataItems, textField);\n },\n setValidity: function setValidity() {\n if (this.input && this.input.setCustomValidity) {\n this.input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);\n }\n },\n triggerOnChange: function triggerOnChange(item, state) {\n var value = this.computedValue();\n\n if (!isPresent(value) && !isPresent(item) || areSame(value, item, this.$props.dataItemKey)) {\n return;\n }\n\n if (this.$props.value === undefined) {\n this.currentValue = item;\n }\n\n this.valueDuringOnChange = item;\n state.events.push({\n type: 'change'\n });\n },\n applyState: function applyState(state) {\n this.base.applyState(state);\n this.valueDuringOnChange = undefined;\n }\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n dir = _a.dir,\n disabled = _a.disabled,\n clearButton = _a.clearButton,\n label = _a.label,\n textField = _a.textField,\n className = _a.className,\n style = _a.style,\n loading = _a.loading,\n iconClassName = _a.iconClassName,\n virtual = _a.virtual;\n var focused = this.currentFocused;\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;\n var selectedItemText = getItemValue(this.computedValue(), textField);\n var inputText = isPresent(text) ? text : selectedItemText;\n var renderClearButton = clearButton && (!!inputText || isPresent(this.computedValue()));\n var base = this.base;\n var vs = base.vs;\n var id = this.$props.id || this.inputId;\n var popupSettings = Object.assign({}, {\n animate: true,\n height: '200px'\n }, this.$props.popupSettings);\n vs.enabled = virtual !== undefined;\n\n if (virtual !== undefined) {\n vs.skip = virtual.skip;\n vs.total = virtual.total;\n vs.pageSize = virtual.pageSize;\n }\n\n var renderList = function renderList() {\n var _a = this.$props,\n dataItemKey = _a.dataItemKey,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b;\n var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));\n var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));\n\n if (!virtual) {\n virtual = {\n skip: 0\n };\n }\n\n var skip = virtual.skip;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var translate = \"translateY(\" + vs.translate + \"px)\";\n var focusedIndex = opened ? this.getFocusedIndex() : undefined;\n var value = isPresent(text) && text !== selectedItemText ? null : this.computedValue();\n return (// @ts-ignore\n h(List, {\n id: base.listBoxId,\n attrs: this.v3 ? undefined : {\n id: base.listBoxId,\n show: opened,\n dataItems: dataItems,\n focusedIndex: focusedIndex,\n value: value,\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: base.guid,\n wrapperStyle: !vs.enabled ? {\n maxHeight: popupSettings.height\n } : {\n float: 'left',\n width: '100%'\n },\n wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined,\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n skip: skip,\n itemRender: itemRender,\n noDataRender: listNoDataRender\n },\n show: opened,\n dataItems: dataItems,\n focusedIndex: focusedIndex,\n value: value,\n textField: textField,\n valueField: dataItemKey,\n optionsGuid: base.guid,\n ref: 'list',\n wrapperStyle: !vs.enabled ? {\n maxHeight: popupSettings.height\n } : {\n float: 'left',\n width: '100%'\n },\n wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined,\n listStyle: vs.enabled ? {\n transform: translate\n } : undefined,\n key: \"listkey\",\n skip: skip,\n onListclick: this.handleItemClick,\n on: this.v3 ? undefined : {\n \"listclick\": this.handleItemClick\n },\n itemRender: itemRender,\n noDataRender: listNoDataRender\n })\n );\n }; // Common rendering\n\n\n var renderScrollWrapper = function renderScrollWrapper(children) {\n return vs.enabled ? h(\"div\", {\n onScroll: vs.scrollHandler,\n on: this.v3 ? undefined : {\n \"scroll\": vs.scrollHandler\n },\n ref: 'scroller',\n style: {\n height: popupSettings.height,\n overflowY: 'scroll'\n }\n }, [children]) : children;\n };\n\n var renderScrollElement = function renderScrollElement() {\n return vs.enabled && h(\"div\", {\n ref: 'scrollElement',\n key: 'scrollElementKey'\n });\n };\n\n var renderListContainer = function renderListContainer() {\n var _this2 = this;\n\n var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));\n var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));\n var header = getTemplate.call(this, {\n h: h,\n template: headerTemplate\n });\n var footer = getTemplate.call(this, {\n h: h,\n template: footerTemplate\n });\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n return (// @ts-ignore function children\n h(ListContainer, {\n onMousedown: function onMousedown(e) {\n return e.preventDefault();\n },\n on: this.v3 ? undefined : {\n \"mousedown\": function onMousedown(e) {\n return e.preventDefault();\n }\n },\n width: popupWidth,\n attrs: this.v3 ? undefined : {\n width: popupWidth,\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n dir: dir !== undefined ? dir : this.base.dirCalculated\n },\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n dir: dir !== undefined ? dir : this.base.dirCalculated\n }, this.v3 ? function () {\n return [header, renderScrollWrapper.call(_this2, [renderList.call(_this2), renderScrollElement.call(_this2)]), footer];\n } : [header, renderScrollWrapper.call(_this2, [renderList.call(_this2), renderScrollElement.call(_this2)]), footer])\n );\n };\n\n var renderSearchBar = function renderSearchBar(searchText, searchId) {\n var _this = this;\n\n var _a = this.$props,\n placeholder = _a.placeholder,\n tabIndex = _a.tabIndex,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n dataItemKey = _a.dataItemKey;\n\n if (!virtual) {\n virtual = {\n skip: 0\n };\n }\n\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var value = this.computedValue();\n var selectedIndex = Math.max(0, dataItems.findIndex(function (i) {\n return areSame(i, value, dataItemKey);\n }));\n\n if (this.suggested && !areSame(this.valueOnDidUpdate, value, dataItemKey)) {\n this.suggested = '';\n }\n\n return (// @ts-ignore function children\n h(SearchBar, {\n id: searchId,\n attrs: this.v3 ? undefined : {\n id: searchId,\n placeholder: placeholder,\n tabIndex: tabIndex || undefined,\n accessKey: this.$props.accessKey,\n value: searchText + this.suggested,\n suggestedText: this.suggested,\n disabled: disabled,\n expanded: opened,\n owns: this.base.listBoxId,\n activedescendant: this.base.guid + '-' + (selectedIndex + virtual.skip),\n ariaLabelledBy: this.$props.ariaLabelledBy,\n ariaDescribedBy: this.$props.ariaDescribedBy\n },\n placeholder: placeholder,\n tabIndex: tabIndex || undefined,\n accessKey: this.$props.accessKey,\n value: searchText + this.suggested,\n suggestedText: this.suggested,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n onKeydown: this.onInputKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onInputKeyDown,\n \"change\": this.inputOnChange,\n \"focus\": this.base.handleFocus,\n \"blur\": this.handleBlur\n },\n onChange: this.inputOnChange,\n onFocus: this.base.handleFocus,\n onBlur: this.handleBlur,\n disabled: disabled,\n expanded: opened,\n owns: this.base.listBoxId,\n activedescendant: this.base.guid + '-' + (selectedIndex + virtual.skip),\n ariaLabelledBy: this.$props.ariaLabelledBy,\n ariaDescribedBy: this.$props.ariaDescribedBy\n })\n );\n };\n\n var combobox = h(\"span\", {\n \"class\": classNames('k-widget k-combobox k-header', {\n 'k-combobox-clearable': clearButton,\n 'k-state-invalid': !isValid\n }, className),\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this.anchor,\n style: !label ? style : __assign(__assign({}, style), {\n width: undefined\n }),\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n }\n }, [h(\"span\", {\n ref: this.v3 ? function (el) {\n _this.baseWrapperRef = el;\n } : 'baseWrapper',\n \"class\": classNames('k-dropdown-wrap', {\n 'k-state-default': !disabled,\n 'k-state-disabled': disabled,\n 'k-state-focused': focused && !disabled\n })\n }, [renderSearchBar.call(this, inputText || '', id), renderClearButton && // @ts-ignore function children\n h(ClearButton, {\n onClearclick: this.clearButtonClick,\n on: this.v3 ? undefined : {\n \"clearclick\": this.clearButtonClick\n },\n key: \"clearbutton\"\n }), h(\"span\", {\n \"class\": \"k-select\",\n onClick: this.toggleBtnClick,\n on: this.v3 ? undefined : {\n \"click\": this.toggleBtnClick,\n \"mousedown\": function mousedown(e) {\n return e.preventDefault();\n }\n },\n onMousedown: function mousedown(e) {\n return e.preventDefault();\n }\n }, [h(\"span\", {\n \"class\": classNames('k-icon', iconClassName, {\n 'k-i-arrow-s': !loading && !iconClassName,\n 'k-i-loading': loading && !iconClassName\n })\n })])]), renderListContainer.call(this)]);\n return label ? h(\"span\", {\n \"class\": this.spanClassNames,\n onFocusin: this.handleFocus,\n on: this.v3 ? undefined : {\n \"focusin\": this.handleFocus\n },\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [combobox, this.$props.label ? this.$props.id ? h(\"label\", {\n \"for\": this.$props.id,\n attrs: this.v3 ? undefined : {\n \"for\": this.$props.id\n },\n \"class\": \"k-label\"\n }, [this.$props.label]) : h(\"span\", {\n \"class\": \"k-label\"\n }, [this.$props.label]) : null]) : combobox;\n }\n};\nexport { ComboBox };","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n}; // @ts-ignore\n\n\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nimport { SearchBar } from './../common/SearchBar';\nimport { ListContainer } from './../common/ListContainer';\nimport { List } from './../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport { ClearButton } from '../common/ClearButton';\nimport { itemIndexStartsWith, getItemValue, areSame, getFocusedItem } from '../common/utils';\nimport { guid, Keys, classNames, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n/**\n * Represents the default `AutoComplete` component.\n */\n\nvar AutoComplete = {\n model: {\n event: 'changemodel'\n },\n props: {\n id: String,\n defaultValue: {\n type: [String],\n default: undefined\n },\n name: String,\n modelValue: {\n type: [String],\n default: undefined\n },\n value: {\n type: [String],\n default: undefined\n },\n label: {\n type: String\n },\n placeholder: String,\n required: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: undefined\n },\n validationMessage: {\n type: String,\n default: undefined\n },\n validityStyles: {\n type: Boolean,\n default: true\n },\n opened: {\n type: Boolean,\n default: undefined\n },\n disabled: Boolean,\n dir: {\n type: String,\n default: undefined\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n accessKey: String,\n dataItems: Array,\n textField: String,\n className: String,\n loading: Boolean,\n popupSettings: {\n type: Object,\n default: function _default() {\n return {\n animate: true,\n height: '200px'\n };\n }\n },\n itemRender: [String, Function, Object],\n listNoDataRender: [String, Function, Object],\n focusedItemIndex: Function,\n header: [String, Function, Object],\n footer: [String, Function, Object],\n suggest: {\n type: [Boolean, String],\n default: false\n },\n ariaLabelledBy: String,\n ariaDescribedBy: String\n },\n data: function data() {\n return {\n hasMounted: false,\n currentText: '',\n currentValue: '',\n currentFocused: false,\n currentOpened: false,\n focusedItem: undefined,\n searchState: {\n word: '',\n last: ''\n },\n valueDuringOnChange: {},\n _navigated: false,\n suggested: ''\n };\n },\n created: function created() {\n this.valueDuringOnChange = undefined;\n this.currentText = undefined;\n this.currentValue = undefined;\n this.currentFocused = undefined;\n this.currentOpened = undefined;\n this.base = new DropDownBase(this);\n this.anchor = guid();\n this.inputId = guid();\n },\n // @ts-ignore\n setup: !gh ? undefined : function () {\n var v3 = !!gh;\n var inputRef = ref(null);\n var kendoAnchorRef = ref(null);\n return {\n v3: v3,\n inputRef: inputRef,\n kendoAnchorRef: kendoAnchorRef\n };\n },\n mounted: function mounted() {\n this.hasMounted = true; // @ts-ignore\n\n this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;\n this.base.wrapper = this.v3 ? this.kendoAnchorRef : this.$refs[this.anchor];\n this.element = this.v3 ? this.kendoAnchorRef : this.$refs[this.anchor];\n this.base.didMount();\n this.setValidity();\n },\n watch: {\n currentOpened: function currentOpened(_, oldValue) {\n this.prevCurrentOpened = oldValue;\n },\n opened: function opened(_, oldValue) {\n this.prevOpened = oldValue;\n },\n dataItems: function dataItems(_, oldValue) {\n this.prevData = oldValue;\n },\n focusedItem: function focusedItem(_, oldValue) {\n this.prevFocusedItem = oldValue;\n }\n },\n updated: function updated() {\n var _a = this.$props.dataItems,\n dataItems = _a === void 0 ? [] : _a;\n var focusedIndex = this.focusedIndex();\n var focusedItem = dataItems[focusedIndex];\n var dataChanged = this.prevData !== dataItems;\n var focusedItemChanged = focusedItem !== undefined && this.prevFocusedItem !== focusedItem;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;\n var opening = !prevOpened && opened;\n var list = this.$refs.list;\n\n if (list) {\n // @ts-ignore\n this.base.vs.list = list.list; // @ts-ignore\n\n this.base.list = list.list;\n }\n\n if (this.$refs.container) {\n // @ts-ignore\n this.base.vs.container = this.$refs.container.$el; // @ts-ignore\n\n this.base.container = this.$refs.container.$el;\n }\n\n if (dataItems.length && (opened && (focusedItemChanged || dataChanged) || opening)) {\n this.base.scrollToItem(focusedIndex);\n }\n\n this.setValidity();\n },\n computed: {\n spanClassNames: {\n get: function get() {\n var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;\n return {\n 'k-textbox-container': true,\n 'k-state-focused': this.currentFocused,\n 'k-state-empty': !this.computedValue(),\n 'k-state-invalid': !isValid && isValid !== undefined,\n 'k-rtl': this.$props.dir === 'rtl'\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n if (this.input) {\n this.input.focus();\n }\n },\n computedValue: function computedValue() {\n var value;\n\n if (this.valueDuringOnChange !== undefined) {\n value = this.valueDuringOnChange;\n } else if (this.$props.value !== undefined) {\n value = this.$props.value;\n } else if (this.$props.modelValue !== undefined) {\n value = this.$props.modelValue;\n } else if (this.currentValue !== undefined) {\n value = this.currentValue;\n } else if (this.$props.defaultValue !== undefined) {\n value = this.$props.defaultValue;\n }\n\n return value;\n },\n validity: function validity() {\n var customError = this.$props.validationMessage !== undefined;\n var isValid = !this.$props.required || this.computedValue() !== null && this.computedValue() !== '' && this.computedValue() !== undefined;\n var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.computedValue() === null\n };\n },\n handleItemSelect: function handleItemSelect(index, state) {\n var _a = this.$props.dataItems,\n dataItems = _a === void 0 ? [] : _a;\n var newText = getItemValue(dataItems[index], this.$props.textField);\n this.triggerOnChange(newText, state);\n },\n itemFocus: function itemFocus(index, state) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField;\n var focusedItem = dataItems[index];\n\n if (!areSame(this.$data.focusedItem, focusedItem, textField)) {\n state.data.focusedItem = focusedItem;\n }\n },\n togglePopup: function togglePopup(state) {\n this.base.togglePopup(state);\n },\n onNavigate: function onNavigate(state, keyCode) {\n var _this = this;\n\n var typedText = this.computedValue();\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n focusedItemIndex = _a.focusedItemIndex;\n var focusedIndex = this.$data.focusedItem !== undefined ? dataItems.findIndex(function (i) {\n return areSame(i, _this.$data.focusedItem, textField);\n }) : focusedItemIndex ? focusedItemIndex(dataItems, typedText, textField) : dataItems.indexOf(getFocusedItem(dataItems, typedText, textField));\n var newFocused = this.base.navigation.navigate({\n keyCode: keyCode,\n current: focusedIndex,\n max: dataItems.length - 1,\n min: 0\n });\n\n if (newFocused !== undefined) {\n this.itemFocus(newFocused, state);\n }\n\n this.applyState(state);\n },\n\n /**\n * @hidden\n */\n applyInputValue: function applyInputValue(value, state, eventKey) {\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField;\n this.suggested = '';\n\n if (opened && eventKey === Keys.enter) {\n var newValue = getItemValue(dataItems[this.focusedIndex(value)], textField);\n this.triggerOnChange(newValue, state);\n }\n\n if (opened) {\n this.togglePopup(state);\n }\n\n this.applyState(state);\n },\n setValidity: function setValidity() {\n if (this.input && this.input.setCustomValidity) {\n this.input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);\n }\n },\n handleItemClick: function handleItemClick(index, event) {\n this.base.handleItemClick(index, event);\n this.valueDuringOnChange = undefined;\n },\n onChangeHandler: function onChangeHandler(event) {\n var base = this.base;\n var state = base.initState();\n var input = event.target;\n var value = input.value;\n var selectionAtEnd = input.selectionEnd === value.length;\n state.event = event;\n var prevSuggestion = this.suggested;\n var prevValue = this.computedValue();\n var prevUserInput = prevValue && prevSuggestion && prevValue.substring(0, prevValue.length - prevSuggestion.length);\n var deletedSuggestion = prevUserInput && prevUserInput === value;\n var deleting = prevUserInput && prevUserInput.length > value.length;\n var suggest = this.$props.suggest;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n\n if (suggest !== undefined && suggest !== false) {\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n this.suggested = '';\n } else {\n this.suggestValue(value);\n }\n\n var newValue = value + this.suggested;\n var suggestion = {\n userInput: value,\n value: this.suggested\n };\n this.triggerOnChange(newValue, state, {\n suggestion: suggestion\n });\n } else {\n this.suggested = '';\n this.triggerOnChange(value, state);\n }\n\n if (!opened && value || opened && !value) {\n this.togglePopup(state);\n }\n\n state.data.focusedItem = undefined;\n this.applyState(state);\n },\n clearButtonClick: function clearButtonClick(event) {\n var base = this.base;\n var state = base.initState();\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n state.event = event;\n var newValue = '';\n this.suggested = '';\n this.triggerOnChange(newValue, state);\n\n if (this.$data.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n\n if (opened) {\n this.togglePopup(state);\n }\n\n this.applyState(state);\n },\n onInputKeyDown: function onInputKeyDown(event) {\n var keyCode = event.keyCode;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var state = this.base.initState();\n state.event = event;\n\n var preventDefault = function preventDefault() {\n if (opened) {\n event.preventDefault();\n }\n };\n\n if (keyCode === Keys.enter || keyCode === Keys.esc) {\n preventDefault();\n this.applyInputValue(event.currentTarget.value, state, event.keyCode);\n } else if (keyCode === Keys.up || keyCode === Keys.down) {\n preventDefault();\n this.onNavigate(state, keyCode);\n }\n },\n handleBlur: function handleBlur(event) {\n if (this.currentFocused) {\n var state = this.base.initState();\n state.data.focused = false;\n state.events.push({\n type: 'blur'\n });\n state.event = event;\n this.applyInputValue(event.currentTarget.value, state);\n this.currentFocused = false;\n }\n },\n triggerOnChange: function triggerOnChange(newValue, state, eventArgs) {\n if (this.computedValue() === newValue && !eventArgs) {\n return;\n } // @ts-ignore\n\n\n state.data.currentValue = newValue;\n this.valueDuringOnChange = newValue;\n state.events.push(__assign({\n type: 'change'\n }, eventArgs || {}));\n },\n applyState: function applyState(state) {\n this.base.applyState(state);\n this.valueDuringOnChange = undefined;\n },\n suggestValue: function suggestValue(value) {\n this.suggested = '';\n\n if (value) {\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField;\n var suggestedItem = dataItems[itemIndexStartsWith(dataItems, value, textField)];\n\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n this.suggested = suggestedText.substring(value.length);\n }\n }\n }\n },\n focusedIndex: function focusedIndex(value) {\n var _this = this;\n\n var _a = this.$props,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b,\n textField = _a.textField,\n focusedItemIndex = _a.focusedItemIndex;\n var inputValue = value !== undefined ? value : this.computedValue();\n return this.$data.focusedItem !== undefined ? dataItems.findIndex(function (i) {\n return areSame(i, _this.$data.focusedItem, textField);\n }) : focusedItemIndex ? focusedItemIndex(dataItems, inputValue, textField) : Math.max(0, dataItems.indexOf(getFocusedItem(dataItems, inputValue, textField)));\n }\n },\n render: function render(createElement) {\n var _this = this;\n\n var h = gh || createElement;\n var _a = this.$props,\n dir = _a.dir,\n disabled = _a.disabled,\n label = _a.label,\n className = _a.className,\n style = _a.style,\n loading = _a.loading,\n suggest = _a.suggest;\n var isValid = !this.$props.validityStyles || this.validity().valid;\n var focused = this.currentFocused;\n var base = this.base;\n var value = this.computedValue();\n var clearButton = !loading && !!value;\n var id = this.$props.id || this.inputId;\n var popupSettings = Object.assign({}, {\n animate: true,\n height: '200px'\n }, this.$props.popupSettings);\n\n if (typeof suggest === 'string') {\n this.suggested = suggest;\n }\n\n var renderSearchBar = function renderSearchBar(searchValue, searchId) {\n var _this = this;\n\n var _a = this.$props,\n placeholder = _a.placeholder,\n tabIndex = _a.tabIndex,\n readonly = _a.readonly;\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n return (// @ts-ignore function children\n h(SearchBar, {\n id: searchId,\n attrs: this.v3 ? undefined : {\n id: searchId,\n placeholder: placeholder,\n tabIndex: tabIndex || undefined,\n accessKey: this.$props.accessKey,\n value: searchValue,\n suggestedText: this.suggested,\n focused: focused,\n name: this.$props.name,\n disabled: disabled,\n readOnly: readonly,\n expanded: opened,\n owns: base.listBoxId,\n activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(),\n ariaLabelledBy: this.$props.ariaLabelledBy,\n ariaDescribedBy: this.$props.ariaDescribedBy\n },\n placeholder: placeholder,\n tabIndex: tabIndex || undefined,\n accessKey: this.$props.accessKey,\n value: searchValue,\n suggestedText: this.suggested,\n focused: focused,\n name: this.$props.name,\n ref: this.v3 ? function (el) {\n _this.inputRef = el;\n } : 'input',\n onKeydown: this.onInputKeyDown,\n on: this.v3 ? undefined : {\n \"keydown\": this.onInputKeyDown,\n \"change\": this.onChangeHandler,\n \"focus\": base.handleFocus,\n \"blur\": this.handleBlur,\n \"clearButtonClick\": this.clearButtonClick\n },\n onChange: this.onChangeHandler,\n onFocus: base.handleFocus,\n onBlur: this.handleBlur,\n disabled: disabled,\n readOnly: readonly,\n expanded: opened,\n owns: base.listBoxId,\n activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(),\n onClearButtonClick: this.clearButtonClick,\n ariaLabelledBy: this.$props.ariaLabelledBy,\n ariaDescribedBy: this.$props.ariaDescribedBy\n })\n );\n };\n\n var renderList = function renderList() {\n var _a = this.$props,\n textField = _a.textField,\n _b = _a.dataItems,\n dataItems = _b === void 0 ? [] : _b;\n var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));\n var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n return (// @ts-ignore\n h(List, {\n id: base.listBoxId,\n attrs: this.v3 ? undefined : {\n id: base.listBoxId,\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: this.focusedIndex(),\n value: value,\n textField: textField,\n valueField: textField,\n highlightSelected: false,\n optionsGuid: base.guid,\n wrapperStyle: {\n maxHeight: popupSettings.height\n },\n wrapperCssClass: \"k-list-scroller\",\n itemRender: itemRender,\n noDataRender: listNoDataRender\n },\n show: opened,\n dataItems: dataItems.slice(),\n focusedIndex: this.focusedIndex(),\n value: value,\n textField: textField,\n valueField: textField,\n highlightSelected: false,\n optionsGuid: base.guid,\n ref: 'list',\n wrapperStyle: {\n maxHeight: popupSettings.height\n },\n wrapperCssClass: \"k-list-scroller\",\n onListclick: this.handleItemClick,\n on: this.v3 ? undefined : {\n \"listclick\": this.handleItemClick\n },\n itemRender: itemRender,\n noDataRender: listNoDataRender\n })\n );\n };\n\n var renderListContainer = function renderListContainer() {\n var _this2 = this;\n\n var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));\n var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));\n var header = getTemplate.call(this, {\n h: h,\n template: headerTemplate\n });\n var footer = getTemplate.call(this, {\n h: h,\n template: footerTemplate\n });\n var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n return (// @ts-ignore function children\n h(ListContainer, {\n onMousedown: function onMousedown(e) {\n return e.preventDefault();\n },\n on: this.v3 ? undefined : {\n \"mousedown\": function onMousedown(e) {\n return e.preventDefault();\n }\n },\n width: popupWidth,\n attrs: this.v3 ? undefined : {\n width: popupWidth,\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n dir: dir !== undefined ? dir : this.base.dirCalculated\n },\n ref: 'container',\n popupSettings: {\n animate: popupSettings.animate,\n anchor: this.anchor,\n show: opened,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n },\n dir: dir !== undefined ? dir : this.base.dirCalculated\n }, this.v3 ? function () {\n return [header, renderList.call(_this2), footer];\n } : [header, renderList.call(_this2), footer])\n );\n };\n\n var renderClearButton = function renderClearButton(cbutton) {\n if (cbutton) {\n // @ts-ignore function children\n return h(ClearButton, {\n onClearclick: this.clearButtonClick,\n on: this.v3 ? undefined : {\n \"clearclick\": this.clearButtonClick\n },\n key: \"clearbutton\"\n });\n }\n\n return h(\"span\");\n };\n\n var renderLoading = function renderLoading(cloading) {\n if (cloading) {\n return h(\"span\", {\n \"class\": \"k-icon k-i-loading\"\n });\n }\n\n return h(\"span\");\n };\n\n var autoComplete = h(\"span\", {\n \"class\": classNames('k-widget k-autocomplete k-header', className, {\n 'k-state-disabled': disabled,\n 'k-state-focused': focused && !disabled,\n 'k-state-invalid': !isValid\n }),\n ref: this.v3 ? function (el) {\n _this.kendoAnchorRef = el;\n } : this.anchor,\n style: !label ? style : __assign(__assign({}, style), {\n width: undefined\n }),\n dir: dir,\n attrs: this.v3 ? undefined : {\n dir: dir\n }\n }, [renderSearchBar.call(this, value || '', id), renderClearButton.call(this, clearButton), renderLoading.call(this, loading), renderListContainer.call(this)]);\n return label ? h(\"span\", {\n \"class\": this.spanClassNames,\n dir: this.$props.dir,\n attrs: this.v3 ? undefined : {\n dir: this.$props.dir\n }\n }, [autoComplete, this.$props.label ? this.$props.id ? h(\"label\", {\n \"for\": this.$props.id,\n attrs: this.v3 ? undefined : {\n \"for\": this.$props.id\n },\n \"class\": \"k-label\"\n }, [this.$props.label]) : h(\"span\", {\n \"class\": \"k-label\"\n }, [this.$props.label]) : null]) : autoComplete;\n }\n};\nexport { AutoComplete };","import { DropDownList } from './DropDownList/DropDownList';\nimport { ComboBox } from './ComboBox/ComboBox';\nimport { AutoComplete } from './AutoComplete/AutoComplete';\n// import MultiSelect from './MultiSelect/MultiSelect';\n// import {\n// MultiSelectProps,\n// MultiSelectChangeEvent,\n// MultiSelectPageChangeEvent,\n// MultiSelectFilterChangeEvent,\n// MultiSelectOpenEvent,\n// MultiSelectCloseEvent,\n// MultiSelectFocusEvent,\n// MultiSelectBlurEvent\n// } from './MultiSelect/MultiSelectProps';\n// import { TagData as MultiSelectTagData } from './MultiSelect/TagList';\nexport { AutoComplete, DropDownList, ComboBox };\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('kendo-dropdownlist',{attrs:{\"data-source\":_vm.usersClientDataSource,\"data-text-field\":'email',\"data-value-field\":'email',\"autoWidth\":true},model:{value:(_vm.analystEmail),callback:function ($$v) {_vm.analystEmail=$$v},expression:\"analystEmail\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnalystEmail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnalystEmail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AnalystEmail.vue?vue&type=template&id=4394c174&\"\nimport script from \"./AnalystEmail.vue?vue&type=script&lang=js&\"\nexport * from \"./AnalystEmail.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"
\\n
\\n
\\n \\\"Client\\n
\\n
\\n \\\"Master\\n
\\n
\\n ${dashboardTitle}\\n
\\n
\\n\\n
\\n
${dashboardNote}
\\n
${pageFooterTemplate}
\\n
\\n
\\n\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"label-container\"},[_c('label',{staticClass:\"v-label v-label--active\",attrs:{\"aria-hidden\":\"true\"}},[_vm._v(_vm._s(_vm.label))]),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VonapToolbarLabel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VonapToolbarLabel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./VonapToolbarLabel.vue?vue&type=template&id=5a4f3ece&scoped=true&\"\nimport script from \"./VonapToolbarLabel.vue?vue&type=script&lang=js&\"\nexport * from \"./VonapToolbarLabel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VonapToolbarLabel.vue?vue&type=style&index=0&id=5a4f3ece&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a4f3ece\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showDealForm)?_c('deal-form',{attrs:{\"deal-id\":_vm.dealId,\"is-read-only\":_vm.isReadOnly,\"modal-visible\":_vm.showDealForm,\"isDialog\":false,\"dealTypeId\":_vm.dealTypeId},on:{\"close\":_vm.close}}):_vm._e(),(_vm.showExposureDrillDown)?_c('div',[_c('otc-exposure-drilldown',{attrs:{\"reportParameters\":_vm.reportParameters,\"is-read-only\":_vm.isReadOnly,\"read-url\":_vm.readUrl,\"export-url\":_vm.exportUrl,\"component\":_vm.component},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[(!_vm.isReadOnly)?_c('kendo-button',{attrs:{\"icon\":\"add\",\"title\":\"Create deal\"},on:{\"click\":function($event){return _vm.openDealForm(0)}}}):_vm._e()],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('vonap-window',{attrs:{\"width\":\"100%\",\"height\":\"100%\",\"modal\":true},model:{value:(_vm.showDealForm),callback:function ($$v) {_vm.showDealForm=$$v},expression:\"showDealForm\"}},[(_vm.showDealForm)?_c('deal-form',{attrs:{\"deal-id\":_vm.dealId,\"is-read-only\":_vm.isReadOnly,\"modal-visible\":_vm.showDealForm,\"isDialog\":false},on:{\"close\":function($event){_vm.showDealForm = false}}}):_vm._e()],1),(_vm.drawdownModalVisible)?_c('drawdown-form',{attrs:{\"value\":_vm.drawdownModalVisible,\"selected-operations\":_vm.selectedOperations,\"as-of-date\":_vm.asOfDate},on:{\"success\":_vm.refreshGrid,\"input\":function($event){_vm.drawdownModalVisible = $event}}}):_vm._e(),(_vm.scheduleModalVisible)?_c('schedule-delivery-form',{attrs:{\"operation-id\":_vm.operationId,\"is-read-only\":_vm.isReadOnly,\"schedule-modal-visible\":_vm.scheduleModalVisible},on:{\"close\":_vm.closeScheduleDeliveryModal}}):_vm._e(),(_vm.value)?_c(_vm.component,{tag:\"component\",attrs:{\"width\":\"1200px\",\"height\":\"500px\",\"title\":\"Exposure Drilldown\"},on:{\"close\":function($event){return _vm.$emit('input', false)}},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('page-toolbar',[_vm._t(\"default\"),_c('kendo-button',{attrs:{\"icon\":\"excel\",\"title\":\"Export to excel\"},on:{\"click\":_vm.exportToExcel}}),_c('kendo-button',{attrs:{\"title\":\"Drawdown\"},on:{\"click\":_vm.getSelectedRows}},[_c('i',{staticClass:\"fas fa-chart-line\"})]),_c('kendo-button',{attrs:{\"title\":\"Close / Back\"},on:{\"click\":function($event){return _vm.$emit('input', false)}}},[_c('i',{staticClass:\"fa fa-times\"})])],2),_c('kendo-grid',{ref:\"exposureDrillDownGrid\",attrs:{\"data-source\":_vm.dataSource,\"height\":_vm.component === 'div' ? 'calc(100vh - 215px)' : '420px'},on:{\"databound\":_vm.onGridDataBound}},[_c('kendo-grid-column',{attrs:{\"selectable\":true,\"attributes\":{class: 'selectableCol'},\"locked\":true,\"width\":50}}),_c('kendo-grid-column',{attrs:{\"title\":\"\",\"width\":50,\"attributes\":{style: 'text-align: left;'},\"locked\":true,\"lockable\":false},on:{\"template\":_vm.openDealTemplate}}),_c('kendo-grid-column',{attrs:{\"field\":\"number\",\"title\":\"Trade Id\",\"width\":\"100px\",\"attributes\":{style: 'text-align: left;'},\"locked\":true,\"lockable\":false},on:{\"template\":_vm.deliveryScheduleLinkTemplate}}),_c('kendo-grid-column',{attrs:{\"field\":\"sector\",\"title\":\"Sector\",\"width\":150}}),_c('kendo-grid-column',{attrs:{\"field\":\"division\",\"title\":\"Division\",\"width\":\"150px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"counterparty\",\"title\":\"Counterparty\",\"width\":\"100px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"reference\",\"title\":\"Reference\",\"width\":180}}),_c('kendo-grid-column',{attrs:{\"field\":\"description\",\"title\":\"Description\",\"width\":\"300px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"product\",\"title\":\"Product\",\"width\":\"100px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"leg\",\"title\":\"Leg\",\"width\":\"100px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"tradeDate\",\"title\":\"Trade Date\",\"format\":\"{0:yyyy-MM-dd}\",\"width\":\"100px\",\"attributes\":{style: 'text-align: right;'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"startDate\",\"title\":\"Start Date\",\"format\":\"{0:yyyy-MM-dd}\",\"width\":\"100px\",\"attributes\":{style: 'text-align: right;'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"hedgeMonth\",\"title\":\"Hedge month\",\"format\":\"{0:yyyy-MM-dd}\",\"width\":120,\"attributes\":{style: 'text-align: right;'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"maturityDate\",\"title\":\"Maturity Date\",\"format\":\"{0:yyyy-MM-dd}\",\"width\":\"120px\",\"attributes\":{style: 'text-align: right;'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"settlementDate\",\"title\":\"Settlement\",\"format\":\"{0:yyyy-MM-dd}\",\"width\":\"120px\",\"attributes\":{style: 'text-align: right;'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"buySell\",\"title\":\"Buy/Sell\",\"width\":\"75px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"undeliveredAmount\",\"title\":\"Undelivered Amount\",\"format\":\"{0:##,#;##,#}\",\"width\":\"120px\",\"attributes\":{class: 'numericColumn'},\"aggregates\":['sum'],\"footerTemplate\":\"
#=kendo.toString(data.undeliveredAmount.sum, '\\\\#\\\\#,\\\\#;\\\\#\\\\#,\\\\#') #
\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"hedgeAmount\",\"title\":\"Quantity\",\"width\":\"120px\",\"attributes\":{class: 'numericColumn'},\"aggregates\":['sum'],\"template\":\"
#=kendo.toString(Math.abs(data.hedgeAmount), 'n0') #
\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"amountCcy1\",\"title\":\"Quantity\",\"format\":\"{0:N0}\",\"width\":\"120px\",\"hidden\":true,\"attributes\":{class: 'numericColumn'},\"aggregates\":['sum']}}),_c('kendo-grid-column',{attrs:{\"field\":\"ccy1\",\"title\":\"Com.Ccy\",\"width\":\"80px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"hedgeRate\",\"title\":\"Contract Rate\",\"format\":\"{0:N4}\",\"width\":\"100px\",\"attributes\":{class: 'numericColumn'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"amountCcy2\",\"title\":\"Amount Ccy\",\"format\":\"{0:N0}\",\"width\":\"120px\",\"attributes\":{class: 'numericColumn'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"ccy2\",\"title\":\"Ccy\",\"width\":\"75px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"hedgeType\",\"title\":\"Hedge Type\",\"width\":100,\"attributes\":{style: 'text-align: left;'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"isExercised\",\"title\":\"Exercised\",\"width\":90,\"attributes\":{style: 'text-align: left;'}}}),_c('kendo-grid-column',{attrs:{\"title\":\"Reference Rate\",\"field\":\"referenceRate\",\"width\":140,\"attributes\":{style: 'text-align: right;'},\"format\":\"{0:n4}\"}}),_c('kendo-grid-column',{attrs:{\"title\":\"Forward Points\",\"field\":\"forwardPoints\",\"width\":140,\"attributes\":{style: 'text-align: right;'},\"format\":\"{0:n4}\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"gainLoss\",\"title\":\"Gain/Loss\",\"width\":140,\"attributes\":{style: 'text-align: right;'},\"format\":\"{0:n2}\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"optionType\",\"title\":\"Option\",\"width\":100,\"attributes\":{style: 'text-align: left;'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"otherBarrier\",\"title\":\"Other Barrier\",\"format\":\"{0:n2}\",\"width\":80,\"attributes\":{style: 'text-align: right;'}}}),_c('kendo-grid-column',{attrs:{\"field\":\"settlementMethod\",\"title\":\"Settlement Method\",\"width\":\"90px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"settlementCcy\",\"title\":\"Settlement Ccy\",\"width\":\"100px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"lastModified\",\"title\":\"Last Modified\",\"format\":\"{0:yyyy-MM-dd hh:mm:ss}\",\"width\":\"180px\"}}),_c('kendo-grid-column',{attrs:{\"field\":\"lastUser\",\"title\":\"Last User\",\"width\":\"150px\"}})],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OtcExposureDrilldown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OtcExposureDrilldown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OtcExposureDrilldown.vue?vue&type=template&id=5f2b5a7a&\"\nimport script from \"./OtcExposureDrilldown.vue?vue&type=script&lang=js&\"\nexport * from \"./OtcExposureDrilldown.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExposureDrilldown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExposureDrilldown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ExposureDrilldown.vue?vue&type=template&id=533729e0&\"\nimport script from \"./ExposureDrilldown.vue?vue&type=script&lang=js&\"\nexport * from \"./ExposureDrilldown.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VonapToolbarLabel.vue?vue&type=style&index=0&id=5a4f3ece&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VonapToolbarLabel.vue?vue&type=style&index=0&id=5a4f3ece&scoped=true&lang=css&\"","export default {\n \"bottom\": \"bottom\",\n \"center\": \"center\",\n \"middle\": \"middle\",\n \"left\": \"left\",\n \"right\": \"right\",\n \"top\": \"top\"\n};\n","import point from './align-point';\n\nvar align = function (options) {\n var anchorRect = options.anchorRect;\n var anchorAlign = options.anchorAlign;\n var elementRect = options.elementRect;\n var elementAlign = options.elementAlign;\n var margin = options.margin; if ( margin === void 0 ) margin = {};\n var anchorHorizontal = anchorAlign.horizontal;\n var anchorVertical = anchorAlign.vertical;\n var elementHorizontal = elementAlign.horizontal;\n var elementVertical = elementAlign.vertical;\n\n var horizontalMargin = margin.horizontal || 0;\n var verticalMargin = margin.vertical || 0;\n\n var top = anchorRect.top;\n var left = anchorRect.left;\n\n if (anchorVertical === point.bottom) {\n top += anchorRect.height;\n }\n\n if (anchorVertical === point.center || anchorVertical === point.middle) {\n top += Math.round(anchorRect.height / 2);\n }\n\n if (elementVertical === point.bottom) {\n top -= elementRect.height;\n verticalMargin *= -1;\n }\n\n if (elementVertical === point.center || elementVertical === point.middle) {\n top -= Math.round(elementRect.height / 2);\n verticalMargin *= -1;\n }\n\n if (anchorHorizontal === point.right) {\n left += anchorRect.width;\n }\n\n if (anchorHorizontal === point.center || anchorHorizontal === point.middle) {\n left += Math.round(anchorRect.width / 2);\n }\n\n if (elementHorizontal === point.right) {\n left -= elementRect.width;\n horizontalMargin *= -1;\n }\n\n if (elementHorizontal === point.center || elementHorizontal === point.middle) {\n left -= Math.round(elementRect.width / 2);\n horizontalMargin *= -1;\n }\n\n return {\n top: top + verticalMargin,\n left: left + horizontalMargin\n };\n};\n\nexport default align;\n","export default function addScroll(rect, scroll) {\n return {\n top: rect.top + scroll.y,\n left: rect.left + scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","export default function applyLocationOffset(rect, location, isOffsetBody) {\n var top = rect.top;\n var left = rect.left;\n\n if (isOffsetBody) {\n left = 0;\n top = 0;\n }\n\n return {\n top: top + location.top,\n left: left + location.left,\n height: rect.height,\n width: rect.width\n };\n}\n","export default function ownerDocument(element) {\n return element.ownerDocument || element.document || element;\n}\n","import ownerDocument from './owner-document';\n\nvar getWindow = function (element) { return ownerDocument(element).defaultView; };\n\nexport default getWindow;\n","import ownerDocument from './owner-document';\n\nvar getDocument = function (element) { return ownerDocument(element).documentElement; };\n\nexport default getDocument;\n","var cachedWidth = 0;\n\nexport default function scrollbarWidth() {\n if (!cachedWidth && typeof document !== 'undefined') {\n var div = document.createElement(\"div\");\n\n div.style.cssText = \"overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block\";\n div.innerHTML = \" \";\n document.body.appendChild(div);\n\n cachedWidth = div.offsetWidth - div.scrollWidth;\n\n document.body.removeChild(div);\n }\n\n return cachedWidth;\n}\n","import wnd from './window';\nimport getDocument from './document';\nimport scrollbarWidth from './scrollbar-width';\n\nexport default function windowViewport(element) {\n var win = wnd(element);\n var document = getDocument(element);\n var result = {\n height: win.innerHeight,\n width: win.innerWidth\n };\n\n if (document.scrollHeight - document.clientHeight > 0) {\n result.width -= scrollbarWidth();\n }\n\n return result;\n}\n","import windowViewport from './window-viewport';\n\nvar boundingOffset = function (element) {\n if (!element.getBoundingClientRect) {\n var viewport = windowViewport(element);\n return {\n bottom: viewport.height,\n left: 0,\n right: viewport.width,\n top: 0\n };\n }\n\n var ref = element.getBoundingClientRect();\n var bottom = ref.bottom;\n var left = ref.left;\n var right = ref.right;\n var top = ref.top;\n\n return {\n bottom: bottom,\n left: left,\n right: right,\n top: top\n };\n};\n\nexport default boundingOffset;\n","import documentElement from './document';\n\nvar offsetParent = function (element) {\n var offsetParent = element.offsetParent;\n\n while (offsetParent && offsetParent.style.position === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || documentElement(element);\n};\n\nexport default offsetParent;\n","import offsetParent from './offset-parent';\n\nvar isBodyOffset = function (element) { return (offsetParent(element) === element.ownerDocument.body); };\n\nexport default isBodyOffset;\n","var rectOfHiddenElement = function (element) {\n var ref = element.style;\n var display = ref.display;\n var left = ref.left;\n var position = ref.position;\n\n element.style.display = '';\n element.style.left = '-10000px';\n element.style.position = 'absolute';\n\n var rect = element.getBoundingClientRect();\n\n element.style.display = display;\n element.style.left = left;\n element.style.position = position;\n\n return rect;\n};\n\nvar offset = function (element) {\n var rect = element.getBoundingClientRect();\n var left = rect.left;\n var top = rect.top;\n\n if (!rect.height && !rect.width) {\n rect = rectOfHiddenElement(element);\n }\n\n return {\n top: top,\n left: left,\n height: rect.height,\n width: rect.width\n };\n};\n\nexport default offset;\n","export default function (element, until) {\n var result = [];\n var next = element.parentNode;\n\n while (next) {\n result.push(next);\n\n if (next === until) { break; }\n\n next = next.parentNode;\n }\n\n return result;\n};\n","import docElement from './document';\nimport wnd from './window';\n\nexport default function scrollPosition(element) {\n var documentElement = docElement(element);\n var win = wnd(element);\n\n return {\n x: win.pageXOffset || documentElement.scrollLeft || 0,\n y: win.pageYOffset || documentElement.scrollTop || 0\n };\n}\n","import scrollPosition from './scroll-position';\n\nexport default function (element) {\n if (element === (element.ownerDocument || {}).body) {\n return scrollPosition(element);\n }\n\n return {\n x: element.scrollLeft,\n y: element.scrollTop\n };\n};\n","import offsetParent from './offset-parent';\nimport elementScrollPosition from './element-scroll-position';\n\nexport default function parentScrollPosition(element) {\n var parent = offsetParent(element);\n\n return parent ? elementScrollPosition(parent) : { x: 0, y: 0 };\n}\n","import offsetParent from './offset-parent';\nimport offsetRect from './offset';\nimport wnd from './window';\n\nvar position = function (element, parent) {\n var win = wnd(element);\n var elementStyles = win.getComputedStyle(element);\n var offset = offsetRect(element);\n var parentElement = parent || offsetParent(element);\n\n var ownerDocument = element.ownerDocument;\n var useRelative = parentElement !== ownerDocument.body && parentElement !== ownerDocument.documentElement;\n\n var parentOffset = { top: 0, left: 0 };\n\n if (elementStyles.position !== \"fixed\" && useRelative) {\n var parentStyles = win.getComputedStyle(parentElement);\n\n parentOffset = offsetRect(parentElement);\n parentOffset.top += parseInt(parentStyles.borderTopWidth, 10);\n parentOffset.left += parseInt(parentStyles.borderLeftWidth, 10);\n }\n\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left,\n height: offset.height,\n width: offset.width\n };\n};\n\nexport default position;\n","import elementScrollPosition from './element-scroll-position';\nimport parentScrollPosition from './parent-scroll-position';\n\nexport default function (offsetParentElement, element) { return ( // eslint-disable-line no-arrow-condition\n offsetParentElement ? elementScrollPosition(offsetParentElement) : parentScrollPosition(element)\n); };\n","import offsetParentScrollPosition from './offset-parent-scroll-position';\nimport offsetParent from './offset-parent';\nimport position from './position';\n\nexport default function (element, parent, scale) {\n if ( scale === void 0 ) scale = 1;\n\n var offsetParentElement = parent ? offsetParent(parent) : null;\n var ref = position(element, offsetParentElement);\n var top = ref.top;\n var left = ref.left;\n var height = ref.height;\n var width = ref.width;\n var ref$1 = offsetParentScrollPosition(offsetParentElement, element);\n var x = ref$1.x;\n var y = ref$1.y;\n var ownerDocument = element.ownerDocument;\n var positionScale = offsetParentElement === ownerDocument.body || offsetParentElement === ownerDocument.documentElement ? 1 : scale;\n\n return {\n top: top + y * positionScale,\n left: left + x * positionScale,\n height: height,\n width: width\n };\n};\n","export default function removeScroll(rect, scroll) {\n return {\n top: rect.top - scroll.y,\n left: rect.left - scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","export default {\n \"fit\": \"fit\",\n \"flip\": \"flip\"\n};\n","import alignPoint from './align-point';\nimport collision from './collision';\n\nvar fit = function(position, size, viewPortSize) {\n var output = 0;\n\n if (position + size > viewPortSize) {\n output = viewPortSize - (position + size);\n }\n\n if (position < 0) {\n output = -position;\n }\n\n return output;\n};\n\nvar flip = function(ref) {\n var offset = ref.offset;\n var size = ref.size;\n var anchorSize = ref.anchorSize;\n var viewPortSize = ref.viewPortSize;\n var anchorAlignPoint = ref.anchorAlignPoint;\n var elementAlignPoint = ref.elementAlignPoint;\n var margin = ref.margin;\n\n var output = 0;\n\n var isPositionCentered = elementAlignPoint === alignPoint.center || elementAlignPoint === alignPoint.middle;\n var isOriginCentered = anchorAlignPoint === alignPoint.center || anchorAlignPoint === alignPoint.middle;\n var marginToAdd = 2 * margin; //2x to keep margin after flip\n\n if (elementAlignPoint !== anchorAlignPoint && !isPositionCentered && !isOriginCentered) {\n var isBeforeAnchor = anchorAlignPoint === alignPoint.top || anchorAlignPoint === alignPoint.left;\n if (offset < 0 && isBeforeAnchor) {\n output = size + anchorSize + marginToAdd;\n if (offset + output + size > viewPortSize) {\n output = 0; //skip flip\n }\n } else if (offset >= 0 && !isBeforeAnchor) {\n if (offset + size > viewPortSize) {\n output += -(anchorSize + size + marginToAdd);\n }\n\n if (offset + output < 0) {\n output = 0; //skip flip\n }\n }\n }\n\n return output;\n};\n\nvar restrictToView = function (options) {\n var anchorRect = options.anchorRect;\n var anchorAlign = options.anchorAlign;\n var elementRect = options.elementRect;\n var elementAlign = options.elementAlign;\n var collisions = options.collisions;\n var viewPort = options.viewPort;\n var margin = options.margin; if ( margin === void 0 ) margin = {};\n var elementTop = elementRect.top;\n var elementLeft = elementRect.left;\n var elementHeight = elementRect.height;\n var elementWidth = elementRect.width;\n var viewPortHeight = viewPort.height;\n var viewPortWidth = viewPort.width;\n var horizontalMargin = margin.horizontal || 0;\n var verticalMargin = margin.vertical || 0;\n\n var left = 0;\n var top = 0;\n\n var isHorizontalFlip = collisions.horizontal === collision.flip;\n var isVerticalFlip = collisions.vertical === collision.flip;\n\n if (collisions.vertical === collision.fit) {\n top += fit(elementTop, elementHeight, viewPortHeight);\n }\n\n if (collisions.horizontal === collision.fit) {\n left += fit(elementLeft, elementWidth, viewPortWidth);\n }\n\n if (isVerticalFlip) {\n top += flip({\n margin: verticalMargin,\n offset: elementTop,\n size: elementHeight,\n anchorSize: anchorRect.height,\n viewPortSize: viewPortHeight,\n anchorAlignPoint: anchorAlign.vertical,\n elementAlignPoint: elementAlign.vertical\n });\n }\n\n if (isHorizontalFlip) {\n left += flip({\n margin: horizontalMargin,\n offset: elementLeft,\n size: elementWidth,\n anchorSize: anchorRect.width,\n viewPortSize: viewPortWidth,\n anchorAlignPoint: anchorAlign.horizontal,\n elementAlignPoint: elementAlign.horizontal\n });\n }\n var flippedHorizontal = isHorizontalFlip && left !== 0;\n var flippedVertical = isVerticalFlip && top !== 0;\n\n return {\n flipped: flippedHorizontal || flippedVertical,\n flip: {\n horizontal: flippedHorizontal,\n vertical: flippedVertical\n },\n offset: {\n left: left,\n top: top\n }\n };\n};\n\nexport default restrictToView;\n","export default function (element) {\n var result = [];\n\n var sibling = element.parentNode.firstElementChild;\n\n while (sibling) {\n if (sibling !== element) {\n result.push(sibling);\n }\n\n sibling = sibling.nextElementSibling;\n }\n return result;\n};\n","/* eslint-disable no-loop-func */\n\nimport parents from './parents';\nimport siblings from './siblings';\n\nexport default function (anchor, container) {\n var parentElements = parents(anchor);\n var containerElement = container;\n var siblingElements;\n var result;\n\n while (containerElement) {\n siblingElements = siblings(containerElement);\n\n result = parentElements.reduce(\n function (list, p) { return list.concat(siblingElements.filter(function (s) { return s === p; })); },\n []\n )[0];\n\n if (result) { break; }\n\n containerElement = containerElement.parentElement;\n }\n\n return result;\n};\n\n","export { default as align } from './align';\nexport { default as addScroll } from './add-scroll';\nexport { default as applyLocationOffset } from './apply-location-offset';\nexport { default as boundingOffset } from './bounding-offset';\nexport { default as isBodyOffset } from './is-body-offset';\nexport { default as offsetParent } from './offset-parent';\nexport { default as offset } from './offset';\nexport { default as parents } from './parents';\nexport { default as parentScrollPosition } from './parent-scroll-position';\nexport { default as position } from './position';\nexport { default as positionWithScroll } from './position-with-scroll';\nexport { default as removeScroll } from './remove-scroll';\nexport { default as restrictToView } from './restrict-to-view';\nexport { default as scrollPosition } from './scroll-position';\nexport { default as siblingContainer } from './sibling-container';\nexport { default as siblings } from './siblings';\n\nexport { default as getDocumentElement } from './document';\nexport { default as getWindow } from './window';\nexport { default as getWindowViewPort } from './window-viewport';\n\nexport { default as AlignPoint } from './align-point';\nexport { default as Collision } from './collision';\n","var defaultData = {\n en: {\n name: \"en\",\n identity: {\n version: {\n _number: \"$Revision: 12418 $\",\n _cldrVersion: \"29\"\n },\n language: \"en\"\n },\n territory: \"US\",\n numbers: {\n symbols: {\n decimal: \".\",\n group: \",\",\n list: \";\",\n percentSign: \"%\",\n plusSign: \"+\",\n minusSign: \"-\",\n exponential: \"E\",\n superscriptingExponent: \"×\",\n perMille: \"‰\",\n infinity: \"∞\",\n nan: \"NaN\",\n timeSeparator: \":\"\n },\n decimal: {\n patterns: [\n \"n\"\n ],\n groupSize: [\n 3\n ]\n },\n scientific: {\n patterns: [\n \"nEn\"\n ],\n groupSize: []\n },\n percent: {\n patterns: [\n \"n%\"\n ],\n groupSize: [\n 3\n ]\n },\n currency: {\n patterns: [\n \"$n\"\n ],\n groupSize: [\n 3\n ],\n \"unitPattern-count-one\": \"n $\",\n \"unitPattern-count-other\": \"n $\"\n },\n currencies: {\n BGN: {\n displayName: \"Bulgarian Lev\",\n \"displayName-count-one\": \"Bulgarian lev\",\n \"displayName-count-other\": \"Bulgarian leva\",\n symbol: \"BGN\"\n },\n EUR: {\n displayName: \"Euro\",\n \"displayName-count-one\": \"euro\",\n \"displayName-count-other\": \"euros\",\n symbol: \"€\",\n \"symbol-alt-narrow\": \"€\"\n },\n USD: {\n displayName: \"US Dollar\",\n \"displayName-count-one\": \"US dollar\",\n \"displayName-count-other\": \"US dollars\",\n symbol: \"$\",\n \"symbol-alt-narrow\": \"$\"\n }\n },\n localeCurrency: \"USD\",\n accounting: {\n patterns: [\n \"$n\",\n \"($n)\"\n ],\n groupSize: [\n 3\n ]\n }\n },\n calendar: {\n gmtFormat: \"GMT{0}\",\n gmtZeroFormat: \"GMT\",\n patterns: {\n d: \"M/d/y\",\n D: \"EEEE, MMMM d, y\",\n m: \"MMM d\",\n M: \"MMMM d\",\n y: \"MMM y\",\n Y: \"MMMM y\",\n F: \"EEEE, MMMM d, y h:mm:ss a\",\n g: \"M/d/y h:mm a\",\n G: \"M/d/y h:mm:ss a\",\n t: \"h:mm a\",\n T: \"h:mm:ss a\",\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n },\n dateTimeFormats: {\n full: \"{1} 'at' {0}\",\n long: \"{1} 'at' {0}\",\n medium: \"{1}, {0}\",\n short: \"{1}, {0}\",\n availableFormats: {\n Bh: \"h B\",\n Bhm: \"h:mm B\",\n Bhms: \"h:mm:ss B\",\n d: \"d\",\n E: \"ccc\",\n EBhm: \"E h:mm B\",\n EBhms: \"E h:mm:ss B\",\n Ed: \"d E\",\n Ehm: \"E h:mm a\",\n EHm: \"E HH:mm\",\n Ehms: \"E h:mm:ss a\",\n EHms: \"E HH:mm:ss\",\n Gy: \"y G\",\n GyMMM: \"MMM y G\",\n GyMMMd: \"MMM d, y G\",\n GyMMMEd: \"E, MMM d, y G\",\n h: \"h a\",\n H: \"HH\",\n hm: \"h:mm a\",\n Hm: \"HH:mm\",\n hms: \"h:mm:ss a\",\n Hms: \"HH:mm:ss\",\n hmsv: \"h:mm:ss a v\",\n Hmsv: \"HH:mm:ss v\",\n hmv: \"h:mm a v\",\n Hmv: \"HH:mm v\",\n M: \"L\",\n Md: \"M/d\",\n MEd: \"E, M/d\",\n MMM: \"LLL\",\n MMMd: \"MMM d\",\n MMMEd: \"E, MMM d\",\n MMMMd: \"MMMM d\",\n \"MMMMW-count-one\": \"'week' W 'of' MMMM\",\n \"MMMMW-count-other\": \"'week' W 'of' MMMM\",\n ms: \"mm:ss\",\n y: \"y\",\n yM: \"M/y\",\n yMd: \"M/d/y\",\n yMEd: \"E, M/d/y\",\n yMMM: \"MMM y\",\n yMMMd: \"MMM d, y\",\n yMMMEd: \"E, MMM d, y\",\n yMMMM: \"MMMM y\",\n yQQQ: \"QQQ y\",\n yQQQQ: \"QQQQ y\",\n \"yw-count-one\": \"'week' w 'of' Y\",\n \"yw-count-other\": \"'week' w 'of' Y\"\n }\n },\n timeFormats: {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\"\n },\n dateFormats: {\n full: \"EEEE, MMMM d, y\",\n long: \"MMMM d, y\",\n medium: \"MMM d, y\",\n short: \"M/d/yy\"\n },\n days: {\n format: {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n }\n },\n months: {\n format: {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n }\n },\n quarters: {\n format: {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n }\n },\n dayPeriods: {\n format: {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n narrow: {\n midnight: \"mi\",\n am: \"a\",\n \"am-alt-variant\": \"am\",\n noon: \"n\",\n pm: \"p\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n }\n },\n \"stand-alone\": {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n narrow: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n }\n }\n },\n eras: {\n format: {\n wide: {\n \"0\": \"Before Christ\",\n \"1\": \"Anno Domini\",\n \"0-alt-variant\": \"Before Common Era\",\n \"1-alt-variant\": \"Common Era\"\n },\n abbreviated: {\n \"0\": \"BC\",\n \"1\": \"AD\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n },\n narrow: {\n \"0\": \"B\",\n \"1\": \"A\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n }\n }\n },\n dateFields: {\n era: {\n wide: \"era\"\n },\n year: {\n wide: \"year\",\n short: \"yr.\",\n narrow: \"yr.\"\n },\n quarter: {\n wide: \"quarter\",\n short: \"qtr.\",\n narrow: \"qtr.\"\n },\n month: {\n wide: \"month\",\n short: \"mo.\",\n narrow: \"mo.\"\n },\n week: {\n wide: \"week\",\n short: \"wk.\",\n narrow: \"wk.\"\n },\n day: {\n wide: \"day\",\n short: \"day\",\n narrow: \"day\"\n },\n weekday: {\n wide: \"day of the week\"\n },\n dayperiod: {\n wide: \"AM/PM\"\n },\n hour: {\n wide: \"hour\",\n short: \"hr.\",\n narrow: \"hr.\"\n },\n minute: {\n wide: \"minute\",\n short: \"min.\",\n narrow: \"min.\"\n },\n second: {\n wide: \"second\",\n short: \"sec.\",\n narrow: \"sec.\"\n },\n zone: {\n wide: \"time zone\"\n }\n }\n }\n },\n supplemental: {\n likelySubtags: {\n en: \"en-Latn-US\"\n },\n currencyData: {\n region: {\n US: [\n {\n USD: {\n _from: \"1792-01-01\"\n }\n }\n ]\n }\n },\n weekData: {\n firstDay: {\n US: \"sun\"\n },\n weekendStart: {\n \"001\": \"sat\"\n },\n weekendEnd: {\n \"001\": \"sun\"\n }\n }\n }\n};\nexport default defaultData;","export default function isString(value) {\n return typeof value === \"string\";\n}","//The error is represented by unique name and corresponding message\n//The message can contain placeholders with index, e.g. {0}, {1}\n\nexport default {\n \"NoLocale\": \"Missing locale info for '{0}'\",\n \"NoCurrency\": \"Cannot determine currency information. Please load the locale currencies data.\",\n \"NoSupplementalCurrency\": \"Cannot determine currency. Please load the supplemental currencyData.\",\n \"NoCurrencyRegion\": \"No currency data for region '{0}'\",\n \"NoCurrencyDisplay\": \"Cannot determine currency display information. Please load the locale currencies data. The default culture does not include the all currencies data.\",\n \"NoGMTInfo\": \"Cannot determine locale GMT format. Please load the locale timeZoneNames data.\",\n \"NoWeekData\": \"Cannot determine locale first day of week. Please load the supplemental weekData.\",\n \"NoFirstDay\": \"Cannot determine locale first day of week. Please load the supplemental weekData. The default culture includes only the 'en-US' first day info.\",\n \"NoValidCurrency\": \"Cannot determine a default currency for the {0} locale. Please specify explicitly the currency with the format options.\",\n \"NoDateFieldNames\": \"Cannot determine the locale date field names. Please load the locale dateFields data.\"\n};\n","import errorDetails from './error-details';\n\nvar formatRegExp = /\\{(\\d+)}?\\}/g;\n\nvar IntlError = function IntlError(ref) {\n var name = ref.name;\n var message = ref.message;\n\n if (!name || !message) {\n throw new Error(\"{ name: string, message: string } object is required!\");\n }\n\n this.name = name;\n this.message = message;\n};\n\nIntlError.prototype.formatMessage = function formatMessage () {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n var flattenValues = flatten(values);\n\n var formattedMessage = this.message.replace(formatRegExp, function(match, index) {\n return flattenValues[parseInt(index, 10)];\n });\n\n return ((this.name) + \": \" + formattedMessage);\n};\n\nIntlError.prototype.error = function error () {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return new Error(this.formatMessage(values));\n};\n\nvar flatten = function(arr) {\n return arr.reduce(function (a, b) { return a.concat(b); }, []);\n};\n\nvar toIntlErrors = function(errors) {\n var predicate = function(prev, name) {\n prev[name] = new IntlError({ name: name, message: errors[name] });\n return prev;\n };\n\n return Object.keys(errors).reduce(predicate, {});\n};\n\nvar errors = toIntlErrors(errorDetails);\n\nexport {\n errors,\n IntlError,\n toIntlErrors\n};\n","import defaultData from './default-data';\nimport isString from '../common/is-string';\nimport { errors } from '../errors';\n\nfunction availableLocaleInfo(fullName, suffixes) {\n var parts = fullName.split(\"-\");\n var language = parts[0];\n var script = parts[1];\n var territory = parts[2];\n\n return cldr[fullName] || (suffixes.indexOf(territory) !== -1 && cldr[language + \"-\" + territory]) || (suffixes.indexOf(script) !== -1 && cldr[language + \"-\" + script]) || cldr[language];\n}\n\nfunction localeFullName(language, suffixes) {\n var likelySubtags = cldr.supplemental.likelySubtags;\n\n for (var idx = 0; idx < suffixes.length; idx++) {\n var name = likelySubtags[language + \"-\" + suffixes[idx ]];\n if (name) {\n return name;\n }\n }\n\n if (likelySubtags[language]) {\n return likelySubtags[language];\n }\n}\n\nexport var cldr = defaultData;\n\nexport function getLocaleInfo(locale) {\n var info;\n if (isString(locale)) {\n info = localeInfo(locale);\n } else {\n info = locale;\n }\n return info;\n}\n\nexport function localeInfo(locale) {\n if (cldr[locale]) {\n return cldr[locale];\n }\n\n var likelySubtags = cldr.supplemental.likelySubtags;\n if (likelySubtags) {\n var parts = locale.split(\"-\");\n var language = parts[0];\n var suffixes = parts.slice(1);\n var fullName = localeFullName(language, suffixes);\n var info = fullName ? availableLocaleInfo(fullName, suffixes) : null;\n if (info) {\n return info;\n }\n }\n\n throw errors.NoLocale.error(locale);\n}\n","export var DECIMAL = \"decimal\";\nexport var CURRENCY = \"currency\";\nexport var ACCOUNTING = \"accounting\";\nexport var PERCENT = \"percent\";\nexport var SCIENTIFIC = \"scientific\";\n\nexport var CURRENCY_PLACEHOLDER = \"$\";\nexport var PERCENT_PLACEHOLDER = \"%\";\nexport var NUMBER_PLACEHOLDER = \"n\";\n\nexport var LIST_SEPARATOR = \";\";\nexport var GROUP_SEPARATOR = \",\";\n\nexport var POINT = \".\";\nexport var EMPTY = \"\";\n\nexport var DEFAULT_LOCALE = \"en\";\n\n","import { cldr } from './info';\n\nfunction territoryFromName(name, identity) {\n var likelySubtags = cldr.supplemental.likelySubtags;\n var parts = name.split(\"-\");\n if (likelySubtags) {\n var likelyName = likelySubtags[name] || likelySubtags[parts[0]];\n if (likelyName) {\n parts = likelyName.split(\"-\");\n }\n }\n\n if (identity) {\n for (var idx = parts.length - 1; idx >= 1; idx--) {\n var part = parts[idx];\n if (part === identity.variant || part === identity.script) {\n parts.splice(idx, 1);\n }\n }\n }\n\n var length = parts.length;\n\n if (length > 1) {\n var territory = parts[length - 1];\n return territory.toUpperCase();\n }\n}\n\nexport default function localeTerritory(info) {\n if (info.territory) {\n return info.territory;\n }\n\n var name = info.name;\n var identity = info.identity;\n var territory;\n\n if (identity && identity.territory) {\n territory = identity.territory;\n } else {\n territory = territoryFromName(name, identity);\n }\n\n info.territory = territory;\n\n return territory;\n}\n","import { localeInfo } from './info';\nimport { errors } from '../errors';\nimport { DEFAULT_LOCALE } from '../common/constants';\n\nexport default function dateFieldName(options, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n var info = localeInfo(locale);\n var dateFields = info.calendar.dateFields;\n if (!dateFields) {\n throw errors.NoDateFieldNames.error();\n }\n\n var fieldNameInfo = dateFields[options.type] || {};\n\n return fieldNameInfo[options.nameType] || fieldNameInfo['wide'];\n}\n","import { getLocaleInfo } from './info';\nimport { EMPTY } from '../common/constants';\n\nfunction lowerArray(arr) {\n var result = [];\n for (var idx = 0; idx < arr.length; idx++) {\n result.push(arr[idx].toLowerCase());\n }\n return result;\n}\n\nfunction lowerObject(obj) {\n var result = {};\n for (var field in obj) {\n result[field] = obj[field].toLowerCase();\n }\n return result;\n}\n\nfunction cloneLower(obj) {\n var result = Array.isArray(obj) ? lowerArray(obj) : lowerObject(obj);\n return result;\n}\n\nexport default function dateFormatNames(locale, options) {\n var type = options.type;\n var nameType = options.nameType;\n var standAlone = options.standAlone;\n var lower = options.lower;\n var info = getLocaleInfo(locale);\n var formatType = standAlone ? \"stand-alone\" : \"format\";\n var lowerNameType = (lower ? \"lower-\" : EMPTY) + nameType;\n var formatNames = info.calendar[type][formatType];\n var result = formatNames[lowerNameType];\n if (!result && lower) {\n result = formatNames[lowerNameType] = cloneLower(formatNames[nameType]);\n }\n return result;\n}","export default function parseRangeDate(value) {\n var parts = value.split('-');\n var year = parseInt(parts[0], 10);\n var month = parseInt(parts[1], 10) - 1;\n var day = parseInt(parts[2], 10);\n\n return new Date(year, month, day);\n}\n","import { cldr, getLocaleInfo } from './info';\nimport { errors } from '../errors';\nimport localeTerritory from './territory';\nimport parseRangeDate from './parse-range-date';\n\n/* eslint-disable consistent-return */\n\nvar NoCurrency = errors.NoCurrency;\nvar NoCurrencyDisplay = errors.NoCurrencyDisplay;\nvar NoSupplementalCurrency = errors.NoSupplementalCurrency;\nvar NoCurrencyRegion = errors.NoCurrencyRegion;\nvar NoValidCurrency = errors.NoValidCurrency;\n\nvar DEFAULT_CURRENCY_FRACTIONS = 2;\nvar SYMBOL = \"symbol\";\nvar INVALID_CURRENCY_CODE = 'XXX';\n\nvar GLOBAL_CURRENCIES = {\n '001': 'USD', // 001 refers to world. not sure if it is correct to assume USD but seems better than throw an error\n '150': 'EUR' // 150 territory for Europe\n\n};\n\nfunction getCurrencyInfo(locale, currency, throwIfNoValid) {\n var info = getLocaleInfo(locale);\n var currencies = info.numbers.currencies;\n if (!currencies) {\n if (throwIfNoValid) {\n throw NoCurrency.error();\n }\n\n return;\n }\n\n var currencyDisplayInfo = currencies[currency];\n\n if (!currencyDisplayInfo) {\n if (throwIfNoValid) {\n throw NoCurrencyDisplay.error();\n }\n\n return;\n }\n\n return currencyDisplayInfo;\n}\n\nfunction lengthComparer(a, b) {\n return b.length - a.length;\n}\n\nfunction regionCurrency(regionCurrencies) {\n var latestValidUntil, latestValidUntilRange;\n var latestStillValid, latestStillValidDate;\n\n for (var idx = 0; idx < regionCurrencies.length; idx++) {\n var currency = regionCurrencies[idx];\n var code = Object.keys(currency)[0];\n var info = currency[code];\n if (code !== INVALID_CURRENCY_CODE && info._tender !== 'false' && info._from) {\n if (!info._to) {\n var stillValidDate = parseRangeDate(info._from);\n if (!latestStillValidDate || latestStillValidDate < stillValidDate) {\n latestStillValid = code;\n latestStillValidDate = stillValidDate;\n }\n } else if (!latestStillValid) {\n var validFrom = parseRangeDate(info._from);\n var validTo = parseRangeDate(info._to);\n if (!latestValidUntilRange || latestValidUntilRange.to < validTo || latestValidUntilRange.from < validFrom) {\n latestValidUntil = code;\n latestValidUntilRange = {\n from: validFrom,\n to: validTo\n };\n }\n }\n }\n }\n\n return latestStillValid || latestValidUntil;\n}\n\nexport function currencyDisplays(locale, currency, throwIfNoValid) {\n if ( throwIfNoValid === void 0 ) throwIfNoValid = true;\n\n var currencyInfo = getCurrencyInfo(locale, currency, throwIfNoValid);\n if (!currencyInfo) {\n return;\n }\n\n if (!currencyInfo.displays) {\n var displays = [ currency ];\n for (var field in currencyInfo) {\n displays.push(currencyInfo[field]);\n }\n displays.sort(lengthComparer);\n currencyInfo.displays = displays;\n }\n\n return currencyInfo.displays;\n}\n\nexport function currencyDisplay(locale, options) {\n var value = options.value;\n var currency = options.currency;\n var currencyDisplay = options.currencyDisplay; if ( currencyDisplay === void 0 ) currencyDisplay = SYMBOL;\n\n if (currencyDisplay === \"code\") {\n return currency;\n }\n\n var currencyInfo = getCurrencyInfo(locale, currency, true);\n var result;\n\n if (currencyDisplay === SYMBOL) {\n result = currencyInfo[\"symbol-alt-narrow\"] || currencyInfo[SYMBOL];\n } else {\n if (typeof value === undefined || value !== 1) {\n result = currencyInfo[\"displayName-count-other\"];\n } else {\n result = currencyInfo[\"displayName-count-one\"];\n }\n }\n\n return result;\n}\n\nexport function currencyFractionOptions(code) {\n var minimumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n var maximumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n\n var fractions = ((cldr.supplemental.currencyData || {}).fractions || {})[code];\n\n if (fractions && fractions._digits) {\n maximumFractionDigits = minimumFractionDigits = parseInt(fractions._digits, 10);\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nexport function territoryCurrencyCode(territory, throwIfNoValid) {\n if ( throwIfNoValid === void 0 ) throwIfNoValid = true;\n\n if (GLOBAL_CURRENCIES[territory]) {\n return GLOBAL_CURRENCIES[territory];\n }\n\n var currencyData = cldr.supplemental.currencyData;\n if (!currencyData) {\n if (throwIfNoValid) {\n throw NoSupplementalCurrency.error();\n }\n\n return;\n }\n\n var regionCurrencies = currencyData.region[territory];\n\n if (!regionCurrencies) {\n if (throwIfNoValid) {\n throw NoCurrencyRegion.error(territory);\n }\n\n return;\n }\n\n var currencyCode = regionCurrency(regionCurrencies);\n\n return currencyCode;\n}\n\nexport function localeCurrency(locale, throwIfNoValid) {\n var info = getLocaleInfo(locale);\n var numbers = info.numbers;\n\n if (!numbers.localeCurrency) {\n var currency = territoryCurrencyCode(localeTerritory(info), throwIfNoValid);\n\n if (!currency && throwIfNoValid) {\n throw NoValidCurrency.error(info.name);\n }\n\n numbers.localeCurrency = currency;\n }\n\n return numbers.localeCurrency;\n}\n","\nexport var DAYS_OF_WEEK = [ \"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\" ];\n\nexport var DEFAULT_TERRITORY = '001';\n","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nvar NoWeekData = errors.NoWeekData;\nvar NoFirstDay = errors.NoFirstDay;\n\nexport default function firstDay(locale) {\n var info = getLocaleInfo(locale);\n\n if (!isNaN(info.firstDay)) {\n return info.firstDay;\n }\n\n var weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n var firstDay = weekData.firstDay[localeTerritory(info)] || weekData.firstDay[DEFAULT_TERRITORY];\n\n if (!firstDay) {\n throw NoFirstDay.error();\n }\n\n info.firstDay = DAYS_OF_WEEK.indexOf(firstDay);\n\n return info.firstDay;\n}\n","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nvar NoWeekData = errors.NoWeekData;\n\nexport default function weekendRange(locale) {\n var info = getLocaleInfo(locale);\n\n if (info.weekendRange) {\n return info.weekendRange;\n }\n\n var weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n var territory = localeTerritory(info);\n var start = weekData.weekendStart[territory] || weekData.weekendStart[DEFAULT_TERRITORY];\n var end = weekData.weekendEnd[territory] || weekData.weekendEnd[DEFAULT_TERRITORY];\n\n info.weekendRange = {\n start: DAYS_OF_WEEK.indexOf(start),\n end: DAYS_OF_WEEK.indexOf(end)\n };\n\n return info.weekendRange;\n}\n","import { getLocaleInfo } from './info';\n\nexport default function numberSymbols(locale) {\n var info = getLocaleInfo(locale);\n\n return info.numbers.symbols;\n}","import { currencyDisplay, localeCurrency } from '../cldr';\n\nexport default function formatCurrencySymbol(info, options) {\n if ( options === void 0 ) options = {};\n\n if (!options.currency) {\n options.currency = localeCurrency(info, true);\n }\n\n var display = currencyDisplay(info, options);\n\n return display;\n}\n","export default function groupInteger(number, start, end, options, info) {\n var symbols = info.numbers.symbols;\n var decimalIndex = number.indexOf(symbols.decimal);\n var groupSizes = options.groupSize.slice();\n var groupSize = groupSizes.shift();\n\n var integerEnd = decimalIndex !== -1 ? decimalIndex : end + 1;\n\n var integer = number.substring(start, integerEnd);\n var result = number;\n var integerLength = integer.length;\n\n if (integerLength >= groupSize) {\n var idx = integerLength;\n var parts = [];\n\n while (idx > -1) {\n var value = integer.substring(idx - groupSize, idx);\n if (value) {\n parts.push(value);\n }\n idx -= groupSize;\n var newGroupSize = groupSizes.shift();\n groupSize = newGroupSize !== undefined ? newGroupSize : groupSize;\n\n if (groupSize === 0) {\n value = integer.substring(0, idx);\n if (value) {\n parts.push(value);\n }\n break;\n }\n }\n\n integer = parts.reverse().join(symbols.group);\n result = number.substring(0, start) + integer + number.substring(integerEnd);\n }\n\n return result;\n}","import { CURRENCY, ACCOUNTING } from '../common/constants';\n\nexport default function isCurrencyStyle(style) {\n return style === CURRENCY || style === ACCOUNTING;\n}","export default function pad(number, digits, right) {\n if ( digits === void 0 ) digits = 2;\n if ( right === void 0 ) right = false;\n\n var count = digits - String(number).length;\n var result = number;\n\n if (count > 0) {\n var padString = new Array(count + 1).join(\"0\");\n result = right ? number + padString : padString + number;\n }\n\n return result;\n}","var MAX_PRECISION = 20;\n\nexport default function round(value, precision) {\n var result = value;\n var decimals = precision || 0;\n\n result = result.toString().split('e');\n result = Math.round(Number(result[0] + 'e' + (result[1] ? (Number(result[1]) + decimals) : decimals)));\n\n result = result.toString().split('e');\n result = Number(result[0] + 'e' + (result[1] ? (Number(result[1]) - decimals) : -decimals));\n\n return result.toFixed(Math.min(decimals, MAX_PRECISION));\n}","import { PERCENT, SCIENTIFIC, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, EMPTY, POINT } from '../common/constants';\nimport formatCurrencySymbol from './format-currency-symbol';\nimport groupInteger from './group-integer';\nimport isCurrencyStyle from './is-currency-style';\nimport pad from '../common/pad';\nimport round from '../common/round';\nimport { currencyFractionOptions } from '../cldr';\n\nvar DEFAULT_DECIMAL_ROUNDING = 3;\nvar DEFAULT_PERCENT_ROUNDING = 0;\n\nvar trailingZeroRegex = /0+$/;\n\nfunction fractionOptions(options) {\n var minimumFractionDigits = options.minimumFractionDigits;\n var maximumFractionDigits = options.maximumFractionDigits;\n var style = options.style;\n var isCurrency = isCurrencyStyle(style);\n var currencyFractions;\n if (isCurrency) {\n currencyFractions = currencyFractionOptions(options.currency);\n }\n\n if (minimumFractionDigits === undefined) {\n minimumFractionDigits = isCurrency ? currencyFractions.minimumFractionDigits : 0;\n }\n\n if (maximumFractionDigits === undefined) {\n if (style === PERCENT) {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_PERCENT_ROUNDING);\n } else if (isCurrency) {\n maximumFractionDigits = Math.max(minimumFractionDigits, currencyFractions.maximumFractionDigits);\n } else {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_DECIMAL_ROUNDING);\n }\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nfunction applyPattern(value, pattern, symbol) {\n var result = EMPTY;\n for (var idx = 0, length = pattern.length; idx < length; idx++) {\n var ch = pattern.charAt(idx);\n\n if (ch === NUMBER_PLACEHOLDER) {\n result += value;\n } else if (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) {\n result += symbol;\n } else {\n result += ch;\n }\n }\n return result;\n}\n\nfunction currencyUnitPattern(info, value) {\n var currencyInfo = info.numbers.currency;\n var pattern = value !== 1 ? currencyInfo[\"unitPattern-count-other\"] : currencyInfo[\"unitPattern-count-one\"];\n if (value < 0) {\n pattern = pattern.replace(NUMBER_PLACEHOLDER, (\"-\" + NUMBER_PLACEHOLDER));\n }\n\n return pattern;\n}\n\n\nexport default function standardNumberFormat(number, options, info) {\n var symbols = info.numbers.symbols;\n var style = options.style;\n var isCurrency = isCurrencyStyle(style);\n\n //return number in exponential format\n if (style === SCIENTIFIC) {\n var exponential = options.minimumFractionDigits !== undefined ? number.toExponential(options.minimumFractionDigits) : number.toExponential();\n return exponential.replace(POINT, symbols.decimal);\n }\n\n var value = number;\n var symbol;\n\n if (isCurrency) {\n options.value = value;\n symbol = formatCurrencySymbol(info, options);\n }\n\n if (style === PERCENT) {\n value *= 100;\n symbol = symbols.percentSign;\n }\n\n var ref = fractionOptions(options);\n var minimumFractionDigits = ref.minimumFractionDigits;\n var maximumFractionDigits = ref.maximumFractionDigits;\n\n value = round(value, maximumFractionDigits);\n\n var negative = value < 0;\n\n var parts = value.split(POINT);\n\n var integer = parts[0];\n var fraction = pad(parts[1] ? parts[1].replace(trailingZeroRegex, EMPTY) : EMPTY, minimumFractionDigits, true);\n\n //exclude \"-\" if number is negative.\n if (negative) {\n integer = integer.substring(1);\n }\n\n if (options.minimumIntegerDigits) {\n integer = pad(integer, options.minimumIntegerDigits);\n }\n\n var formattedValue = options.useGrouping !== false ? groupInteger(integer, 0, integer.length, options, info) : integer;\n\n if (fraction) {\n formattedValue += symbols.decimal + fraction;\n }\n\n var pattern;\n\n if (isCurrency && options.currencyDisplay === \"name\") {\n pattern = currencyUnitPattern(info, number);\n } else {\n var patterns = options.patterns;\n pattern = negative ? patterns[1] || (\"-\" + patterns[0]) : patterns[0];\n }\n\n if (pattern === NUMBER_PLACEHOLDER && !negative) {\n return formattedValue;\n }\n\n var result = applyPattern(formattedValue, pattern, symbol);\n\n return result;\n}","import { CURRENCY, PERCENT, LIST_SEPARATOR, GROUP_SEPARATOR, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, POINT, EMPTY } from '../common/constants';\nimport formatCurrencySymbol from './format-currency-symbol';\nimport groupInteger from './group-integer';\nimport round from '../common/round';\n\nvar PLACEHOLDER = \"__??__\";\n\nvar SHARP = \"#\";\nvar ZERO = \"0\";\n\nvar literalRegExp = /(\\\\.)|(['][^']*[']?)|([\"][^\"]*[\"]?)/g;\nvar trailingZerosRegExp = /(\\.(?:[0-9]*[1-9])?)0+$/g;\nvar trailingPointRegExp = /\\.$/;\nvar commaRegExp = /\\,/g;\n\nfunction setFormatLiterals(formatOptions) {\n var format = formatOptions.format;\n if (format.indexOf(\"'\") > -1 || format.indexOf(\"\\\"\") > -1 || format.indexOf(\"\\\\\") > -1) {\n var literals = formatOptions.literals = [];\n formatOptions.format = format.replace(literalRegExp, function(match) {\n var quoteChar = match.charAt(0).replace(\"\\\\\", EMPTY);\n var literal = match.slice(1).replace(quoteChar, EMPTY);\n\n literals.push(literal);\n\n return PLACEHOLDER;\n });\n }\n}\n\nfunction trimTrailingZeros(value, lastZero) {\n var trimRegex;\n\n if (lastZero === 0) {\n trimRegex = trailingZerosRegExp;\n } else {\n trimRegex = new RegExp((\"(\\\\.[0-9]{\" + lastZero + \"}[1-9]*)0+$\"), 'g');\n }\n\n return value.replace(trimRegex, '$1').replace(trailingPointRegExp, EMPTY);\n}\n\nfunction roundNumber(formatOptions) {\n var number = formatOptions.number;\n var format = formatOptions.format;\n var decimalIndex = format.indexOf(POINT);\n\n if (decimalIndex !== -1) {\n var zeroIndex = format.lastIndexOf(ZERO) - decimalIndex;\n var sharpIndex = format.lastIndexOf(SHARP) - decimalIndex;\n var hasZero = zeroIndex > -1;\n var hasSharp = sharpIndex > -1;\n var fraction = number.toString().split(\"e\");\n\n if (fraction[1]) {\n fraction = round(number, Math.abs(fraction[1]));\n } else {\n fraction = fraction[0];\n }\n fraction = fraction.split(POINT)[1] || EMPTY;\n\n var precision = fraction.length;\n var trailingZeros = -1;\n\n if (!hasZero && !hasSharp) {\n formatOptions.format = format.substring(0, decimalIndex) + format.substring(decimalIndex + 1);\n decimalIndex = -1;\n precision = 0;\n } else if (hasZero && zeroIndex > sharpIndex) {\n precision = zeroIndex;\n } else if (sharpIndex > zeroIndex) {\n if (hasSharp && precision > sharpIndex) {\n precision = sharpIndex;\n } else if (hasZero && precision < zeroIndex) {\n precision = zeroIndex;\n }\n\n trailingZeros = hasZero ? zeroIndex : 0;\n }\n\n if (precision > -1) {\n number = round(number, precision);\n if (trailingZeros > -1) {\n number = trimTrailingZeros(number, trailingZeros);\n }\n }\n } else {\n number = round(number);\n }\n\n if (formatOptions.negative && (number * -1) >= 0) {\n formatOptions.negative = false;\n }\n\n formatOptions.number = number;\n formatOptions.decimalIndex = decimalIndex;\n}\n\nfunction isConstantFormat(format) {\n return format.indexOf(SHARP) === -1 && format.indexOf(ZERO) === -1;\n}\n\nfunction setValueSpecificFormat(formatOptions) {\n var number = formatOptions.number;\n var format = formatOptions.format;\n format = format.split(LIST_SEPARATOR);\n if (formatOptions.negative && format[1]) {\n format = format[1];\n formatOptions.hasNegativeFormat = true;\n } else if (number === 0) {\n var zeroFormat = format[2];\n format = zeroFormat || format[0];\n if (zeroFormat && isConstantFormat(zeroFormat)) {\n formatOptions.constant = zeroFormat;\n }\n } else {\n format = format[0];\n }\n\n formatOptions.format = format;\n}\n\nfunction setStyleOptions(formatOptions, info) {\n var format = formatOptions.format;\n\n //multiply number if the format has percent\n if (format.indexOf(PERCENT_PLACEHOLDER) !== -1) {\n formatOptions.style = PERCENT;\n formatOptions.symbol = info.numbers.symbols.percentSign;\n formatOptions.number *= 100;\n }\n\n if (format.indexOf(CURRENCY_PLACEHOLDER) !== -1) {\n formatOptions.style = CURRENCY;\n formatOptions.symbol = formatCurrencySymbol(info);\n }\n}\n\nfunction setGroupOptions(formatOptions) {\n formatOptions.hasGroup = formatOptions.format.indexOf(GROUP_SEPARATOR) > -1;\n if (formatOptions.hasGroup) {\n formatOptions.format = formatOptions.format.replace(commaRegExp, EMPTY);\n }\n}\n\nfunction placeholderIndex(index1, index2, start) {\n var index;\n if (index1 === -1 && index2 !== -1) {\n index = index2;\n } else if (index1 !== -1 && index2 === -1) {\n index = index1;\n } else {\n index = start ? Math.min(index1, index2) : Math.max(index1, index2);\n }\n return index;\n}\n\nfunction setPlaceholderIndices(formatOptions) {\n var format = formatOptions.format;\n var sharpIndex = format.indexOf(SHARP);\n var zeroIndex = format.indexOf(ZERO);\n\n var start = placeholderIndex(sharpIndex, zeroIndex, true);\n\n sharpIndex = format.lastIndexOf(SHARP);\n zeroIndex = format.lastIndexOf(ZERO);\n\n var end = placeholderIndex(sharpIndex, zeroIndex);\n\n if (start === format.length) {\n end = start;\n }\n\n formatOptions.start = start;\n formatOptions.end = end;\n formatOptions.lastZeroIndex = zeroIndex;\n}\n\nfunction replaceStyleSymbols(number, style, symbol) {\n var result = number;\n if (style === CURRENCY || style === PERCENT) {\n result = EMPTY;\n for (var idx = 0, length = number.length; idx < length; idx++) {\n var ch = number.charAt(idx);\n result += (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) ? symbol : ch;\n }\n }\n return result;\n}\n\nfunction replaceLiterals(number, literals) {\n var result = number;\n if (literals) {\n var length = literals.length;\n for (var idx = 0; idx < length; idx++) {\n result = result.replace(PLACEHOLDER, literals[idx]);\n }\n }\n return result;\n}\n\nfunction replacePlaceHolders(formatOptions, info) {\n var start = formatOptions.start;\n var end = formatOptions.end;\n var negative = formatOptions.negative;\n var format = formatOptions.format;\n var decimalIndex = formatOptions.decimalIndex;\n var lastZeroIndex = formatOptions.lastZeroIndex;\n var hasNegativeFormat = formatOptions.hasNegativeFormat;\n var hasGroup = formatOptions.hasGroup;\n var number = formatOptions.number;\n var value = number.toString().split(POINT);\n var length = format.length;\n var integer = value[0];\n var fraction = value[1] || EMPTY;\n var integerLength = integer.length;\n var replacement = EMPTY;\n\n number = format.substring(0, start);\n\n if (negative && !hasNegativeFormat) {\n number += \"-\";\n }\n\n for (var idx = start; idx < length; idx++) {\n var ch = format.charAt(idx);\n\n if (decimalIndex === -1) {\n if (end - idx < integerLength) {\n\n number += integer;\n break;\n }\n } else {\n if (lastZeroIndex !== -1 && lastZeroIndex < idx) {\n replacement = EMPTY;\n }\n\n if ((decimalIndex - idx) <= integerLength && decimalIndex - idx > -1) {\n number += integer;\n idx = decimalIndex;\n }\n\n if (decimalIndex === idx) {\n number += (fraction ? info.numbers.symbols.decimal : EMPTY) + fraction;\n idx += end - decimalIndex + 1;\n continue;\n }\n }\n\n if (ch === ZERO) {\n number += ch;\n replacement = ch;\n } else if (ch === SHARP) {\n number += replacement;\n }\n }\n\n if (hasGroup) {\n number = groupInteger(number, start + (negative && !hasNegativeFormat ? 1 : 0), Math.max(end, (integerLength + start)), info.numbers.decimal, info);\n }\n\n if (end >= start) {\n number += format.substring(end + 1);\n }\n\n return number;\n}\n\nfunction applyCustomFormat(formatOptions, info) {\n var number = formatOptions.number;\n if (formatOptions.start !== -1) {\n number = replacePlaceHolders(formatOptions, info);\n number = replaceStyleSymbols(number, formatOptions.style, formatOptions.symbol);\n number = replaceLiterals(number, formatOptions.literals);\n }\n\n return number;\n}\n\nexport default function customNumberFormat(number, format, info) {\n var formatOptions = {\n negative: number < 0,\n number: Math.abs(number),\n format: format\n };\n\n setValueSpecificFormat(formatOptions);\n\n if (formatOptions.constant) {\n return formatOptions.constant;\n }\n\n setFormatLiterals(formatOptions);\n setStyleOptions(formatOptions, info);\n setGroupOptions(formatOptions);\n roundNumber(formatOptions);\n setPlaceholderIndices(formatOptions);\n\n return applyCustomFormat(formatOptions, info);\n}","import { CURRENCY, ACCOUNTING, DECIMAL, PERCENT, SCIENTIFIC } from '../common/constants';\nimport isString from '../common/is-string';\n\nvar standardFormatRegExp = /^(n|c|p|e|a)(\\d*)$/i;\n\nfunction standardFormatOptions(format) {\n var formatAndPrecision = standardFormatRegExp.exec(format);\n\n if (formatAndPrecision) {\n var options = {\n style: DECIMAL\n };\n\n var style = formatAndPrecision[1].toLowerCase();\n\n if (style === \"c\") {\n options.style = CURRENCY;\n } else if (style === \"a\") {\n options.style = ACCOUNTING;\n } else if (style === \"p\") {\n options.style = PERCENT;\n } else if (style === \"e\") {\n options.style = SCIENTIFIC;\n }\n\n if (formatAndPrecision[2]) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseInt(formatAndPrecision[2], 10);\n }\n\n return options;\n }\n}\n\nexport default function formatOptions(format) {\n var options;\n if (isString(format)) {\n options = standardFormatOptions(format);\n } else {\n options = format;\n }\n\n return options;\n}","import { localeInfo } from '../cldr';\nimport { DECIMAL, DEFAULT_LOCALE, NUMBER_PLACEHOLDER, EMPTY } from '../common/constants';\nimport standardNumberFormat from './standard-number-format';\nimport customNumberFormat from './custom-number-format';\nimport formatOptions from './format-options';\n\nexport default function formatNumber(number, format, locale) {\n if ( format === void 0 ) format = NUMBER_PLACEHOLDER;\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n if (number === undefined || number === null) {\n return EMPTY;\n }\n\n if (!isFinite(number)) {\n return String(number);\n }\n\n var info = localeInfo(locale);\n var options = formatOptions(format);\n\n var result;\n if (options) {\n var style = options.style || DECIMAL;\n result = standardNumberFormat(number, Object.assign({}, info.numbers[style], options), info);\n } else {\n result = customNumberFormat(number, format, info);\n }\n\n return result;\n}\n","export default function isNumber(value) {\n return typeof value === \"number\";\n}","import { localeInfo, localeCurrency, currencyDisplays } from '../cldr';\nimport { PERCENT, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, DEFAULT_LOCALE, EMPTY, POINT } from '../common/constants';\nimport isNumber from '../common/is-number';\nimport isCurrencyStyle from './is-currency-style';\nimport formatOptions from './format-options';\n\nvar exponentRegExp = /[eE][\\-+]?[0-9]+/;\nvar nonBreakingSpaceRegExp = /\\u00A0/g;\n\nfunction cleanNegativePattern(number, patterns) {\n if (patterns.length > 1) {\n var parts = (patterns[1] || EMPTY).replace(CURRENCY_PLACEHOLDER, EMPTY).split(NUMBER_PLACEHOLDER);\n if (number.indexOf(parts[0]) > -1 && number.indexOf(parts[1]) > -1) {\n return number.replace(parts[0], EMPTY).replace(parts[1], EMPTY);\n }\n }\n}\n\nfunction cleanCurrencyNumber(value, info, format) {\n var options = formatOptions(format) || {};\n var isCurrency = isCurrencyStyle(options.style);\n var number = value;\n var negative;\n\n var currency = options.currency || localeCurrency(info, isCurrency);\n\n if (currency) {\n var displays = currencyDisplays(info, currency, isCurrency);\n if (displays) {\n for (var idx = 0; idx < displays.length; idx++) {\n var display = displays[idx];\n if (number.includes(display)) {\n number = number.replace(display, EMPTY);\n isCurrency = true;\n break;\n }\n }\n }\n\n if (isCurrency) {\n var cleanNumber = cleanNegativePattern(number, info.numbers.currency.patterns) ||\n cleanNegativePattern(number, info.numbers.accounting.patterns);\n\n if (cleanNumber) {\n negative = true;\n number = cleanNumber;\n }\n\n }\n }\n\n return {\n number: number,\n negative: negative\n };\n}\n\nexport default function parseNumber(value, locale, format) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n if ( format === void 0 ) format = {};\n\n if (!value && value !== 0) {\n return null;\n }\n\n if (isNumber(value)) {\n return value;\n }\n\n var info = localeInfo(locale);\n var symbols = info.numbers.symbols;\n\n var number = value.toString();\n var isPercent;\n\n if (exponentRegExp.test(number)) {\n number = parseFloat(number.replace(symbols.decimal, POINT));\n return isNaN(number) ? null : number;\n }\n\n var negativeSignIndex = number.indexOf(\"-\");\n if (negativeSignIndex > 0) {\n return null;\n }\n\n var isNegative = negativeSignIndex > -1;\n var ref = cleanCurrencyNumber(number, info, format);\n var negativeCurrency = ref.negative;\n var newNumber = ref.number;\n\n number = newNumber;\n isNegative = negativeCurrency !== undefined ? negativeCurrency : isNegative;\n\n if (format.style === PERCENT || number.indexOf(symbols.percentSign) > -1) {\n number = number.replace(symbols.percentSign, EMPTY);\n isPercent = true;\n }\n\n number = number.replace(\"-\", EMPTY)\n .replace(nonBreakingSpaceRegExp, \" \")\n .split(symbols.group.replace(nonBreakingSpaceRegExp, \" \")).join(EMPTY)\n .replace(symbols.decimal, POINT);\n\n number = parseFloat(number);\n\n if (isNaN(number)) {\n number = null;\n } else if (isNegative) {\n number *= -1;\n }\n\n if (number && isPercent) {\n number /= 100;\n }\n\n return number;\n}\n","var formatRegExp = /\\{(\\d+)}/g;\n\nexport default function formatString(format) {\n var values = arguments;\n\n return format.replace(formatRegExp, function (match, index) {\n var value = values[parseInt(index, 10) + 1];\n\n return value;\n });\n}","import formatString from '../common/format-string';\nimport isString from '../common/is-string';\nimport { EMPTY } from '../common/constants';\n\nvar REMOVAL_PENALTY = 120;\nvar ADDITION_PENALTY = 20;\nvar LENGHT_DELTA = [ 2, 1, 5, 3, 4 ];\nvar LONG_LESS_PENALTY_DELTA = -2;\nvar SHORT_LESS_PENALTY_DELTA = -1;\nvar SHORT_MORE_PENALTY_DELTA = 1;\nvar LONG_MORE_PENALTY_DELTA = 2;\n\nvar PENALTIES = {};\nPENALTIES[LONG_LESS_PENALTY_DELTA.toString()] = 8;\nPENALTIES[SHORT_LESS_PENALTY_DELTA.toString()] = 6;\nPENALTIES[LONG_MORE_PENALTY_DELTA.toString()] = 6;\nPENALTIES[SHORT_MORE_PENALTY_DELTA.toString()] = 3;\n\nvar VALUE_FORMAT_LENGTH = {\n numeric: 1,\n \"2-digit\": 2,\n short: 3,\n long: 4,\n narrow: 5\n};\n\nvar TIME_SPECIFIERS_REGEX = /[hHmsSzZoOvVxX]/;\n\nfunction getHourSpecifier(options) {\n return options.hour12 ? \"h\" : \"H\";\n}\n\nvar DATE_OPTIONS_MAP = [ {\n key: \"era\",\n specifier: \"G\"\n}, {\n key: \"year\",\n specifier: \"y\"\n}, {\n key: \"month\",\n specifier: \"M\"\n}, {\n key: \"day\",\n specifier: \"d\"\n}, {\n key: \"weekday\",\n specifier: \"E\"\n}, {\n key: \"hour\",\n getSpecifier: getHourSpecifier\n}, {\n key: \"minute\",\n specifier: \"m\"\n}, {\n key: \"second\",\n specifier: \"s\"\n}, {\n key: \"timeZoneName\",\n specifier: \"z\"\n} ];\n\nvar STAND_ALONE_SPECIFIERS = {\n e: 'c',\n E: 'c',\n M: 'L',\n Q: 'q'\n};\n\nvar specifiersRegex = {};\nvar resolvedFormats = {};\n\nfunction getSpecifierRegex(specifier) {\n if (!specifiersRegex[specifier]) {\n specifiersRegex[specifier] = new RegExp(specifier + \"+\");\n }\n return specifiersRegex[specifier];\n}\n\nfunction skeletonSpecifiers(skeleton) {\n var result = [];\n var current = skeleton.charAt(0);\n var specifier = current;\n for (var idx = 1; idx < skeleton.length; idx++) {\n var character = skeleton.charAt(idx);\n if (character === specifier) {\n current += character;\n } else {\n result.push(current);\n current = specifier = character;\n }\n }\n\n result.push(current);\n\n return result;\n}\n\nfunction findBestMatch(specifiers, availableFormats) {\n var specifiersLength = specifiers.length;\n var maxScore = -Number.MAX_VALUE;\n var bestMatches, result;\n for (var format in availableFormats) {\n var matches = [];\n var currentFormat = format.replace(\"v\", \"z\");\n var score = 0;\n for (var idx = 0; idx < specifiersLength; idx++) {\n var specifier = specifiers[idx];\n var specifierRegex = getSpecifierRegex(specifier[0]);\n var match = (specifierRegex.exec(currentFormat) || [])[0];\n\n if (!match) {\n score -= REMOVAL_PENALTY;\n } else {\n currentFormat = currentFormat.replace(match, EMPTY);\n if (match.length !== specifier.length) {\n var delta = Math.max(Math.min(LENGHT_DELTA[match.length] - LENGHT_DELTA[specifier.length], 2), -2);\n score -= PENALTIES[delta];\n }\n }\n\n matches.push(match);\n\n if (score < maxScore) {\n break;\n }\n }\n\n if (currentFormat.length) {\n score -= skeletonSpecifiers(currentFormat).length * ADDITION_PENALTY;\n }\n\n if (score > maxScore) {\n maxScore = score;\n bestMatches = matches;\n result = availableFormats[format];\n }\n }\n\n result = result.replace(\"v\", \"z\");\n\n for (var idx$1 = 0; idx$1 < specifiersLength; idx$1++) {\n var bestMatch = bestMatches[idx$1];\n if (bestMatch && bestMatch !== specifiers[idx$1]) {\n var matchSpecifier = bestMatches[idx$1][0];\n result = result.replace(getSpecifierRegex(matchSpecifier), specifiers[idx$1]);\n if (STAND_ALONE_SPECIFIERS[matchSpecifier]) {\n result = result.replace(getSpecifierRegex(STAND_ALONE_SPECIFIERS[matchSpecifier]), specifiers[idx$1]);\n }\n }\n }\n\n return result;\n}\n\nfunction cacheFormat(skeleton, format, locale) {\n if (!resolvedFormats[locale]) {\n resolvedFormats[locale] = {};\n }\n resolvedFormats[locale][skeleton] = format;\n}\n\n\nfunction skeletonFormat(skeleton, info) {\n var availableFormats = info.calendar.dateTimeFormats.availableFormats;\n if (availableFormats[skeleton]) {\n return availableFormats[skeleton];\n }\n if (resolvedFormats[info.name] && resolvedFormats[info.name][skeleton]) {\n return resolvedFormats[info.name][skeleton];\n }\n var timeStartIndex = skeleton.search(TIME_SPECIFIERS_REGEX);\n var result;\n if (timeStartIndex > 0) {\n var dateSkeleton = skeleton.substr(0, timeStartIndex);\n var timeSkeleton = skeleton.substr(timeStartIndex);\n\n result = formatString(info.calendar.dateTimeFormats.short, //should be deterimed based on specifiers\n availableFormats[timeSkeleton] || findBestMatch(skeletonSpecifiers(timeSkeleton), availableFormats),\n availableFormats[dateSkeleton] || findBestMatch(skeletonSpecifiers(dateSkeleton), availableFormats));\n } else {\n result = findBestMatch(skeletonSpecifiers(skeleton), availableFormats);\n }\n\n cacheFormat(skeleton, result, info.name);\n return result;\n}\n\nfunction skeletonFromOptions(options) {\n var result = [];\n for (var idx = 0; idx < DATE_OPTIONS_MAP.length; idx++) {\n var option = DATE_OPTIONS_MAP[idx];\n var field = option.key;\n var value = options[field];\n if (value) {\n var spcifier = option.specifier || option.getSpecifier(options);\n result.push(spcifier.repeat(VALUE_FORMAT_LENGTH[value]));\n }\n }\n\n return result.join(EMPTY);\n}\n\nexport default function datePattern(format, info) {\n var calendar = info.calendar;\n var result;\n if (isString(format)) {\n if (calendar.patterns[format]) {\n result = calendar.patterns[format];\n } else {\n result = format;\n }\n } else if (format) {\n if (format.pattern) {\n return format.pattern;\n }\n\n var skeleton = format.skeleton;\n if (!skeleton) {\n if (format.datetime) {\n result = formatString(calendar.dateTimeFormats[format.datetime], calendar.timeFormats[format.datetime], calendar.dateFormats[format.datetime]);\n } else if (format.date) {\n result = calendar.dateFormats[format.date];\n } else if (format.time) {\n result = calendar.timeFormats[format.time];\n } else {\n skeleton = skeletonFromOptions(format);\n }\n }\n\n if (skeleton) {\n result = skeletonFormat(skeleton, info);\n }\n }\n\n if (!result) {\n result = calendar.patterns.d;\n }\n\n return result;\n}\n","export default function dateNameType(formatLength) {\n var nameType;\n if (formatLength <= 3) {\n nameType = \"abbreviated\";\n } else if (formatLength === 4) {\n nameType = \"wide\";\n } else if (formatLength === 5) {\n nameType = \"narrow\";\n } else if (formatLength === 6) {\n nameType = \"short\";\n }\n\n return nameType;\n}","import dateFormatNames from '../cldr/date-format-names';\nimport dateNameType from './date-name-type';\n\nexport default function formatNames(locale, type, formatLength, standAlone, lower) {\n return dateFormatNames(locale, {\n type: type,\n nameType: dateNameType(formatLength),\n standAlone: standAlone,\n lower: lower\n });\n}","function isFunction(fun) {\n return typeof(fun) === 'function';\n}\n\nexport default function isDate(value) {\n return Boolean(value) && isFunction(value.getTime) && isFunction(value.getMonth);\n}\n","var MONTH = 'month';\nvar HOUR = 'hour';\nvar ZONE = 'zone';\nvar WEEKDAY = 'weekday';\nvar QUARTER = 'quarter';\n\nvar DATE_FIELD_MAP = {\n 'G': 'era',\n 'y': 'year',\n 'q': QUARTER,\n 'Q': QUARTER,\n 'M': MONTH,\n 'L': MONTH,\n 'd': 'day',\n 'E': WEEKDAY,\n 'c': WEEKDAY,\n 'e': WEEKDAY,\n 'h': HOUR,\n 'H': HOUR,\n 'k': HOUR,\n 'K': HOUR,\n 'm': 'minute',\n 's': 'second',\n 'a': 'dayperiod',\n 'x': ZONE,\n 'X': ZONE,\n 'z': ZONE,\n 'Z': ZONE\n};\n\nvar dateFormatRegExp = /d{1,2}|E{1,6}|e{1,6}|c{3,6}|c{1}|M{1,5}|L{1,5}|y{1,4}|H{1,2}|h{1,2}|k{1,2}|K{1,2}|m{1,2}|a{1,5}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|x{1,5}|X{1,5}|G{1,5}|q{1,5}|Q{1,5}|\"[^\"]*\"|'[^']*'/g;\n\nexport { dateFormatRegExp, DATE_FIELD_MAP };","import { localeInfo, firstDay } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport formatString from '../common/format-string';\nimport datePattern from './date-pattern';\nimport formatNames from './format-names';\nimport pad from '../common/pad';\nimport isDate from '../common/is-date';\nimport { dateFormatRegExp } from './constants';\n\nfunction formatDayOfWeekIndex(day, formatLength, localeInfo) {\n var firstDayIndex = firstDay(localeInfo);\n var dayIndex;\n if (day < firstDayIndex) {\n dayIndex = 7 - firstDayIndex + day;\n } else {\n dayIndex = day - firstDayIndex;\n }\n\n return dayIndex + 1;\n}\n\nfunction formatMonth(month, formatLength, info, standAlone) {\n if (formatLength <= 2) {\n return pad(month + 1, formatLength);\n }\n return formatNames(info, \"months\", formatLength, standAlone)[month];\n}\n\nfunction formatQuarter(date, formatLength, info, standAlone) {\n var quarter = Math.floor(date.getMonth() / 3);\n if (formatLength < 3) {\n return quarter + 1;\n }\n\n return formatNames(info, \"quarters\", formatLength, standAlone)[quarter];\n}\n\n\nfunction formatTimeZone(date, info, options) {\n var shortHours = options.shortHours;\n var optionalMinutes = options.optionalMinutes;\n var separator = options.separator;\n var localizedName = options.localizedName;\n var zZeroOffset = options.zZeroOffset;\n var offset = date.getTimezoneOffset() / 60;\n if (offset === 0 && zZeroOffset) {\n return \"Z\";\n }\n var sign = offset <= 0 ? \"+\" : \"-\";\n var hoursMinutes = Math.abs(offset).toString().split(\".\");\n var minutes = hoursMinutes[1] || 0;\n var result = sign + (shortHours ? hoursMinutes[0] : pad(hoursMinutes[0], 2));\n if (minutes || !optionalMinutes) {\n result += (separator ? \":\" : EMPTY) + pad(minutes, 2);\n }\n\n if (localizedName) {\n var localizedFormat = offset === 0 ? info.calendar.gmtZeroFormat : info.calendar.gmtFormat;\n result = formatString(localizedFormat, result);\n }\n\n return result;\n}\n\nfunction formatDayOfWeek(date, formatLength, info, standAlone) {\n var result;\n if (formatLength < 3) {\n result = formatDayOfWeekIndex(date.getDay(), formatLength, info);\n } else {\n result = formatNames(info, \"days\", formatLength, standAlone)[date.getDay()];\n }\n return result;\n}\n\nvar formatters = {};\n\nformatters.d = function(date, formatLength) {\n return pad(date.getDate(), formatLength);\n};\n\nformatters.E = function(date, formatLength, info) {\n return formatNames(info, \"days\", formatLength)[date.getDay()];\n};\n\nformatters.M = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, false);\n};\n\nformatters.L = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, true);\n};\n\nformatters.y = function(date, formatLength) {\n var year = date.getFullYear();\n if (formatLength === 2) {\n year = year % 100;\n }\n return pad(year, formatLength);\n};\n\nformatters.h = function(date, formatLength) {\n var hours = date.getHours() % 12 || 12;\n return pad(hours, formatLength);\n};\n\nformatters.H = function(date, formatLength) {\n return pad(date.getHours(), formatLength);\n};\n\nformatters.k = function(date, formatLength) {\n return pad(date.getHours() || 24, formatLength);\n};\n\nformatters.K = function(date, formatLength) {\n return pad(date.getHours() % 12, formatLength);\n};\n\nformatters.m = function(date, formatLength) {\n return pad(date.getMinutes(), formatLength);\n};\n\nformatters.s = function(date, formatLength) {\n return pad(date.getSeconds(), formatLength);\n};\n\nformatters.S = function(date, formatLength) {\n var milliseconds = date.getMilliseconds();\n var result;\n if (milliseconds !== 0) {\n result = String(date.getMilliseconds() / 1000).split(\".\")[1].substr(0, formatLength);\n } else {\n result = pad(EMPTY, formatLength);\n }\n return result;\n};\n\nformatters.a = function(date, formatLength, info) {\n return formatNames(info, \"dayPeriods\", formatLength)[date.getHours() < 12 ? \"am\" : \"pm\"];\n};\n\nformatters.z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n shortHours: formatLength < 4,\n optionalMinutes: formatLength < 4,\n separator: true,\n localizedName: true\n });\n};\n\nformatters.Z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n separator: formatLength > 3,\n localizedName: formatLength === 4,\n zZeroOffset: formatLength === 5\n });\n};\n\nformatters.x = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5\n });\n};\n\nformatters.X = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5,\n zZeroOffset: true\n });\n};\n\nformatters.G = function(date, formatLength, info) {\n var era = date.getFullYear() >= 0 ? 1 : 0;\n return formatNames(info, \"eras\", formatLength)[era];\n};\n\nformatters.e = formatDayOfWeek;\n\nformatters.c = function(date, formatLength, info) {\n return formatDayOfWeek(date, formatLength, info, true);\n};\n\nformatters.q = function(date, formatLength, info) {\n return formatQuarter(date, formatLength, info, true);\n};\n\nformatters.Q = formatQuarter;\n\nexport default function formatDate(date, format, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n if (!isDate(date)) {\n if (date === undefined || date === null) {\n return EMPTY;\n }\n return date;\n }\n\n var info = localeInfo(locale);\n var pattern = datePattern(format, info);\n\n return pattern.replace(dateFormatRegExp, function(match) {\n var formatLength = match.length;\n var result;\n\n if (match.includes(\"'\") || match.includes(\"\\\"\")) {\n result = match.slice(1, formatLength - 1);\n } else {\n result = formatters[match[0]](date, formatLength, info);\n }\n\n return result;\n });\n}\n","export function convertTimeZone(date, fromOffset, toOffset) {\n var fromLocalOffset = date.getTimezoneOffset();\n\n var offsetDate = new Date(date.getTime() + (fromOffset - toOffset) * 60000);\n\n var toLocalOffset = offsetDate.getTimezoneOffset();\n\n return new Date(offsetDate.getTime() + (toLocalOffset - fromLocalOffset) * 60000);\n}\n\nexport function adjustDST(date, hours) {\n if (!hours && date.getHours() === 23) {\n date.setHours(date.getHours() + 2);\n }\n}","import { adjustDST, convertTimeZone } from './time-utils';\nimport { localeInfo } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport { errors } from '../errors';\nimport formatNames from './format-names';\nimport datePattern from './date-pattern';\nimport round from '../common/round';\nimport isDate from '../common/is-date';\n\nvar timeZoneOffsetRegExp = /([+|\\-]\\d{1,2})(:?)(\\d{2})?/;\nvar dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\nvar offsetRegExp = /[+-]\\d*/;\nvar numberRegExp = {\n 2: /^\\d{1,2}/,\n 3: /^\\d{1,3}/,\n 4: /^\\d{4}/\n};\nvar numberRegex = /\\d+/;\nvar PLACEHOLDER = \"{0}\";\n\nvar standardDateFormats = [\n \"yyyy/MM/dd HH:mm:ss\",\n \"yyyy/MM/dd HH:mm\",\n \"yyyy/MM/dd\",\n \"E MMM dd yyyy HH:mm:ss\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSXXX\",\n \"yyyy-MM-ddTHH:mm:ssXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSS\",\n \"yyyy-MM-ddTHH:mm:ss.SSS\",\n \"yyyy-MM-ddTHH:mmXXX\",\n \"yyyy-MM-ddTHH:mmX\",\n \"yyyy-MM-ddTHH:mm:ss\",\n \"yyyy-MM-ddTHH:mm\",\n \"yyyy-MM-dd HH:mm:ss\",\n \"yyyy-MM-dd HH:mm\",\n \"yyyy-MM-dd\",\n \"HH:mm:ss\",\n \"HH:mm\"\n];\nvar FORMATS_SEQUENCE = [ \"G\", \"g\", \"F\", \"Y\", \"y\", \"M\", \"m\", \"D\", \"d\", \"y\", \"T\", \"t\" ];\nvar TWO_DIGIT_YEAR_MAX = 2029;\n\nfunction outOfRange(value, start, end) {\n return !(value >= start && value <= end);\n}\n\nfunction lookAhead(match, state) {\n var format = state.format;\n var idx = state.idx;\n var i = 0;\n while (format[idx] === match) {\n i++;\n idx++;\n }\n if (i > 0) {\n idx -= 1;\n }\n state.idx = idx;\n return i;\n}\n\nfunction getNumber(size, state) {\n var regex = size ? (numberRegExp[size] || new RegExp('^\\\\d{1,' + size + '}')) : numberRegex,\n match = state.value.substr(state.valueIdx, size).match(regex);\n\n if (match) {\n match = match[0];\n state.valueIdx += match.length;\n return parseInt(match, 10);\n }\n return null;\n}\n\nfunction getIndexByName(names, state, lower) {\n var i = 0,\n length = names.length,\n name, nameLength,\n matchLength = 0,\n matchIdx = 0,\n subValue;\n\n for (; i < length; i++) {\n name = names[i];\n nameLength = name.length;\n subValue = state.value.substr(state.valueIdx, nameLength);\n\n if (lower) {\n subValue = subValue.toLowerCase();\n }\n\n if (subValue === name && nameLength > matchLength) {\n matchLength = nameLength;\n matchIdx = i;\n }\n }\n\n if (matchLength) {\n state.valueIdx += matchLength;\n return matchIdx + 1;\n }\n\n return null;\n}\n\nfunction checkLiteral(state) {\n var result = false;\n if (state.value.charAt(state.valueIdx) === state.format[state.idx]) {\n state.valueIdx++;\n result = true;\n }\n return result;\n}\n\nfunction calendarGmtFormats(calendar) {\n var gmtFormat = calendar.gmtFormat;\n var gmtZeroFormat = calendar.gmtZeroFormat;\n if (!gmtFormat) {\n throw errors.NoGMTInfo.error();\n }\n\n return [ gmtFormat.replace(PLACEHOLDER, EMPTY).toLowerCase(), gmtZeroFormat.replace(PLACEHOLDER, EMPTY).toLowerCase() ];\n}\n\nfunction parseTimeZoneOffset(state, info, options) {\n var shortHours = options.shortHours;\n var noSeparator = options.noSeparator;\n var optionalMinutes = options.optionalMinutes;\n var localizedName = options.localizedName;\n var zLiteral = options.zLiteral;\n state.UTC = true;\n\n if (zLiteral && state.value.charAt(state.valueIdx) === \"Z\") {\n state.valueIdx++;\n return false;\n }\n\n if (localizedName && !getIndexByName(calendarGmtFormats(info.calendar), state, true)) {\n return true;\n }\n\n var matches = timeZoneOffsetRegExp.exec(state.value.substr(state.valueIdx, 6));\n if (!matches) {\n return !localizedName;\n }\n\n var hoursMatch = matches[1];\n var minutesMatch = matches[3];\n var hoursOffset = parseInt(hoursMatch, 10);\n var separator = matches[2];\n var minutesOffset = parseInt(minutesMatch, 10);\n\n if (isNaN(hoursOffset) || (!shortHours && hoursMatch.length !== 3) || (!optionalMinutes && isNaN(minutesOffset)) || (noSeparator && separator)) {\n return true;\n }\n\n if (isNaN(minutesOffset)) {\n minutesOffset = null;\n }\n\n if (outOfRange(hoursOffset, -12, 13) || (minutesOffset && outOfRange(minutesOffset, 0, 59))) {\n return true;\n }\n\n state.valueIdx += matches[0].length;\n state.hoursOffset = hoursOffset;\n state.minutesOffset = minutesOffset;\n}\n\nfunction parseMonth(ch, state, info) {\n var count = lookAhead(ch, state);\n var names = formatNames(info, \"months\", count, ch === \"L\", true);\n\n var month = count < 3 ? getNumber(2, state) : getIndexByName(names, state, true);\n\n if (month === null || outOfRange(month, 1, 12)) {\n return true;\n }\n state.month = month - 1;\n}\n\nfunction parseDayOfWeek(ch, state, info) {\n var count = lookAhead(ch, state);\n var names = formatNames(info, \"days\", count, ch === \"c\", true);\n var dayOfWeek = count < 3 ? getNumber(1, state) : getIndexByName(names, state, true);\n if ((!dayOfWeek && dayOfWeek !== 0) || outOfRange(dayOfWeek, 1, 7)) {\n return true;\n }\n}\n\nvar parsers = {};\n\nparsers.d = function(state) {\n lookAhead(\"d\", state);\n var day = getNumber(2, state);\n\n if (day === null || outOfRange(day, 1, 31)) {\n return true;\n }\n\n if (state.day === null) {\n state.day = day;\n }\n};\n\nparsers.E = function(state, info) {\n var count = lookAhead(\"E\", state);\n //validate if it matches the day?\n var dayOfWeek = getIndexByName(formatNames(info, \"days\", count, false, true), state, true);\n if (dayOfWeek === null) {\n return true;\n }\n};\n\nparsers.M = function(state, info) {\n return parseMonth(\"M\", state, info);\n};\n\nparsers.L = function(state, info) {\n return parseMonth(\"L\", state, info);\n};\n\nparsers.y = function(state) {\n var count = lookAhead(\"y\", state);\n var year = getNumber(count === 1 ? undefined : count, state);\n\n if (year === null) {\n return true;\n }\n\n if (count === 2) {\n var currentYear = new Date().getFullYear();\n year = (currentYear - currentYear % 100) + year;\n if (year > TWO_DIGIT_YEAR_MAX) {\n year -= 100;\n }\n }\n\n state.year = year;\n};\n\nparsers.h = function(state) {\n lookAhead(\"h\", state);\n\n var hours = getNumber(2, state);\n if (hours === 12) {\n hours = 0;\n }\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.K = function(state) {\n lookAhead(\"K\", state);\n\n var hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.a = function(state, info) {\n var count = lookAhead(\"a\", state);\n var periodFormats = formatNames(info, \"dayPeriods\", count, false, true);\n\n var pmHour = getIndexByName([ periodFormats.pm ], state, true);\n if (!pmHour && !getIndexByName([ periodFormats.am ], state, true)) {\n return true;\n }\n\n state.pmHour = pmHour;\n};\n\nparsers.H = function(state) {\n lookAhead(\"H\", state);\n var hours = getNumber(2, state);\n if (hours === null || outOfRange(hours, 0, 23)) {\n return true;\n }\n state.hours = hours;\n};\n\nparsers.k = function(state) {\n lookAhead(\"k\", state);\n\n var hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 1, 24)) {\n return true;\n }\n\n state.hours = hours === 24 ? 0 : hours;\n};\n\nparsers.m = function(state) {\n lookAhead(\"m\", state);\n var minutes = getNumber(2, state);\n\n if (minutes === null || outOfRange(minutes, 0, 59)) {\n return true;\n }\n\n state.minutes = minutes;\n};\n\nparsers.s = function(state) {\n lookAhead(\"s\", state);\n var seconds = getNumber(2, state);\n if (seconds === null || outOfRange(seconds, 0, 59)) {\n return true;\n }\n state.seconds = seconds;\n};\n\nparsers.S = function(state) {\n var count = lookAhead(\"S\", state);\n var match = state.value.substr(state.valueIdx, count);\n var milliseconds = null;\n\n if (!isNaN(parseInt(match, 10))) {\n milliseconds = parseFloat(\"0.\" + match, 10);\n milliseconds = round(milliseconds, 3);\n milliseconds *= 1000;\n state.valueIdx += count;\n }\n\n if (milliseconds === null || outOfRange(milliseconds, 0, 999)) {\n return true;\n }\n\n state.milliseconds = milliseconds;\n};\n\nparsers.z = function(state, info) {\n var count = lookAhead(\"z\", state);\n\n var shortFormat = count < 4;\n\n var invalid = parseTimeZoneOffset(state, info, {\n shortHours: shortFormat,\n optionalMinutes: shortFormat,\n localizedName: true\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.Z = function(state, info) {\n var count = lookAhead(\"Z\", state);\n\n var invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count < 4,\n zLiteral: count === 5,\n localizedName: count === 4\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.x = function(state, info) {\n var count = lookAhead(\"x\", state);\n\n var invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.X = function(state, info) {\n var count = lookAhead(\"X\", state);\n\n var invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1,\n zLiteral: true\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.G = function(state, info) {\n var count = lookAhead(\"G\", state);\n var eras = formatNames(info, \"eras\", count, false, true);\n var era = getIndexByName([ eras[0], eras[1] ], state, true);\n\n if (era === null) {\n return true;\n }\n};\n\nparsers.e = function(state, info) {\n return parseDayOfWeek(\"e\", state, info);\n};\n\nparsers.c = function(state, info) {\n return parseDayOfWeek(\"c\", state, info);\n};\n\nfunction createDate(state) {\n var year = state.year;\n var month = state.month;\n var day = state.day;\n var hours = state.hours;\n var minutes = state.minutes;\n var seconds = state.seconds;\n var milliseconds = state.milliseconds;\n var pmHour = state.pmHour;\n var UTC = state.UTC;\n var hoursOffset = state.hoursOffset;\n var minutesOffset = state.minutesOffset;\n var hasTime = hours !== null || minutes !== null || seconds || null;\n var date = new Date();\n var result;\n\n if (year === null && month === null && day === null && hasTime) {\n year = date.getFullYear();\n month = date.getMonth();\n day = date.getDate();\n } else {\n if (year === null) {\n year = date.getFullYear();\n }\n\n if (day === null) {\n day = 1;\n }\n }\n\n if (pmHour && hours < 12) {\n hours += 12;\n }\n\n if (UTC) {\n if (hoursOffset) {\n hours += -hoursOffset;\n }\n\n if (minutesOffset) {\n minutes += -minutesOffset * (hoursOffset < 0 ? -1 : 1);\n }\n\n result = new Date(Date.UTC(year, month, day, hours, minutes, seconds, milliseconds));\n } else {\n result = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n adjustDST(result, hours);\n }\n\n if (year < 100) {\n result.setFullYear(year);\n }\n\n if (result.getDate() !== day && UTC === undefined) {\n return null;\n }\n\n return result;\n}\n\nfunction parseExact(value, format, info) {\n var pattern = datePattern(format, info).split(EMPTY);\n\n var state = {\n format: pattern,\n idx: 0,\n value: value,\n valueIdx: 0,\n year: null,\n month: null,\n day: null,\n hours: null,\n minutes: null,\n seconds: null,\n milliseconds: null\n };\n var length = pattern.length;\n var literal = false;\n\n for (; state.idx < length; state.idx++) {\n var ch = pattern[state.idx];\n\n if (literal) {\n if (ch === \"'\") {\n literal = false;\n }\n\n checkLiteral(state);\n } else {\n if (parsers[ch]) {\n var invalid = parsers[ch](state, info);\n if (invalid) {\n return null;\n }\n } else if (ch === \"'\") {\n literal = true;\n checkLiteral(state);\n } else if (!checkLiteral(state)) {\n return null;\n }\n }\n }\n\n if (state.valueIdx < value.length) {\n return null;\n }\n\n return createDate(state) || null;\n}\n\nfunction parseMicrosoftDateOffset(offset) {\n var sign = offset.substr(0, 1) === \"-\" ? -1 : 1;\n\n var result = offset.substring(1);\n result = (parseInt(result.substr(0, 2), 10) * 60) + parseInt(result.substring(2), 10);\n\n return sign * result;\n}\n\nfunction parseMicrosoftDateFormat(value) {\n if (value && value.indexOf(\"/D\") === 0) {\n var date = dateRegExp.exec(value);\n if (date) {\n date = date[1];\n var tzoffset = offsetRegExp.exec(date.substring(1));\n\n date = new Date(parseInt(date, 10));\n\n if (tzoffset) {\n tzoffset = parseMicrosoftDateOffset(tzoffset[0]);\n date = convertTimeZone(date, date.getTimezoneOffset(), 0);\n date = convertTimeZone(date, 0, -1 * tzoffset);\n }\n\n return date;\n }\n }\n}\n\nfunction defaultFormats(calendar) {\n var formats = [];\n var patterns = calendar.patterns;\n var length = FORMATS_SEQUENCE.length;\n\n for (var idx = 0; idx < length; idx++) {\n formats.push(patterns[FORMATS_SEQUENCE[idx]]);\n }\n\n return formats.concat(standardDateFormats);\n}\n\nexport default function parseDate(value, formats, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n if (!value) {\n return null;\n }\n\n if (isDate(value)) {\n return value;\n }\n\n var parseValue = String(value).trim();\n var date = parseMicrosoftDateFormat(parseValue);\n if (date) {\n return date;\n }\n\n var info = localeInfo(locale);\n var parseFormats = formats || defaultFormats(info.calendar);\n parseFormats = Array.isArray(parseFormats) ? parseFormats : [ parseFormats ];\n\n var length = parseFormats.length;\n\n for (var idx = 0; idx < length; idx++) {\n date = parseExact(parseValue, parseFormats[idx], info);\n if (date) {\n return date;\n }\n }\n\n return date;\n}\n","import { DEFAULT_LOCALE } from '../common/constants';\nimport isNumber from '../common/is-number';\nimport datePattern from './date-pattern';\nimport dateNameType from './date-name-type';\nimport { dateFormatRegExp, DATE_FIELD_MAP } from './constants';\nimport { localeInfo } from '../cldr';\n\nvar NAME_TYPES = {\n month: {\n type: 'months',\n minLength: 3,\n standAlone: 'L'\n },\n\n quarter: {\n type: 'quarters',\n minLength: 3,\n standAlone: 'q'\n },\n\n weekday: {\n type: 'days',\n minLength: {\n E: 0,\n c: 3,\n e: 3\n },\n standAlone: 'c'\n },\n\n dayperiod: {\n type: 'dayPeriods',\n minLength: 0\n },\n\n era: {\n type: 'eras',\n minLength: 0\n }\n};\n\nvar LITERAL = 'literal';\n\nfunction addLiteral(parts, value) {\n var lastPart = parts[parts.length - 1];\n if (lastPart && lastPart.type === LITERAL) {\n lastPart.pattern += value;\n } else {\n parts.push({\n type: LITERAL,\n pattern: value\n });\n }\n}\n\nfunction isHour12(pattern) {\n return pattern === 'h' || pattern === 'K';\n}\n\nexport default function splitDateFormat(format, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n var info = localeInfo(locale);\n var pattern = datePattern(format, info);\n var parts = [];\n var lastIndex = dateFormatRegExp.lastIndex = 0;\n var match = dateFormatRegExp.exec(pattern);\n\n while (match) {\n var value = match[0];\n\n if (lastIndex < match.index) {\n addLiteral(parts, pattern.substring(lastIndex, match.index));\n }\n\n if (value.startsWith('\"') || value.startsWith(\"'\")) {\n addLiteral(parts, value);\n } else {\n var specifier = value[0];\n var type = DATE_FIELD_MAP[specifier];\n var part = {\n type: type,\n pattern: value\n };\n\n if (type === 'hour') {\n part.hour12 = isHour12(value);\n }\n\n var names = NAME_TYPES[type];\n\n if (names) {\n var minLength = isNumber(names.minLength) ? names.minLength : names.minLength[specifier];\n var patternLength = value.length;\n\n if (patternLength >= minLength) {\n part.names = {\n type: names.type,\n nameType: dateNameType(patternLength),\n standAlone: names.standAlone === specifier\n };\n }\n }\n\n parts.push(part);\n }\n\n lastIndex = dateFormatRegExp.lastIndex;\n match = dateFormatRegExp.exec(pattern);\n }\n\n if (lastIndex < pattern.length) {\n addLiteral(parts, pattern.substring(lastIndex));\n }\n\n return parts;\n}\n","import { formatDate } from './dates';\nimport { formatNumber } from './numbers';\nimport { EMPTY } from './common/constants';\nimport isDate from './common/is-date';\nimport isNumber from './common/is-number';\n\nvar formatRegExp = /\\{(\\d+)(:[^\\}]+)?\\}/g;\n\nexport function toString(value, format, locale) {\n if (format) {\n if (isDate(value)) {\n return formatDate(value, format, locale);\n } else if (isNumber(value)) {\n return formatNumber(value, format, locale);\n }\n }\n\n return value !== undefined && value !== null ? value : EMPTY;\n}\n\nexport function format(format, values, locale) {\n return format.replace(formatRegExp, function(match, index, placeholderFormat) {\n var value = values[parseInt(index, 10)];\n\n return toString(value, placeholderFormat ? placeholderFormat.substring(1) : EMPTY, locale);\n });\n}\n","import * as coreIntl from '@telerik/kendo-intl';\n/**\n * A service which provides internationalization methods\n * and is bound to a specific locale.\n */\nvar IntlService = /** @class */ (function () {\n /**\n * Creates a new instance of the internationalization service.\n *\n * @param locale - The locale that will be used by the internationalization methods.\n */\n function IntlService(locale) {\n this.locale = locale;\n if (locale === '' && process.env.NODE_ENV !== 'production') {\n throw 'Locale should not be empty string';\n }\n }\n /**\n * Formats a string with placeholders such as\n * `Total amount {0:c}`.\n *\n * @param format - The format string.\n * @param values - One or more values to output in the format string placeholders.\n * @return - The formatted string.\n */\n IntlService.prototype.format = function (format) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n /* The following code retains backward compatibility with the old API */\n if (values.length === 1 && Array.isArray(values[0])) {\n return coreIntl.format(format, values[0], this.locale);\n }\n return coreIntl.format(format, values, this.locale);\n };\n /**\n * Converts a `Date` object to a string based on the specified format.\n * If no format is provided, the default short date format is used.\n *\n * @param value - The date which will be formatted.\n * @param format - The format string or options.\n * @return - The formatted date.\n */\n IntlService.prototype.formatDate = function (value, format) {\n return coreIntl.formatDate(value, format, this.locale);\n };\n /**\n * Converts an object to a string based on the specified format.\n *\n * @param value - The value which will be formatted.\n * @param format - The format to use.\n * @return - The formatted object.\n */\n IntlService.prototype.toString = function (value, format) {\n return coreIntl.toString(value, format, this.locale);\n };\n /**\n * Converts a string to a `Number`.\n *\n * @param value - The string which will be parsed.\n * @param format - The format string or options.\n * @return - The parsed number.\n */\n IntlService.prototype.parseNumber = function (value, format) {\n return coreIntl.parseNumber(value, this.locale, format);\n };\n /**\n * Converts a string to a `Date` object based on the specified format.\n *\n * @param value - The string which will be converted.\n * @param format - The format strings or options.\n * @return - The parsed date.\n */\n IntlService.prototype.parseDate = function (value, format) {\n return coreIntl.parseDate(value, format, this.locale);\n };\n /**\n * Converts a `Number` to a string based on the specified format.\n *\n * @param value - The number which will be formatted.\n * @param format - The format string or options.\n * @return - The formatted number.\n */\n IntlService.prototype.formatNumber = function (value, format) {\n return coreIntl.formatNumber(value, format, this.locale);\n };\n /**\n * Returns a localized date field name based on specific `dateFieldName` options.\n *\n * @param options - The detailed configuration for the desired date field name.\n * @returns - The localized date field name from the current locale based on the option.\n */\n IntlService.prototype.dateFieldName = function (options) {\n return coreIntl.dateFieldName(options, this.locale);\n };\n /**\n * Returns the day names from the current locale based on the option.\n *\n * @param options - The detailed configuration for the desired date format.\n * @return - The day names from the current locale based on the option.\n */\n IntlService.prototype.dateFormatNames = function (options) {\n return coreIntl.dateFormatNames(this.locale, options);\n };\n /**\n * Splits the date format into objects which contain\n * information about each part of the pattern.\n *\n * @param format - The format string or options.\n * @returns - The date format parts.\n */\n IntlService.prototype.splitDateFormat = function (format) {\n return coreIntl.splitDateFormat(format, this.locale);\n };\n /**\n * Returns the number symbols from the current locale.\n *\n * @return - The number symbols from the current locale.\n */\n IntlService.prototype.numberSymbols = function () {\n return coreIntl.numberSymbols(this.locale);\n };\n /**\n * Returns the first day index, starting from Sunday.\n *\n * @return - The index of the first day of the week (0 == Sunday).\n */\n IntlService.prototype.firstDay = function () {\n return coreIntl.firstDay(this.locale);\n };\n return IntlService;\n}());\nexport { IntlService };\n","// @ts-ignore\nimport * as aVue from 'vue';\nvar allVue = aVue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar provide = allVue.provide;\nimport { IntlService } from './IntlService';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * A Vue component which provides an internationalization service.\n * Expects a locale string as a property of the component.\n */\n\nvar IntlProvider = {\n props: {\n locale: String\n },\n data: function data() {\n return this.getChildContext();\n },\n // @ts-ignore\n setup: function setup(props) {\n var v3 = !!gh;\n var intlService = ref(new IntlService(props.locale));\n provide('kendoIntlService', intlService);\n return {\n v3: v3\n };\n },\n watch: {\n locale: function locale(newLocale) {\n this.$data.kendoIntlService.locale = newLocale;\n }\n },\n provide: function provide() {\n return {\n kendoIntlService: this.$data.kendoIntlService\n };\n },\n methods: {\n /**\n * Returns an internationalization service.\n * The method is suitable for overriding when you\n * implement custom internationalization behavior.\n */\n getIntlService: function getIntlService() {\n return new IntlService(this.$props.locale);\n },\n\n /**\n * @hidden\n */\n getChildContext: function getChildContext() {\n return {\n kendoIntlService: this.getIntlService()\n };\n }\n },\n\n /**\n * @hidden\n */\n // @ts-ignore\n render: function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", [defaultSlot]);\n }\n};\nexport { IntlProvider };","import { IntlProvider } from './IntlProvider';\nimport { IntlService } from './IntlService';\nexport { IntlProvider, IntlService };\n// Automatic installation if Vue has been added to the global scope.\nvar vue = 'Vue';\nif (typeof window !== 'undefined' && window[vue] && window[vue].component) {\n window[vue].component('kendo-intl-provider', IntlProvider);\n}\n","/**\n * @hidden\n */\nexport var messages = Object.create({});\n","import { messages } from './messages';\n/**\n * A service which provides localization methods.\n */\nvar LocalizationService = /** @class */ (function () {\n function LocalizationService(language) {\n this.language = language;\n if (language === '' && process.env.NODE_ENV !== 'production') {\n throw 'Language should not be an empty string';\n }\n }\n /**\n * Provides a string based on a key for the current language.\n * When no string for the current language is available under this key,\n * the `defaultValue` is returned.\n *\n * @param key - The key which identifies the string for the current language.\n * @param defaultValue - The default value which will be returned when no string\n * for the current language is available under the key.\n * @return - The string for the current language.\n */\n LocalizationService.prototype.toLanguageString = function (key, defaultValue) {\n if (this.language &&\n messages[this.language] &&\n messages[this.language].hasOwnProperty(key)) {\n return messages[this.language][key];\n }\n else if (Object.keys(this)[0] &&\n messages[Object.values(this)[0]] &&\n messages[Object.values(this)[0]].hasOwnProperty(key)) {\n return messages[Object.values(this)[0]][key];\n }\n else {\n return defaultValue;\n }\n };\n return LocalizationService;\n}());\nexport { LocalizationService };\n","// @ts-ignore\nimport * as Vue from 'vue';\nvar allVue = Vue;\nvar gh = allVue.h;\nvar ref = allVue.ref;\nvar provide = allVue.provide;\nimport { LocalizationService } from './LocalizationService';\nimport { getDefaultSlots } from '@progress/kendo-vue-common';\n/**\n * A Vue component which provides a localization service.\n * Expects a language string as a property of the component.\n */\n\nvar LocalizationProvider = {\n props: {\n language: String\n },\n data: function data() {\n return this.getChildContext();\n },\n watch: {\n language: function language(newLanguage) {\n this.$data.kendoLocalizationService.language = newLanguage;\n }\n },\n // @ts-ignore\n setup: function setup(props) {\n var v3 = !!gh;\n var localizationService = ref(new LocalizationService(props.language));\n provide('kendoLocalizationService', localizationService);\n return {\n v3: v3\n };\n },\n provide: function provide() {\n return {\n kendoLocalizationService: this.$data.kendoLocalizationService\n };\n },\n methods: {\n /**\n * Returns a localization service.\n * The method is suitable for overriding when you\n * implement custom localization behavior.\n */\n getLocalizationService: function getLocalizationService() {\n return new LocalizationService(this.$props.language);\n },\n\n /**\n * @hidden\n */\n getChildContext: function getChildContext() {\n return {\n kendoLocalizationService: this.getLocalizationService()\n };\n }\n },\n\n /**\n * @hidden\n */\n // @ts-ignore\n render: function render(createElement) {\n // @ts-ignore\n var h = gh || createElement;\n var defaultSlot = getDefaultSlots(this);\n return h(\"div\", [defaultSlot]);\n }\n};\nexport { LocalizationProvider };","import { loadMessages } from './loadMessages';\nimport { LocalizationProvider } from './LocalizationProvider';\nimport { LocalizationService } from './LocalizationService';\nexport { loadMessages, LocalizationProvider, LocalizationService };\n// Automatic installation if Vue has been added to the global scope.\nvar vue = 'Vue';\nif (typeof window !== 'undefined' && window[vue] && window[vue].component) {\n window[vue].component('kendo-localization-provider', LocalizationProvider);\n}\n","import { IntlService } from './Intl/IntlService';\nimport { LocalizationService } from './Localization/LocalizationService';\n/**\n * Provides an internationalization service.\n * When the passed component is a direct or indirect child of\n * `IntlProvider`, the returned service uses the locale of the provider.\n * Otherwise, uses `en` as a default locale.\n * To handle locale changes, call the method on each `render`.\n *\n * @param componentClass - The Vue component class that will use the internationalization service.\n */\nexport function provideIntlService(component) {\n if (!component && process.env.NODE_ENV !== 'production') {\n throw \"Passed component - \" + component + \" is invalid.\";\n }\n var intlServiceFromContext = component.kendoIntlService;\n return (intlServiceFromContext &&\n Object.keys(intlServiceFromContext).some(function (item) { return item === 'locale'; }))\n ? intlServiceFromContext : new IntlService('en');\n}\n/**\n * Provides a localization service.\n * When the passed component is a direct or indirect child of\n * `LocalizationProvider`, the returned service uses the language of the provider.\n * To handle locale changes, call the method on each `render`.\n *\n * @param componentClass - The Vue component class that will use the internationalization service.\n */\nexport function provideLocalizationService(component) {\n if (!component && process.env.NODE_ENV !== 'production') {\n throw \"Passed component - \" + component + \" is invalid.\";\n }\n var localizationServiceFromContext = component.kendoLocalizationService;\n return (localizationServiceFromContext &&\n Object.keys(localizationServiceFromContext).some(function (item) { return item === 'language'; }))\n ? localizationServiceFromContext : new LocalizationService();\n}\n","export * from './Intl/main';\nexport * from './Localization/main';\nexport * from './coreExports';\nexport * from './intlUtils';\n"],"sourceRoot":""}