{"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?6b9e","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?ab63","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","staticClass","drawdown","VonapWindow","selectedOperations","operationModel","VBtn","VCard","VCardActions","VCardTitle","VContainer","VFlex","VLayout","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","show","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","domProps","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","preventDefault","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","watch","_","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","set","contentType","_t","dealId","showDealForm","dealTypeId","_e","reportParameters","readUrl","exportUrl","openDealForm","drawdownModalVisible","operationId","scheduleModalVisible","closeScheduleDeliveryModal","exportToExcel","getSelectedRows","dataSource","onGridDataBound","openDealTemplate","deliveryScheduleLinkTemplate","dealLinkClick","schema","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","values","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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AM,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,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,cAIZE,SAAU,CACNL,OAAQ,CACJC,YAAa,CACT,KACA,KACA,KACA,MAEJC,OAAQ,CACJ,IACA,IACA,IACA,KAEJC,KAAM,CACF,cACA,cACA,cACA,gBAGR,cAAe,CACXF,YAAa,CACT,KACA,KACA,KACA,MAEJC,OAAQ,CACJ,IACA,IACA,IACA,KAEJC,KAAM,CACF,cACA,cACA,cACA,iBAIZG,WAAY,CACRN,OAAQ,CACJC,YAAa,C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","file":"js/reports~sitemap.f653105a.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 confirmation\",\"width\":\"320px\",\"height\":\"280px\",\"modal\":true,\"visible\":_vm.value},on:{\"success\":_vm.refresh,\"close\":_vm.close}},[_c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-card',{staticClass:\"mx-auto\"},[_c('v-card-title',[_c('span',{staticClass:\"title font-weight-bold\"},[_vm._v(\"Drawdown all selected on\")])]),_c('v-container',{attrs:{\"grid-list-xl\":\"\",\"text-xs-center\":\"\"}},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs10\":\"\",\"offset-xs1\":\"\"}},[_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)],1),_c('v-card-actions',[_c('v-container',[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs6\":\"\"}},[_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"success\"},on:{\"click\":_vm.drawdown}},[_vm._v(\"Yes\")])],1),_c('v-flex',{attrs:{\"xs6\":\"\"}},[_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"error\"},on:{\"click\":_vm.close}},[_vm._v(\"No\")])],1)],1)],1)],1)],1)],1)],1)}\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!./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=753a9796&\"\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardTitle,VContainer,VFlex,VLayout})\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\":\"Number\",\"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=36935e31&\"\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":""}