{"version":3,"sources":["webpack:///./app/javascript/packs/pages/listing_ctrl.js","webpack:///./app/javascript/packs/pages/raffle_ctrl.js","webpack:///./app/javascript/packs/pages/follower_ctrl.js","webpack:///./app/javascript/packs/pages/wax_tracker_ctrl.js","webpack:///./app/javascript/packs/pages/box_ctrl.js","webpack:///./app/javascript/packs/pages/search_page_ctrl.js","webpack:///./app/javascript/packs/pages/bread_crumbs_filter.js","webpack:///./node_modules/chartjs-adapter-moment/dist/chartjs-adapter-moment.esm.js","webpack:///./node_modules/chart.js/auto/auto.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./app/javascript/packs/pages/menu_waxstat_ctrl.js","webpack:///./node_modules/inputmask/dist/inputmask.js","webpack:///./node_modules/admin-lte/dist/js/adminlte.min.js","webpack:///./node_modules/angular/index.js","webpack:///./node_modules/angular-route/index.js","webpack:///./node_modules/angular-route/angular-route.js","webpack:///./app/javascript/packs/pages/pyt_ctrl.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/packs/pages/checklist_ctrl.js","webpack:///./node_modules/@kurkle/color/dist/color.esm.js","webpack:///./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack:///./node_modules/chart.js/dist/chart.js","webpack:///./app/javascript/packs/pages/price_history_ctrl.js","webpack:///./app/javascript/packs/pages/sitemap_ctrl.js","webpack:///./app/javascript/packs/pages/carts_ctrl.js","webpack:///./app/javascript/packs/pages/store_ctrl.js","webpack:///./app/javascript/packs/pages/user_ctrl.js","webpack:///./app/javascript/packs/vendor/jquery.floatingscroll.min.js","webpack:///./app/javascript/packs/vendor/owl.carousel.min.js","webpack:///./app/javascript/packs/base/init.js","webpack:///./app/javascript/packs/base/angular_app.js","webpack:///./app/javascript/packs/base/angular_utils.js","webpack:///./app/javascript/packs/pages/dashboard_ctrl.js"],"names":["app","controller","$scope","$timeout","step","start_time","name","league_name","notes","league_years","listing_type","listing_type_name","listing_teams","buyer_names","msg_name_error","msg_youtube_error","msg_league_error","msg_buyer_names_error","remain_chars_name","remain_chars_notes","LISTING_TYPES","shuffle","array","temporaryValue","randomIndex","currentIndex","length","Math","floor","random","init","getListingTeams","all_league_years","forEach","ly","idx","$","is","includes","league_year","push","previousStep","nextStep","type","validateNewListingData","validateBuyerNames","is_new_record","map","lt","id","team_id","team_name","buyer_name","trim","youtube_url","url","regExp","match","league_id","document","getElementById","files","max_images_upload","dd","val","mm","text","yy","HH","MM","concat","each","split","i","line","listing_id","parseInt","post","rs","success","$apply","updateLeagueYears","checkbox_id","checked","grep","value","$watch","randomize","lt_teams","sf","x","buyerArr","teams_random_times","teamArr","buyers_random_times","call","this","sport_type","league_select_status","league_select_status_for_auction","league_teams","team_params","msg_sport_error","raffle_type","display_highest_bidder","display_bid_history","currency_name","currency_sign","validateName","bindingCkeditorContent","submit","$event","error","preventDefault","filterValue","keyCode","isNaN","String","fromCharCode","target","angular","element","html","content","clone","selectedLeagueFunc","leagueSelectValue","selectedLeagueForAuctionFunc","leagueSelectValueForAuction","leagueSelectTagValue","get","sequence","price","puplic_note","note","getRaffleTypeValue","raffleType","querySelectorAll","key","removeClass","addClass","modal","changeRaffleTypeValue","displayHighestBidderToggleFunc","selecteCurrencyFunc","e","currency_type","raffle_slug","rowLength","list_random_team","random_team_obj","team_length","random_team","clear_form","arguments","undefined","raffle_id","result","notice","show_info_user_team","toastr","list_team","reload_user_random_team_info","lated_random_team_sequence","info","lated_random_team_time","time","team_username","name_and_username","team_ip_address","ip_address","get_history_claimer_arr","getLatedRandomTeam","random_claimer","list_random","list_claimer","full_name","username","raffle_claim_obj","reload_user_random_claimer_info","sent_get_history_request","get_history","data","attributes","date","list_reset","mask_full_name","JSON","parse","get_history_team_arr","team_obj","lated_random_sequence","lated_random_time","show_info_user_claimer","getInfoDiceTab","team_name_lists","team_list","fromJson","team_lists_default","claimer_name_list","claim_lists","claimer_lists_default","randomDice","nil","object","_","sampleSize","claimer_random_times","generateCombinedView","claimer_split","team_split","max_lenght","temp_claimer","temp_team","claimer","team","Object","keys","full_name_mark","combined_view","updateButton","numberOfReceiver","selected_followers","button","addFollower","removeFollower","index","indexOf","splice","selectFollower","obj","currentTarget","prop","selectAll","wax_tracker_url","index_data_chart_url","sport","no_image_url","key_search","suggestions","is_visible_suggestions","current_focus","is_loading_active_losses","is_loading_active_gains","is_loading_recently_added","is_loading_recently_changed","is_loading_data","active_losses","active_gains","recently_added","recently_changed","per_pages","view","page","per_in_page","is_loading_more","total","is_more","filters","list_price","range_price","min","max","price_text","list_box","list_case","list_sport","params_release_date","loading","is_open","filter_list","title","box_type","select_filter","browseBySport","window","location","href","changeSearch","getSuggestions","ajax","beforeSend","hide","attr","waxtracker_suggestions_url","dataType","cache","q","afterSend","succeed","heightImg","scrollTop","selectItem","blurSearch","keyupSearch","f","getElementsByTagName","addActive","click","getAttribute","removeActive","classList","add","remove","current_scroll_top","current_scroll_item","scrollHeight","cw","width","css","getActiveGains","waxtracker_active_gains_url","getActiveLosses","waxtracker_active_losses_url","getRecentlyAdded","waxtracker_recently_added_url","getRecentlyChanged","waxtracker_recently_changed_url","getDataIndex","per_page","to_date","from_date","min_price","max_price","waxtracker_data_index_url","getChart","ids","row","selected_chart_option","chart_type","chart_data","sort","y","Chart","datasets","borderColor","color","pointRadius","poitnHoverRadius","hoverRadius","options","animation","plugins","legend","display","tooltip","enabled","scales","getData","changeType","filter","defaultFilters","close_menu","favorite","box_id","next_page","data_next","to","from","previous_page","data_previous","getFilters","waxtracker_get_filters_url","changePrice","isNumeric","Number","filtersData","boxes","b","cases","sports","openFiltersModal","collapse","recommendations","recommendations_url","user_id","slug","slug_date","date_release_title","update_box_notification","box","update_box_notification_url","is_watchlist","message","change_date","click_filter_sport","open_menu","sub_data","_regeneratorRuntime","t","r","prototype","n","hasOwnProperty","o","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","h","l","s","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","_asyncToGenerator","fn","self","args","apply","err","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","toString","test","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","all_results","current_tab","chart_options","chart_market_options","type_charts","type_chart_key","loading_more_boxes","data_like_box","more_boxes","market_buy","total_page","market_sell","market_trades","market_page_size","import_url","steel_city_collectibles_url","blowout_cards_url","dave_and_adams_url","legends_fan_shop_url","the_sports_card_zone_url","roadshow_cards_url","piece_of_the_game_url","the_cardiacs_url","rbicru7_url","diamond_cards_online_url","giant_sports_cards_url","chicagoland_sports_cards_url","silver_state_hobby_url","cherry_collectibles_url","full_fund_dave_and_adams","full_fund_steel_city_collectibles","import_retailers","import_retailer","choose_retailer","except_ids","search_name_box","data_search","hidden","add_like_box","remove_like_box","getChartData","getChartMarket","selected_chart_market_offers_option","selected_chart_market_trades_option","getChartMarketData","getRandomColor","params","source_name","retailer","data_chart_url","backgroundColor","pointHoverRadius","ctx","getContext","gradient","createLinearGradient","addColorStop","fill","borderWidth","show","chart","ticks","callback","suggestedMin","suggestedMax","update","data_chart_market_url","chart_offers","tooltipFormat","callbacks","chart_trades","getMoreBoxes","more_boxes_url","number_page_more_boxes","ceil","setTimeout","chart_more_box","is_ad","getStatisticOutOfStock","statistic_out_of_stock_url","statistic_out_of_stock","one_day","seven_days","thirty_days","one_year","changeTab","tab","changeCardBreakPrice","totalCardBreakPrice","price_pay","price_profit","total_card_break_price","toFixed","getPriceMarket","market_data_box_url","count_page","records","changePageMarket","nextCreateStep","_callee","_context","disabledNextCreateStep","getDataNewBox","current_step","checkImportRetailerUrl","check","checkRegex","getName","is_import","get_data_new_box_url","upcs","upc","data_new_box","release_date","applyDatepicker","addLinkNewBox","description","editor","setData","backStepNewBox","submitCreateBox","is_format","check_empty","sport_type_id","league_year_id","box_type_id","_objectSpread","create_box_url","is_ajax","pathname","addUpc","checkUPC","replaceAll","check_upc_boxes_url","innerHTML","getFilter","name_of_elements","currentElement","initialize_filter_options_url","brand","year","sport_options","brand_options","year_options","box_type_options","can_show_more","no_slugs","is_loading_suggestion","tags","brands","years","box_types","data_box_histories","$watchGroup","newValues","oldValues","scope","temp","console","log","load_more","total_results","initializeFilterOptions","seeAllResults","closeSearch","blur","openSearch","animate","focus","getBoxSearchHistories","loadMore","getEvent","stopPropagation","removeTags","box_histories","data_boxes_url","slugs","addBoxHistory","box_slug","unshift","localStorage","setItem","box_type_ids","filterData","k","FORMATS","datetime","millisecond","second","minute","hour","day","week","month","quarter","_date","override","_id","formats","format","isValid","valueOf","amount","unit","diff","startOf","weekday","trunc","isoWeekday","endOf","register","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","querySelector","cspNonce","expando","m","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","event","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","dispatchEvent","stopEverything","stopImmediatePropagation","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","response","responseText","getResponseHeader","status","statusText","readyState","XMLHttpRequest","OPENED","send","toUpperCase","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","createElement","setAttribute","head","appendChild","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","encodeURIComponent","join","formElements","form","el","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","removeEventListener","handleMethod","formContent","link","action","style","body","isRemote","handleRemote","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","module","exports","createCommonjsModule","sparkMd5","factory","hex_chr","md5cycle","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","byteLength","set","buffer","hexToBinaryString","bytes","substr","SparkMD5","clamp","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","classCallCheck","instance","Constructor","createClass","defineProperties","props","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","size","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","getMetaValue","findElement","findElements","root","toArray$1","eventInit","initEvent","BlobRecord","checksum","filename","content_type","byte_size","responseType","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","notify","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","alert","_this2","uploadRequestDidProgress","inputSelector","DirectUploadsController","controllers","createDirectUploadControllers","startNextController","shift","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","disable","removeAttribute","enable","submitForm","delete","autostart","ActiveStorage","channels","require","webpackEmptyContext","req","code","Popper","_interopDefaultLegacy","$__default","Popper__default","_defineProperties","_createClass","_extends","assign","bind","source","_inheritsLoose","subClass","superClass","_setPrototypeOf","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handleObj","transitionEndEmulator","duration","called","one","Util","triggerTransitionEnd","setTransitionEndSupport","emulateTransitionEnd","special","getUID","prefix","getSelectorFromElement","hrefAttr","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","expectedTypes","valueType","RegExp","findShadowRoot","documentElement","attachShadow","getRootNode","ShadowRoot","jQueryDetection","version","jquery","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME$a","VERSION$a","DATA_KEY$a","EVENT_KEY$a","DATA_API_KEY$7","JQUERY_NO_CONFLICT$a","CLASS_NAME_ALERT","CLASS_NAME_FADE$5","CLASS_NAME_SHOW$7","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API$6","SELECTOR_DISMISS","Alert","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","hasClass","_destroyElement","detach","_jQueryInterface","$element","_handleDismiss","alertInstance","on","noConflict","NAME$9","VERSION$9","DATA_KEY$9","EVENT_KEY$9","DATA_API_KEY$6","JQUERY_NO_CONFLICT$9","CLASS_NAME_ACTIVE$3","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","EVENT_CLICK_DATA_API$5","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API$2","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE$4","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE$2","SELECTOR_BUTTON","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","contains","activeElement","toggleClass","avoidTriggerChange","initialButton","inputBtn","buttons","_i","_button","NAME$8","VERSION$8","DATA_KEY$8","EVENT_KEY$8","DATA_API_KEY$5","JQUERY_NO_CONFLICT$8","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$2","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$1","EVENT_CLICK_DATA_API$4","SELECTOR_ACTIVE$1","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","Default$7","interval","keyboard","slide","pause","touch","DefaultType$7","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","clearInterval","_updateInterval","setInterval","visibilityState","activeIndex","_getItemIndex","direction","off","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","_this3","originalEvent","pointerType","clientX","touches","move","clearTimeout","which","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","children","elementInterval","defaultInterval","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$7","VERSION$7","DATA_KEY$7","EVENT_KEY$7","DATA_API_KEY$4","JQUERY_NO_CONFLICT$7","CLASS_NAME_SHOW$6","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_CLICK_DATA_API$3","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE$3","Default$6","DefaultType$6","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","not","startEvent","dimension","_getDimension","setTransitioning","scrollSize","getBoundingClientRect","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$trigger","selectors","$target","NAME$6","VERSION$6","DATA_KEY$6","EVENT_KEY$6","DATA_API_KEY$3","JQUERY_NO_CONFLICT$6","ESCAPE_KEYCODE$1","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLASS_NAME_DISABLED$1","CLASS_NAME_SHOW$5","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","EVENT_HIDE$3","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_CLICK","EVENT_CLICK_DATA_API$2","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_DATA_TOGGLE$2","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$5","offset","flip","boundary","reference","popperConfig","DefaultType$5","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","noop","hideEvent","scheduleUpdate","Default","DefaultType","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","NAME$5","VERSION$5","DATA_KEY$5","EVENT_KEY$5","DATA_API_KEY$2","JQUERY_NO_CONFLICT$5","ESCAPE_KEYCODE","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE$4","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","EVENT_HIDE$2","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$2","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS$1","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$1","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE$1","SELECTOR_DATA_DISMISS$1","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Default$4","backdrop","DefaultType$4","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","clientHeight","overflowY","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","className","appendTo","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","clientWidth","_this11","uriAttrs","DefaultWhitelist","area","br","col","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeName","nodeValue","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","NAME$4","VERSION$4","DATA_KEY$4","EVENT_KEY$4","JQUERY_NO_CONFLICT$4","CLASS_PREFIX$1","BSCLS_PREFIX_REGEX$1","DISALLOWED_ATTRIBUTES","CLASS_NAME_FADE$3","CLASS_NAME_SHOW$3","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","template","delay","container","fallbackPlacement","customClass","sanitize","DefaultType$3","Event$1","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","NAME","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","empty","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","find","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","popperData","popper","initConfigAnimation","NAME$3","VERSION$3","DATA_KEY$3","EVENT_KEY$3","JQUERY_NO_CONFLICT$3","CLASS_PREFIX","BSCLS_PREFIX_REGEX","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","SELECTOR_TITLE","SELECTOR_CONTENT","Default$2","DefaultType$2","Popover","_Tooltip","_getContent","NAME$2","VERSION$2","DATA_KEY$2","EVENT_KEY$2","DATA_API_KEY$1","JQUERY_NO_CONFLICT$2","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","METHOD_OFFSET","METHOD_POSITION","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP$1","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN$1","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE$1","Default$1","DefaultType$1","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","top","pageYOffset","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","parents","node","scrollSpys","$spy","NAME$1","VERSION$1","DATA_KEY$1","EVENT_KEY$1","DATA_API_KEY","JQUERY_NO_CONFLICT$1","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","SELECTOR_DROPDOWN","SELECTOR_NAV_LIST_GROUP","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","VERSION","JQUERY_NO_CONFLICT","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","EVENT_CLICK_DISMISS","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","SELECTOR_DATA_DISMISS","autohide","Toast","_clearTimeout","_close","Scrollspy","load_browse_by_sport","select_sport","getBrowseBySport","browse_by_sport_commons_path","open_sub_menu","click_browse_sport","redirect_to","origin","default","_maxTestPos","placeholder","optionalmarker","quantifiermarker","groupmarker","alternatormarker","escapeChar","mask","regex","oncomplete","onincomplete","oncleared","repeat","greedy","autoUnmask","removeMaskOnSubmit","clearMaskOnLostFocus","insertMode","insertModeVisual","clearIncomplete","alias","onKeyDown","onBeforeMask","onBeforePaste","onBeforeWrite","onUnMask","showMaskOnFocus","showMaskOnHover","onKeyValidation","skipOptionalPartCharacter","numericInput","rightAlign","undoOnEscape","radixPoint","_radixDance","groupSeparator","keepStatic","positionCaretOnTab","tabThrough","supportsInputType","ignorables","Backspace","Pause","Escape","PageUp","PageDown","End","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Insert","Delete","ContextMenu","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Process","Unidentified","Shift","Control","Alt","AltGraph","CapsLock","isComplete","preValidation","postValidation","staticDefinitionSymbol","jitMasking","nullable","inputEventOnly","noValuePatching","positionCaretOnClick","casing","inputmode","importDataAttributes","shiftPositions","usePrototypeDefinitions","validationEventTimeOut","substitutes","validator","definitionSymbol","__data","eventRegistry","ev","namespace","detachEvent","attachEvent","composed","inputType","InputEvent","createEventObject","fireEvent","flat","return","__esModule","extend","mobile","iphone","ie","userAgent","userAgentData","EventHandlers","keyEvent","inputmask","opts","dependencyLib","maskset","caret","getBuffer","BACKSPACE_SAFARI","handleRemove","writeBuffer","_valueGet","seekNext","getLastValidPosition","shiftKey","altKey","checkVal","undoValue","userOptions","seekPrevious","getTest","static","maskLength","translatePosition","caretPos","isRTL","isSelection","isComposing","ignorable","keypressEvent","writeOutBuffer","resetMaskSet","pos","forwardPosition","Enter","pasteEvent","getBufferTemplate","clipboardData","inputFallBackEvent","getPlaceholder","isMask","skipNextInsert","$el","applyInputValue","setValueEvent","focusEvent","mouseEnter","invalidEvent","validationEvent","mouseleaveEvent","HandleNativePlaceholder","originalPlaceholder","clicked","determineNewCaretPosition","cutEvent","clipboard","writeText","blurEvent","clearOptionalTail","mouseenterEvent","submitEvent","_valueSet","unmaskedvalue","resetEvent","refreshValue","EventRuler","readOnly","skipInputEvent","events","toPrimitive","Date","initDateObject","P","lastIndex","exec","E","nextMatch","setValue","setFullYear","M","getFullYear","setDate","getDate","ddd","dddd","setMonth","getMonth","mmm","mmmm","yyyy","setHours","getHours","hh","hx","H","Hx","setMinutes","getMinutes","setSeconds","getSeconds","ss","setMilliseconds","getMilliseconds","L","tt","T","TT","Z","S","isoDate","isoTime","isoDateTime","isoUtcDateTime","tokenizer","w","rawday","isFinite","rawmonth","rawyear","targetMatch","targetMatchIndex","insert","O","inputFormat","extendAliases","i18n","ordinalSuffix","displayFormat","outputFormat","dayNames","monthNames","fuzzy","refreshFromBuffer","validPositions","getMaskTemplate","getTime","prefillYear","reInit","nativeDef","extendDefinitions","A","cssunit","ip","definitions","email","separator","quantifier","mac","vin","V","ssn","digitsOptional","negationSymbol","back","tests","def","numeric","digits","__financeInput","generated","_mask","suffix","parseMinMaxOptions","NaN","MIN_VALUE","MAX_VALUE","substituteRadixPoint","enforceDigitsOnBlur","allowMinus","front","SetMaxOnOverflow","unmaskAsNumber","roundingFN","shortcuts","stripLeadingZeroes","fromIsValid","rewritePosition","__valueGet","pow","lastIndexOf","__valueSet","currency","decimal","integer","percentage","indianns","metadata","generatedInput","alternation","defaults","noMasksCache","maxLength","hasAlternator","aliases","dataAttribute","masksCache","dir","textAlign","generateMaskSet","getOwnPropertyDescriptor","__lookupGetter__","__defineGetter__","__defineSetter__","getemptymask","hasMaskedValue","getmetadata","determineLastRequiredPosition","analyseMask","extendDefaults","unmask","Inputmask","Reflect","construct","ReferenceError","Map","Function","sham","Proxy","customElements","getAttributeNames","mode","HTMLElement","toKey","toKeyCode","Space","z","Meta_LEFT","Meta_RIGHT","entries","reduce","optionality","newBlockMarker","optional","defOptionality","isAlternator","isGroup","openGroup","alternatorGroup","isQuantifier","jit","D","maskToken","_buffer","excludes","jitOffset","isContentEditable","textContent","__lookupSetter__","valHooks","inputmaskpatch","inputMode","autocomplete","isOptional","propertyIsEnumerable","selectionStart","selectionEnd","getSelection","getRangeAt","commonAncestorContainer","startOffset","endOffset","selection","createRange","duplicate","moveStart","defaultView","getComputedStyle","currentStyle","fontSize","scrollLeft","scrollWidth","setSelectionRange","firstChild","createTextNode","setStart","setEnd","removeAllRanges","addRange","createTextRange","moveEnd","select","locator","getTestTemplate","optionalQuantifier","checkAlternationMatch","getTests","determineTestTemplate","getDecisionTaker","isSubsetOf","mloc","every","cd","B","C","R","F","I","N","G","alternate","revalidateMask","strict","sourceSelector","loadInContent","loadOnInit","loadErrorTemplate","overlayTemplate","errorTemplate","onLoadStart","onLoadDone","onLoadFail","_settings","_overlay","load","_addOverlay","_removeOverlay","fail","_init","animationSpeed","collapseTrigger","removeTrigger","maximizeTrigger","collapseIcon","expandIcon","maximizeIcon","minimizeIcon","slideUp","expand","slideDown","maximize","queue","dequeue","minimize","toggleMaximize","Q","controlsidebarSlide","scrollbarTheme","scrollbarAutoHide","_fixHeight","_fixScrollHeight","resize","scroll","_isNavbarFixed","_isFooterFixed","header","outerHeight","footer","bottom","overlayScrollbars","sizeAutoCapable","scrollbars","autoHide","clickScrolling","ready","U","J","W","toggleSubmenu","siblings","fixPosition","K","X","Y","ee","te","_options","toggleRow","ae","ne","oe","le","se","re","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","windowed","fullscreen","toggleIcon","requestFullscreen","webkitRequestFullscreen","msRequestFullscreen","exitFullscreen","webkitExitFullscreen","msExitFullscreen","de","fe","IFrame","ue","ce","he","ge","pe","me","ve","_e","be","ye","Ce","we","xe","Ie","Te","Se","je","ke","onTabClick","onTabChanged","onTabCreated","autoIframeMode","autoItemActive","autoShowNewTab","autoDarkMode","allowDuplicates","allowReload","loadingScreen","useNavbarItems","scrollOffset","scrollBehaviorSwap","iconMaximize","iconMinimize","Qe","createTab","escape","fadeIn","switchTab","fadeOut","openTabSidebar","_setItemActive","removeActiveTab","eq","toggleFullscreen","_setupListeners","_initFrameElement","frameElement","_navScroll","offsetParent","prevAll","getItem","He","ze","Layout","Fe","Ee","Le","De","Re","Ae","panelAutoHeight","panelAutoHeightMode","preloadDuration","loginRegisterAutoHeight","Me","fixLayoutHeight","sidebar","controlSidebar","_max","fixLoginRegisterHeight","qe","Oe","Ne","Pe","Ue","Be","$e","Je","We","Ve","Ge","autoCollapseSize","enableRemember","noTransitionAfterReload","Ke","autoCollapse","remember","Xe","Ye","Ze","et","at","nt","it","ot","st","rt","dt","ft","ut","arrowSign","minLength","maxResults","highlightName","highlightPath","highlightClass","notFoundText","ct","ht","after","class","_addNotFound","_parseItem","search","_renderItem","encodeURI","path","_trimText","decodeURI","decodeURIComponent","last","gt","pt","mt","vt","_t","bt","yt","resetOnClose","Ct","wt","Toasts","xt","It","Tt","St","jt","position","fixed","autoremove","fade","icon","image","imageAlt","imageHeight","subtitle","kt","_prepareContainer","_getContainerId","prepend","toast","Qt","Ht","zt","Ft","Et","onCheck","onUnCheck","Lt","unCheck","Dt","Rt","At","Mt","qt","Ot","Nt","Pt","Ut","Bt","accordion","expandSidebar","sidebarButtonSelector","$t","_expandSidebar","PushMenu","CardRefresh","CardWidget","ControlSidebar","DirectChat","ExpandableTable","Fullscreen","NavbarSearch","SidebarSearch","TodoList","Treeview","routeToRegExp","pattern","slash","star","ignoreTrailingSlashes","regexp","caseInsensitiveMatch","isObject","isDefined","isEagerInstantiationEnabled","ngRouteModule","angularVersion","provider","inherit","extra","routes","when","route","routeCopy","src","dst","ii","shallowCopy","isUndefined","reloadOnUrl","reloadOnSearch","originalPath","redirectPath","redirectTo","otherwise","eagerInstantiationEnabled","$get","$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce","$browser","preparedRoute","preparedRouteIsUpdateOnly","forceReload","$route","reload","fakeLocationEvent","$evalAsync","prepareRoute","commitRoute","updateParams","newParams","current","$$route","$routeMinErr","interpolate","$on","$locationEvent","newRoute","oldRoute","lastRoute","switchRouteMatcher","pathParams","equals","$broadcast","nextRoute","copy","nextRoutePromise","$$incOutstandingRequestCount","getRedirectionData","handlePossibleRedirection","keepProcessingRoute","resolveLocals","locals","catch","finally","$$completeOutstandingRequest","hasRedirection","isString","oldPath","oldSearch","newUrl","resolveRedirectTo","oldUrl","templateUrl","isFunction","loadedTemplateUrl","getTemplateFor","all","string","segment","segmentMatch","run","instantiateRoute","$$minErr","ngViewFactory","$anchorScroll","$animate","restrict","terminal","priority","transclude","ctrl","$transclude","currentScope","previousLeaveAnimation","autoScrollExp","autoscroll","onloadExp","onload","cleanupLastView","cancel","$destroy","leave","$template","newScope","$new","enter","$eval","$emit","ngViewFillContentFactory","$compile","$controller","controllerAs","resolveAs","$inject","directive","pick_your_team_descriptions","changePercentage","source_id","pyt_id","pick_your_team_id","submit_url","pick_your_teams_url","box_url","global","moment","trust","trustAsHtml","saveReviewChecklist","checklist_html","same_box_ids","save_review_checklist_url","checklist_box_url","getChecklistHTML","get_checklist_html_checklist_url","lim","p2b","n2b","b2n","n2p","map$1","hexString","isShort","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb","rgb2hsl","hueValue","calln","hsl2rgb","hue","hueParse","p1","p2","hwb2rgb","hsv2rgb","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","unpacked","tkeys","ok","nk","unpack","transparent","RGB_RE","modHSL","ratio","proto","fromObject","functionParse","rgbParse","Color","_rgb","_valid","valid","rgbString","hslString","mix","weight","c1","c2","w2","w1","rgb1","rgb2","alpha","clearer","greyscale","opaquer","negate","lighten","darken","saturate","desaturate","rotate","deg","uid","isNullOrUndef","isNumberFinite","finiteOrDefault","defaultValue","valueOrDefault","toDimension","endsWith","thisArg","loopable","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","klen","isValidKey","_merger","tval","sval","merge","sources","merger","mergeIf","_mergerIf","keyResolvers","resolveObjectKey","resolver","parts","part","_splitKey","_getKeyResolver","_capitalize","defined","setsEqual","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","almostEquals","epsilon","niceNum","range","roundedRange","niceRange","fraction","isNumber","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","sqrt","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","_lookup","table","cmp","mid","_lookupByKey","ti","_rlookupByKey","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","listeners","_arrayUnique","Set","requestAnimFrame","requestAnimationFrame","throttled","argsToUse","ticking","_len2","_key2","_toLeftRightCenter","align","_alignStartEnd","_getStartAndCountOfVisiblePoints","points","animationsDisabled","pointCount","count","_sorted","iScale","_parsed","axis","_iScale$getUserBounds","getUserBounds","minDefined","maxDefined","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","atEdge","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","isPatternOrGradient","getHoverColor","numbers","colors","intlCache","formatNumber","locale","cacheKey","formatter","Intl","NumberFormat","getNumberFormat","formatters","tickValue","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","remain","significand","Ticks","overrides","getScope$1","Defaults","_descriptors","_appliers","devicePixelRatio","platform","getDevicePixelRatio","font","family","lineHeight","hover","hoverBackgroundColor","hoverBorderColor","hoverColor","indexAxis","interaction","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","responsive","scale","showLine","drawActiveElementsOnTop","describe","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","appliers","_scriptable","startsWith","_indexable","_fallback","easing","loop","properties","animations","visible","autoPadding","beginAtZero","bounds","grace","grid","lineWidth","drawOnChartArea","drawTicks","tickLength","tickWidth","_ctx","tickColor","border","dash","dashOffset","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkip","autoSkipPadding","labelOffset","minor","major","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","_measureText","gc","longest","textWidth","measureText","_longestText","arrayOfThings","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","resetTransform","clearRect","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","xOffsetW","yOffsetW","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","stroke","_isPointInArea","point","clipArea","clip","unclipArea","_steppedLineTo","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","lines","strokeWidth","strokeColor","translation","fillStyle","textBaseline","setRenderOpts","drawBackdrop","strokeStyle","strokeText","maxWidth","fillText","decorateText","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","oldColor","fillRect","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","numberOrZero","_readValueToProps","objProps","read","toTRBL","toTRBLCorners","toPadding","toFont","fallback","warn","toFontString","cacheable","createContext","parentContext","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","_cacheable","_scopes","_rootScopes","_getTarget","deleteProperty","_keys","_cached","proxy","readKey","needsSubResolver","createSubResolver","_resolveWithPrefixes","getKeysFromAllScopes","ownKeys","storage","_storage","_attachContext","subProxy","descriptorDefaults","_proxy","_subProxy","_stack","setContext","receiver","descriptors","isScriptable","_resolveScriptable","isIndexable","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_proxy$_scriptable","_proxy$_indexable","_proxy$_allKeys","_allKeys","resolveFallback","getScope","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_this$_parsing$key","_parsing","parsed","EPSILON","getPoint","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","splineCurveMonotone","valueAxis","pointsLen","deltaK","mK","pointBefore","pointCurrent","pointAfter","slopeDelta","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","iPixel","vPixel","monotoneCompute","capControlPoint","_updateBezierControlPoints","controlPoints","spanGaps","cubicInterpolationMode","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","positions","getPositionedStyle","styles","useOffsetPos","getRelativePosition","borderBox","boxSizing","paddings","borders","_getCanvasPosition","offsetX","offsetY","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","containerStyle","containerBorder","containerPadding","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","passive","readUsedSize","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","getRtlAdapter","rtl","rectX","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_itemWidth","overrideTextDirection","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_ref","_boundSegment","startBound","endBound","_propertyFn2","_getSegment","_propertyFn","getSegment","prevValue","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","splitByStyles","segmentOptions","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","p0","p0DataIndex","p1DataIndex","styleChanged","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","getOwnPropertySymbols","_defineProperty","getOwnPropertyDescriptors","hint","prim","res","_toPrimitive","_toPropertyKey","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_request","_charts","_running","_lastDate","_notify","anims","numSteps","initial","currentStep","_refresh","_update","now","remaining","running","draw","_active","_total","tick","_getAnims","charts","listen","cb","acc","cur","_duration","animator","interpolators","boolean","factor","c0","number","cfg","currentValue","_fn","_easing","_start","_target","_prop","_from","_to","_promises","elapsed","wait","promises","rej","resolved","_properties","configure","animationOptions","animatedProps","getOwnPropertyNames","_animateOptions","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","awaitAll","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","stack","dsIndex","singleMode","otherValue","isStacked","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","_cachedMeta","_stacks","iAxis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","_visualValues","getFirstScaleId","clearStacks","isDirectUpdateMode","cloneIfNotShared","cached","shared","_cachedDataOpts","getMeta","_type","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","datasetElementType","dataElementType","initialize","linkScales","_stacked","addElements","isPluginEnabled","updateIndex","dataset","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","getScaleForId","rScale","getDatasetMeta","scaleID","_getOtherScale","_destroy","_dataCheck","adata","convertObjectDataToArray","isExtensible","base","buildOrUpdateElements","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","parseArrayData","parseObjectData","parsePrimitiveData","isNotInOrderComparedToPrev","labels","getLabels","singleScale","_this$_parsing","_this$_parsing$xAxisK","xAxisKey","_this$_parsing$yAxisK","yAxisKey","getParsed","getDataElement","updateRangeFromParsed","parsedValue","getMinMax","canStack","otherScale","createStack","NEGATIVE_INFINITY","_getUserBounds","_scale$getUserBounds","otherMin","otherMax","_skip","getAllParsedValues","getMaxOverflow","getLabelAndValue","label","getLabelForValue","_clip","toClip","defaultClip","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","createDataContext","createDatasetContext","_resolveElementOptions","elementType","sharing","datasetElementScopeKeys","names","resolveNamedOptions","freeze","_resolveAnimations","datasetAnimationScopeKeys","getSharedOptions","includeOptions","sharedOptions","_animationsDisabled","_getSharedOptions","firstOpts","previouslySharedOptions","updateSharedOptions","updateElement","_setStyle","removeHoverStyle","setHoverStyle","_removeDatasetHoverStyle","_setDatasetHoverStyle","_ref2","arg1","arg2","numMeta","numData","_insertElements","_removeElements","updateElements","removed","_sync","_args2","_dataChanges","_onDataPush","_onDataPop","_onDataShift","_onDataSplice","newCount","_onDataUnshift","computeMinSampleSize","_cache","$bar","visibleMetas","getAllScaleValues","curr","updateMinAndPrev","getPixelForTick","parseValue","entry","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","edge","borderSkipped","_borderProps","horizontal","borderProps","enableBorderRadius","parseEdge","orig","v2","startEnd","setInflateAmount","_ref3","inflateAmount","_this$_parsing2","_this$_parsing2$xAxis","_this$_parsing2$yAxis","iAxisKey","vAxisKey","super","bars","getBasePixel","isHorizontal","ruler","_getRuler","_this$_getSharedOptio","vpixels","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","_getStacks","grouped","skipNull","_getStackCount","_getStackIndex","pixels","barThickness","_startPixel","_endPixel","stackCount","categoryPercentage","barPercentage","_this$_cachedMeta","_this$options","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","startPixel","getPixelForDecimal","endPixel","getValueForPixel","halfGrid","getLineWidthForValue","maxBarThickness","Infinity","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","rects","_index_","_value_","_this$_cachedMeta2","_this$_getSharedOptio2","innerRadius","outerRadius","getter","_getRotation","_getCircumference","circumference","_getRotationExtents","isDatasetVisible","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_this$_getRotationExt","_getRatioAndOffset","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","_circumference","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_this$_getSharedOptio3","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","generateLabels","_chart$legend$options2","fontColor","legendItem","toggleDataVisibility","_meta$data","_dataset","_getStartAndCountOfVi","_decimated","animated","_this$_cachedMeta3","_this$_getSharedOptio4","_this$options2","maxGapLength","directUpdate","pointsCount","prevParsed","nullData","lastPoint","updateControlPoints","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","_chart$legend$options3","angleLines","circular","pointLabels","PieController","_fullLoop","pointPosition","getPointPositionForValue","_meta$data2","_getStartAndCountOfVi2","registry","getElement","_this$_cachedMeta4","_this$options3","BarController","BubbleController","DoughnutController","LineController","PolarAreaController","RadarController","ScatterController","DateAdapterBase","members","adapters","binarySearch","metaset","lookupMethod","_reversePixels","getRange","evaluateInteractionItems","getSortedVisibleDatasetMetas","_metasets$i","_binarySearch","getIntersectItems","useFinalPosition","isPointInArea","inRange","getNearestCartesianItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","_element$getProps","getProps","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","widthChanged","heightChanged","same","other","getMargins","marginForPositions","fitBoxes","refitBoxes","refit","_updateDims","setBoxDims","placeBoxes","userPadding","height1","width1","addBox","_layers","removeBox","layoutItem","minPadding","layoutBoxes","_box","_box$options","_box$options$stackWei","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","change","handleMaxPadding","BasePlatform","acquireContext","releaseContext","isAttached","updateConfig","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","removeListener","nodeListContains","nodeList","createAttachObserver","observer","MutationObserver","addedNodes","removedNodes","observe","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","_getRelativePosition","native","fromNativeEvent","addListener","renderHeight","renderWidth","displayWidth","displayHeight","initCanvas","proxies","$proxies","attach","isConnected","tooltipPosition","_this$getProps","hasValue","final","tickOpts","determinedMaxTicks","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","ticksLimit","maxTicksLimit","majorIndices","getMajorIndices","numMajorIndices","newTicks","skipMajors","evenMajorSpacing","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","defaultRoutes","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","_margins","paddingTop","paddingBottom","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","_this$getUserBounds","metas","getTicks","xLabels","yLabels","getLabelItems","_computeLabelItems","beforeUpdate","_this$options4","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","_callHooks","notifyPlugins","beforeTickToLabelConversion","generateTickLabels","afterTickToLabelConversion","numTicks","maxLabelDiagonal","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","_this$options5","titleOpts","gridOpts","titleHeight","_this$_getLabelSizes","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","_this$options6","_this$options6$ticks","isRotated","labelsBelowTicks","offsetLeft","offsetRight","_this$options7","isFullSize","_computeLabelSizes","caches","widths","heights","tickFont","fontString","nestedLabel","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","getDecimalForPixel","getBaseValue","createTickContext","optionTicks","rot","_computeGridLineItems","ticksLength","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","positionAxisID","positionAxisID1","value1","limit","optsAtIndex","optsAtIndexBorder","lineColor","tickBorderDash","tickBorderDashOffset","tickAndPadding","hTickAndPadding","lineCount","textOffset","_getXAxisLabelAlignment","_getYAxisLabelAlignment","ret1","halfCount","tickTextAlign","labelPadding","_this$options8","_this$options9","_this$options9$ticks","_computeLabelArea","drawBackground","findIndex","drawGrid","drawLine","setLineDash","lineDashOffset","drawBorder","_this$options10","lastLineWidth","drawLabels","renderTextOptions","drawTitle","_this$options11","_titleArgs","titleX","titleY","titleArgs","tz","gz","bz","axisID","_maxDigits","isForType","isPrototypeOf","parentScope","isIChartComponent","itemDefaults","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","unregister","_typedRegistries","_each","addControllers","_len3","_key3","_len4","_key4","addPlugins","_len5","_key5","addScales","_len6","_key6","getController","_get","getPlugin","getScale","removeControllers","_len7","_key7","removeElements","_len8","_key8","removePlugins","_len9","_key9","removeScales","_len10","_key10","typedRegistry","reg","_getRegistryForType","_exec","itemReg","component","camelMethod","hook","_createDescriptors","plugin","invalidate","_oldCache","_notifyStateChanges","localIds","i1","allPlugins","_ref4","getOpts","pluginOpts","createDescriptors","previousDescriptors","some","_ref5","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","generate","addIfFound","initConfig","_scopeCache","_resolverCache","clearCache","clear","datasetType","additionalOptionScopes","_cachedScopes","mainScope","resetCache","keyLists","chartOptionScopes","_getResolver","getResolver","subPrefixes","_descriptors2","hasFunction","needContext","resolverCache","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onComplete","onAnimationProgress","onProgress","getCanvas","instances","moveNumericKeys","intKey","invalidatePlugins","userConfig","initialCanvas","existingChart","OffscreenCanvas","_detectPlatform","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","timeout","debounce","resizeDelay","_initialize","_this$options12","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","render","ensureScalesHaveIDs","axisOptions","buildOrUpdateScales","scaleOpts","updated","isRadial","dposition","dtype","scaleType","hasUpdated","_updateMetasets","_destroyDatasetMeta","_removeUnreferencedMetasets","buildOrUpdateControllers","newControllers","order","ControllerClass","_defaults$datasets$ty","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","existingEvents","newEvents","unbindEvents","changes","_getUniformDataChanges","_ref6","datasetCount","makeSet","changeSet","noArea","_idx","ilen1","_updateDataset","_this$_resizeBeforeDr","layers","_drawDatasets","_drawDataset","useClip","getDatasetArea","getElementsAtEventForMode","setDatasetVisibility","_updateVisibility","_stop","toBase64Image","toDataURL","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","updateHoverStyle","getActiveElements","setActiveElements","activeElements","lastActive","_ref7","pluginId","replay","hoverOptions","deactivated","activated","inChartArea","eventFilter","_handleEvent","_this$_active","_getActiveElements","isClick","_isClickEvent","lastEvent","determineLastEvent","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","pixelMargin","innerR","spacingOffset","avNogSpacingRadius","angleOffset","_parseBorderRadius$","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","outerMidAdjustedAngle","pCenter","p4","pCenter1","innerMidAdjustedAngle","pCenter2","p8","pCenter3","outerStartX","outerStartY","outerEndX","outerEndY","fullCircles","inner","lineJoin","angleMargin","clipArc","chartX","chartY","_getAngleFromPoint2","_this$getProps2","rAdjust","betweenAngles","withinRadius","_this$getProps3","_this$options13","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","_params$start","paramsStart","_params$end","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","_pathVars","lineMethod","stepped","getLineMethod","_ref8","_ref8$move","fastPathSegment","_pathVars2","_ref9","_ref9$move","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","_path","strokePathWithCache","segmentMethod","strokePathDirect","_points","_segments","_pointsUpdated","_findStartAndEnd","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","_segments$i","interpolated","inRange$1","hitRadius","mouseX","mouseY","_this$getProps4","inXRange","inYRange","_this$getProps5","getBarBounds","bar","_bar$getProps","half","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","skipX","skipY","addNormalRectPath","inflateRect","refRect","_this$options14","_boundingRects","addRectPath","_this$getProps6","ArcElement","LineElement","PointElement","BarElement","BORDER_COLORS","BACKGROUND_COLORS","getBorderColor","getBackgroundColor","getColorizer","colorizeDoughnutDataset","colorizePolarAreaDataset","colorizeDefaultDataset","containsColorsDefinitions","plugin_colors","forceOverride","_args","_chart$config","colorizer","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","_getStartAndCountOfVi3","getStartAndCountOfVisiblePointsSimplified","threshold","decimated","samples","bucketWidth","sampledIndex","endIndex","maxAreaPoint","maxArea","nextA","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","_data$a","pointAx","pointAy","lttbDecimation","minIndex","maxIndex","startIndex","xMin","dx","intermediateIndex1","intermediateIndex2","minMaxDecimation","_getBounds","_findSegmentEnd","_getEdge","_createBoundaryLine","_ref10","_ref10$x","_ref10$y","linePoints","_ref11","_pointsFromSegments","_shouldApplyFill","_resolveTarget","propagate","visited","_decodeFill","fillOption","parseFillOption","firstCh","decodeTargetIndex","addPointsBelow","sourcePoint","linesBelow","postponed","_findPoint","findPoint","pointValue","firstValue","lastValue","getLineByIndex","sourcePoints","below","getLinesBelow","_buildStackLine","_getTargetValue","computeCircularBoundary","_source$scale","_getTargetPixel","computeLinearBoundary","computeBoundary","_drawfill","lineOpts","_ref12","_ref12$above","above","_ref12$below","clipVertical","doFill","clipY","lineLoop","tpoints","targetSegments","tgt","subBounds","fillSources","fillSource","_ref13","_src$style","_src$style2$backgroun","notShape","clipBounds","interpolatedLineTo","targetLoop","_scale$chart$chartAre","_ref14","interpolatedPoint","afterDatasetsUpdate","$filler","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","_labelOpts$boxHeight","boxHeight","_labelOpts$boxWidth","boxWidth","usePointStyle","pointStyleWidth","itemHeight","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_getBoxSize","_fitRows","_fitCols","hitboxes","totalHeight","_itemHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","_calculateItemSize","legendItemText","calculateItemWidth","fontLineHeight","calculateLegendItemHeight","calculateItemHeight","calculateItemSize","adjustHitBoxes","_this$options15","rtlHelper","hitbox","hitbox1","_draw","defaultColor","halfFontSize","cursor","_getBoxSize2","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","_getLegendItemAt","hitBox","lh","handleEvent","onLeave","isListened","hoveredItem","sameItem","plugin_legend","afterEvent","ci","_chart$legend$options","useBorderRadius","_padding","textSize","_drawArgs","fontOpts","_this$_drawArgs","plugin_title","titleBlock","createTitle","plugin_subtitle","positioners","average","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","_controller$getLabelA","formattedValue","getTooltipSize","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","_chart$chartArea","xAlign","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","_toTRBLCorners","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","defaultCallbacks","beforeTitle","tooltipItems","labelCount","afterTitle","beforeLabel","tooltipItem","labelColor","labelTextColor","bodyColor","labelPointStyle","afterLabel","beforeFooter","afterFooter","invokeCallbackWithFallback","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","getBeforeBody","getBody","bodyItems","scoped","getAfterBody","getFooter","_createItems","itemSort","positionAndSize","backgroundPoint","external","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","_toTRBLCorners2","ptX","ptY","titleColor","_drawColorBox","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","drawBody","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","drawFooter","footerAlign","footerColor","tooltipSize","_toTRBLCorners3","quadraticCurveTo","_updateAnimationTarget","animX","animY","_willRender","hasTooltipContent","globalAlpha","_ref15","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","Colors","Decimation","Filler","Legend","SubTitle","Title","findOrAddLabel","addedLabels","addIfString","_getLabelForValue","_startValue","_valueRange","_addedLabels","added","_ref16","_this$getUserBounds2","_this$getMinMax","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","rounded","almostWhole","decimalPlaces","relativeLabelSize","_ref17","_endValue","handleTickRangeOptions","_this$getUserBounds3","setMin","setMax","minSign","maxSign","getTickLimit","stepSize","computeTickLimit","_this$getMinMax2","log10Floor","changeExponent","isMajor","tickVal","steps","rangeExp","rangeStep","generateTicks","_ref18","minExp","exp","startExp","lastTick","_zero","_this$getMinMax3","_this$getUserBounds4","getTickBackdropHeight","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","updateLimits","setCenterPoint","_pointLabelItems","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","hLimits","vLimits","pathRadiusLine","_this$getMinMax4","leftMovement","rightMovement","topMovement","bottomMovement","scalingFactor","getValueForDistanceFromCenter","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","getBasePosition","getPointLabelPosition","_this$_pointLabelItem","_this$options16","_scale$_pointLabelIte","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawPointLabels","gridLineOpts","drawRadiusLine","INTERVALS","common","UNITS","sorter","adapter","_adapter","_scale$_parseOpts","_parseOpts","determineUnitForAutoTicks","minUnit","capacity","MAX_SAFE_INTEGER","addTick","timestamps","_lookup2","ticksFromTimestamps","majorUnit","setMajorTicks","_unit","_majorUnit","_normalized","displayFormats","normalized","_this$getUserBounds5","_applyBounds","_getLabelBounds","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","_tickFormatFunction","minorFormat","majorFormat","_getLabelSize","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","prevSource","nextSource","prevTarget","nextTarget","_lookupByKey2","_table$lo","_table$hi","_lookupByKey3","_table$lo2","_table$hi2","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","registerables","CategoryScale","LinearScale","LogarithmicScale","RadialLinearScale","TimeScale","compileContents","find_boxes","is_loading","click_change","get_box_name","get_box","box_name","select_box","v_id","is_change","save_box","save_box_url","shipping","error_billing","data_checkout","qtyDecrement","qty","qtyIncrement","max_qty","validateShippingForm","isValidEmail","shipping_email","shipping_phone_number","zipCode","shipping_zip_code","validateBillingForm","billing_option","billing_address","phone","postal_code","changeBillingOption","checkout","shipping_fee","checkout_url","store_slug","getStripe","stripe","Stripe","stripe_publishable_key","clientSecret","client_secret","appearance","theme","variables","rules","paymentElement","defaultCollapsed","mount","submitOrder","payment_method_data","_yield$$scope$stripe$","showLoading","billing_details","first_name","last_name","address","line1","line2","city","country","shipping_first_name","shipping_last_name","shipping_address","shipping_address_optional","shipping_city","shipping_state","confirmPayment","confirmParams","return_url","hideLoading","shipping_profile","buyNow","Turbolinks","visit","is_open_sport","is_open_sort_by","filter_sort_list","select_sort_by","sort_by","changeTypeSortBy","click_filter","data_store_url","results","resendDisabled","countdown","is_change_phone_number","tab_name","is_verified_otp","moveToNext","otp","getElementsByClassName","startCountdown","timer","sendCode","isValidPhone","phone_number","send_code_path","phone_input","getNumber","verifyCode","is_profile","isValidOTP","verify_path","otp_code","sessionStorage","shipVerifyCode","orientationProps","ORIENTATION","SIZE","X_SIZE","OFFSET_SIZE","OFFSET_X_SIZE","CLIENT_SIZE","CLIENT_X_SIZE","INNER_X_SIZE","SCROLL_SIZE","SCROLL_POS","START","X_START","X_END","scrollBody","initWidget","updateAPI","addEventHandlers","skipSyncContainer","skipSyncWidget","widget","eventHandlers","handlers","destroyDetachedAPI","syncContainer","syncWidget","focusin","destroyAPI","checkVisibility","unbind","floatingScroll","orientation","settings","_handlers","_supress","_current","_speed","_coordinates","_breakpoint","_width","_clones","_mergers","_widths","_invalidated","_pipe","_drag","pointer","stage","_states","initializing","animating","dragging","Plugins","Workers","setup","rewind","mouseDrag","touchDrag","pullDrag","freeDrag","stagePadding","mergeFit","autoWidth","startPosition","smartSpeed","fluidSpeed","dragEndSpeed","responsiveRefreshRate","responsiveBaseElement","fallbackEasing","slideTransition","nestedItemSelector","itemElement","stageElement","refreshClass","loadedClass","loadingClass","rtlClass","responsiveClass","dragClass","itemClass","stageClass","stageOuterClass","grabClass","Width","Inner","Outer","Type","State","relative","$stage","outerHTML","prependTo","removeAttr","minimum","maximum","coordinates","op","initializeStage","initializeItems","isVisible","preloadAutoWidthImages","registerEventHandlers","viewport","optionsLogic","prepare","onThrottledResize","resizeTimer","support","onTransitionEnd","onDragStart","onDragEnd","transform","speed","difference","onDragMove","transform3d","suppress","release","mergers","clones","srcElement","originalTarget","addBack","Image","unwrap","camelCase","onTrigger","owl","_default","inArray","changedTouches","pageX","pageY","owlCarousel","Zepto","_core","_visible","autoRefresh","watch","autoRefreshInterval","AutoRefresh","_loaded","lazyLoad","lazyLoadEager","Lazy","_previousHeight","autoHeight","_intervalId","autoHeightClass","AutoHeight","_videos","_playing","video","isInFullScreen","fetch","play","videoHeight","videoWidth","thumbnail","srcType","jsonp","thumbnail_large","framegrab_url","insertAfter","Video","core","swapping","animateOut","animateIn","swap","Animate","_call","_time","_paused","autoplay","autoplayHoverPause","autoplayTimeout","autoplaySpeed","_initialized","_pages","_controls","_templates","_overrides","dotsData","dotClass","nav","navText","navSpeed","navElement","navContainer","navContainerClass","navClass","slideBy","dotsClass","dots","dotsEach","dotsSpeed","dotsContainer","$relative","$previous","$next","$absolute","overides","getPosition","Navigation","_hashes","URLhashListener","Hash","WebkitTransition","MozTransition","OTransition","WebkitAnimation","MozAnimation","OAnimation","WebApp","pageDoneCallback","getParameterByName","removeParamByName","sourceURL","rtn","params_arr","queryString","setCookie","cname","cvalue","exdays","setTime","expires","toGMTString","cookie","getCookie","ca","deleteCookie","emailAddress","isMobile","bootstrap","tel","currencyFilter","NUMBER_FORMATS","currencySymbol","sep","DECIMAL_SEP","attrs","onlyNum","ngModel","newValue","oldValue","spiltArray","maxValue","$setViewValue","$render","minValue","allowNegative","allowDecimal","fractionNumber","decimalUpto","n2","ngModelCtrl","$parsers","maxlength","$modelValue","compile_content","AngularUtils","awaitingDataApplies","applyData","elementSelector","itemToCheckScopeOn","scopeApplyFunction","isValidScope"],"mappings":"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","file":"js/application~01e7b97c-04784d0b45bff87cb755.chunk.js","sourcesContent":["(function () {\n app.controller('ListingCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n $scope.step = 0;\n $scope.start_time = '';\n $scope.name = '';\n $scope.league_name = '';\n $scope.notes = '';\n $scope.league_years = [];\n $scope.listing_type = '0';\n $scope.listing_type_name = '';\n $scope.listing_teams = [];\n $scope.buyer_names = [];\n\n $scope.msg_name_error = '';\n $scope.msg_youtube_error = '';\n $scope.msg_league_error = '';\n $scope.msg_buyer_names_error = '';\n\n $scope.remain_chars_name = 60;\n $scope.remain_chars_notes = 1000;\n\n const LISTING_TYPES = {\n BREAK_BY_TEAM: 0,\n RANDOM: 1,\n };\n\n $scope.init = function () {\n $scope.getListingTeams();\n if ($scope.all_league_years) {\n $scope.all_league_years.forEach((ly, idx) => {\n let checked = $('#year_' + idx).is(':checked');\n if (checked && !$scope.league_years.includes(ly.league_year)) {\n $scope.league_years.push(ly.league_year);\n }\n });\n }\n };\n\n $scope.previousStep = function () {\n if ($scope.step == 0) return;\n if ($scope.step == 2 && $scope.listing_type == LISTING_TYPES.BREAK_BY_TEAM) {\n $scope.step = 0;\n return;\n }\n $scope.step -= 1;\n }\n\n $scope.nextStep = function (type) {\n if ($scope.step == 0) {\n if (!$scope.validateNewListingData()) {\n return;\n }\n $scope.getListingTeams();\n if ($scope.listing_type == LISTING_TYPES.BREAK_BY_TEAM) {\n $scope.step = 2;\n return;\n }\n } else if ($scope.step == 1 || $scope.step == 2) {\n if (!$scope.validateBuyerNames()) {\n return;\n }\n if (type && type == 'skip') {\n if ($scope.is_new_record) {\n $scope.listing_teams = $scope.listing_teams.map(lt => {\n return {\n id: lt.id,\n team_id: lt.team_id,\n team_name: lt.team_name,\n buyer_name: 'OPEN',\n }\n });\n }\n }\n }\n $scope.step += 1;\n }\n\n $scope.validateNewListingData = function () {\n $scope.msg_name_error = '';\n $scope.msg_youtube_error = '';\n $scope.msg_league_error = '';\n\n if ($.trim($scope.name) == '') {\n $scope.msg_name_error = 'Listing Name is required!';\n return false;\n }\n\n if ($.trim($scope.youtube_url) == \"\" || !validateYoutubeUrl(\"https://www.youtube.com/embed/\" + $scope.youtube_url)) {\n $scope.msg_youtube_error = 'Youtube URL is blank or incorrect format!';\n return false;\n }\n\n if ($scope.league_id == null || $.trim($scope.league_id) == '') {\n $scope.msg_league_error = 'League is required!';\n return false;\n }\n\n let imagesAmount = document.getElementById(\"listing_images\").files.length;\n if (imagesAmount > $scope.max_images_upload) {\n return false;\n }\n\n // TODO: validate start time: in the future\n let dd = $('#listing_start_time_3i').val();\n let mm = $('#listing_start_time_2i option:selected').text();\n let yy = $('#listing_start_time_1i').val();\n let HH = $('#listing_start_time_4i').val();\n let MM = $('#listing_start_time_5i').val();\n $scope.start_time = `${dd} ${mm}, ${yy} ${HH}:${MM}`;\n return true;\n }\n\n $scope.validateBuyerNames = function () {\n $scope.msg_buyer_names_error = '';\n $scope.buyer_names = [];\n\n // break line\n $.each($('#buyer_names').val().split(/\\n/), function (i, line) {\n if (line) {\n $scope.buyer_names.push(line);\n }\n });\n\n // validate\n if ($scope.buyer_names.length > $scope.listing_teams.length) {\n $scope.msg_buyer_names_error = `You have too many names. Please reduce your names no more than ${$scope.listing_teams.length}!`;\n return false;\n }\n\n $scope.listing_teams = $scope.listing_teams.map((lt, i) => {\n let buyer_name = 'OPEN';\n if (lt.buyer_name) {\n buyer_name = lt.buyer_name;\n } else {\n if ($scope.buyer_names[i] && $scope.buyer_names[i] != '') {\n buyer_name = $scope.buyer_names[i];\n }\n }\n return {\n id: lt.id,\n team_id: lt.team_id,\n team_name: lt.team_name,\n buyer_name: buyer_name,\n }\n });\n return true;\n }\n\n $scope.getListingTeams = function () {\n $scope.listing_teams = [];\n const listing_id = $scope.is_new_record ? 0 : parseInt($scope.listing_id);\n $.post('/listings/' + listing_id + '/teams/' + parseInt($scope.league_id), {}, function (rs) {\n if (rs.success) {\n $scope.listing_teams = rs.listing_teams.length > 0 ? rs.listing_teams : [];\n } else {\n $scope.listing_teams = [];\n }\n $scope.$apply();\n });\n }\n\n $scope.updateLeagueYears = function (league_year, checkbox_id) {\n let checked = $('#' + checkbox_id).is(':checked');\n if (checked && !$scope.league_years.includes(league_year)) {\n $scope.league_years.push(league_year);\n }\n if (!checked) {\n $scope.league_years = $.grep($scope.league_years, function (value) {\n return value != league_year;\n });\n }\n }\n\n $scope.$watch('league_id', function () {\n $scope.league_name = $(\"#listing_league_id :selected\").text();\n });\n\n $scope.$watch('listing_type', function () {\n $scope.listing_type_name = $(\"#listing_listing_type :selected\").text();\n });\n\n $scope.$watch('name', function () {\n $scope.remain_chars_name = 60 - $scope.name.length;\n });\n\n $scope.$watch('notes', function () {\n $scope.remain_chars_notes = 1000 - $scope.notes.length;\n });\n\n function validateYoutubeUrl(url) {\n let regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#&?]*).*/;\n return url.match(regExp);\n //--> get youtube URL\n // return (match&&match[7].length==11)? match[7] : false;\n };\n\n function shuffle(array) {\n let currentIndex = array.length, temporaryValue, randomIndex;\n // While there remain elements to shuffle...\n while (0 !== currentIndex) {\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n\n // And swap it with the current element.\n temporaryValue = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = temporaryValue;\n }\n return array;\n };\n\n $scope.randomize = function (type) {\n let lt_teams = $scope.listing_teams;\n if (type == 'team') {\n const sf = shuffle(lt_teams.map(x => {\n return {\n team_id: x.team_id,\n team_name: x.team_name\n }\n }));\n const buyerArr = lt_teams.map(x => x.buyer_name);\n $scope.listing_teams = $scope.listing_teams.map((lt, idx) => {\n return {\n buyer_name: buyerArr[idx],\n id: lt.id,\n team_id: sf[idx].team_id,\n team_name: sf[idx].team_name\n };\n });\n $scope.teams_random_times += 1;\n } else if (type == 'buyer') {\n const sf = shuffle(lt_teams.map(x => x.buyer_name));\n const teamArr = lt_teams.map(x => x.team_name);\n $scope.listing_teams = $scope.listing_teams.map((lt, idx) => {\n return {\n team_name: teamArr[idx],\n id: lt.id,\n team_id: lt.team_id,\n buyer_name: sf[idx]\n };\n });\n $scope.buyers_random_times += 1;\n }\n };\n }\n ]);\n\n}).call(this);\n","(function () {\n app.controller('RaffleCtrl', [\n \"$scope\", '$timeout',\n function ($scope) {\n $scope.step = 0;\n $scope.name = '';\n $scope.sport_type = '';\n $scope.league_select_status = false;\n $scope.league_select_status_for_auction = false;\n $scope.league_name = '';\n $scope.league_teams = [];\n $scope.team_params = [];\n $scope.msg_name_error = '';\n $scope.msg_sport_error = '';\n $scope.raffle_type = 'basic';\n $scope.display_highest_bidder = false;\n $scope.display_bid_history = false;\n $scope.currency_name = 'USD $';\n $scope.currency_sign = '$';\n\n $scope.init = function () {};\n\n $scope.previousStep = function () {\n if ($scope.step == 0) return;\n $scope.step -= 1;\n }\n\n $scope.nextStep = function () {\n if ($scope.step == 0) {\n if (!$scope.validateName()) { return; }\n $scope.getListingTeams();\n }\n\n $scope.bindingCkeditorContent();\n $scope.step += 1;\n }\n\n $scope.submit = function ($event) {\n $scope.msg_name_error = '';\n error = false;\n\n if ($.trim($scope.name) == '') {\n $scope.msg_name_error = 'Name is required!';\n error = true;\n }\n\n if ($.trim($scope.sport_type) == '' && $scope.raffle_type == 'basic') {\n $scope.msg_sport_error = 'Sport type is required!';\n error = true;\n }\n\n if(error) {\n $event.preventDefault();\n return false;\n }\n }\n\n $scope.filterValue = function($event){\n if ($event.keyCode === 32 ) { $event.preventDefault(); }\n if(isNaN(String.fromCharCode($event.keyCode))){ $event.preventDefault(); }\n if ($event.target.value > 99999 ) { $event.preventDefault(); }\n };\n\n $scope.bindingCkeditorContent = function () {\n angular.element('#ck-content-review').html('');\n let content = angular.element(\".ck.ck-content.ck-editor__editable\").clone();\n angular.element('#ck-content-review').html(content);\n }\n\n $scope.validateName = function () {\n $scope.msg_name_error = '';\n\n if ($.trim($scope.name) == '') {\n $scope.msg_name_error = 'Name is required!';\n return false;\n }\n return true;\n }\n\n $scope.selectedLeagueFunc = function() {\n if ($scope.leagueSelectValue > 0) {\n $scope.league_select_status = true;\n } else {\n $scope.league_select_status = false;\n }\n\n $scope.league_name = $(\"#league-selected-tag :selected\").text();\n }\n\n $scope.selectedLeagueForAuctionFunc = function() {\n if ($scope.leagueSelectValueForAuction > 0 ) {\n $scope.league_select_status_for_auction = true;\n } else {\n $scope.league_select_status_for_auction = false;\n }\n\n $scope.league_name = $(\"#league-selected-tag-for-auction :selected\").text();\n }\n\n\n $scope.getListingTeams = function () {\n $scope.league_teams = [];\n if ($scope.raffle_type == 'basic') { return; }\n if ($scope.raffle_type == 'break by team') { leagueSelectTagValue = $scope.leagueSelectValue; }\n if ($scope.raffle_type == 'auction') { leagueSelectTagValue = $scope.leagueSelectValueForAuction; }\n \n $.get('/teams-of-league/' + parseInt(leagueSelectTagValue), {}, function (rs) {\n if (rs.success) {\n $scope.league_teams = rs.league_teams.length > 0 ? rs.league_teams : [];\n } else {\n $scope.league_teams = [];\n }\n\n if ($scope.raffle_type == 'break by team') {\n $scope.league_teams = $scope.league_teams.map(lt => {\n return {\n sequence: lt.sequence,\n team_id: lt.id,\n league_id: lt.league_id,\n name: lt.name,\n price: lt.price,\n puplic_note: lt.note\n }\n });\n }\n\n if ($scope.raffle_type == 'auction') {\n $scope.league_teams = $scope.league_teams.map(lt => {\n return {\n sequence: lt.sequence,\n team_id: lt.id,\n league_id: lt.league_id,\n name: lt.name,\n price: 1,\n puplic_note: lt.note\n }\n });\n }\n\n $scope.$apply();\n });\n }\n\n $scope.getRaffleTypeValue = function () {\n let raffleType = angular.element('input[name=raffleType]:checked').val();\n $scope.raffle_type = raffleType;\n\n angular.forEach(document.querySelectorAll('.unvisible'), function(value, key) {\n angular.element(value).removeClass(\"show\");\n angular.element(value).removeClass(\"active\");\n });\n\n if (raffleType == 'basic') {\n angular.element(\"#basic-tab\").addClass(\"active\");\n angular.element(\"#basic\").addClass(\"show active\");\n }\n\n if (raffleType == 'break by team') {\n angular.element(\"#advance-tab\").addClass(\"active\");\n $(\"#advance\").addClass(\"show active\");\n }\n\n if (raffleType == 'auction') {\n angular.element(\"#auction-tab\").addClass(\"active\");\n angular.element(\"#auction\").addClass(\"show active\");\n }\n\n\n $scope.display_bid_history = false;\n angular.element('#selectType').modal('hide');\n }\n\n $scope.changeRaffleTypeValue = function (type) {\n $scope.raffle_type = type;\n $scope.display_bid_history = false;\n }\n\n $scope.displayHighestBidderToggleFunc = function () {\n let value = angular.element('#display-highest-bidder').val();\n if (value == 'true') { $scope.display_bid_history = true; }\n if (value == 'false') { $scope.display_bid_history = false; }\n }\n\n $scope.selecteCurrencyFunc = function(e) {\n let value = angular.element('#currency').val();\n\n if ($scope.currency_type == 0) {\n $scope.currency_name = 'USD $';\n $scope.currency_sign = '$';\n }\n\n if ($scope.currency_type == 1) {\n $scope.currency_name = 'EUR €';\n $scope.currency_sign = '€';\n }\n\n if ($scope.currency_type == 2) {\n $scope.currency_name = 'GBP £';\n $scope.currency_sign = '£';\n }\n }\n }\n ]);\n\n app.controller('RaffleShowCtrl', [\n \"$scope\", '$timeout',\n function ($scope) {\n $scope.raffle_slug = '';\n $scope.league_teams = [];\n $scope.rowLength = '';\n $scope.init = function () {};\n\n $scope.getListingTeams = function () {\n $.get('/teams-of-league/' + parseInt($scope.leagueSelectValue), {}, function (rs) {\n if (rs.success) {\n let list_random_team = '';\n rs.league_teams.forEach((ly, idx) => {\n list_random_team += `${ly.name} \\n`;\n });\n $scope.random_team_obj = list_random_team;\n $scope.rowLength = parseInt(rs.team_length);\n } else {\n $scope.random_team_obj = \"League don't have team\";\n $scope.rowLength = 4;\n }\n\n $scope.$apply();\n });\n }\n\n $scope.random_team = function(clear_form = false) {\n $.get(`/raffles/${$scope.raffle_id}/random_team?league_id=${$scope.leagueSelectValue}`, {clear_form: clear_form}, function (rs) {\n if (rs.result == false && rs.notice == \"Leguage don't have team\") {\n $scope.random_team_obj = \"League don't have team\";\n $scope.rowLength = 4;\n $scope.show_info_user_team = 'false';\n toastr.error(\"League don't have team! Can't not random!\");\n }\n\n if (rs.result == false && rs.notice == \"Start over 2 time\") {\n $scope.show_info_user_team = 'false';\n toastr.error(\"The list is already the default!\");\n }\n\n if (rs.result == false && rs.notice == \"This league not yet random team\") {\n $scope.show_info_user_team = 'false';\n toastr.error(\"This league not yet random team!\");\n }\n\n if (rs.result == true ) {\n let list_random_team = '';\n rs.list_team.forEach((ly, idx) => {\n list_random_team += `${ly.name} \\n`;\n });\n $scope.random_team_obj = list_random_team;\n $scope.rowLength = parseInt(rs.team_length);\n $scope.reload_user_random_team_info(rs);\n\n if (rs.result && clear_form == false ) { toastr.success(\"Randomization is a success!\"); }\n if (rs.result && clear_form == true ) { toastr.success(\"Start Over with Slot # & Claim are success\"); }\n }\n $scope.$apply();\n });\n }\n\n $scope.reload_user_random_team_info = function (rs) {\n $scope.lated_random_team_sequence = rs.info.sequence;\n $scope.lated_random_team_time = rs.info.time;\n $scope.team_username = rs.info.name_and_username;\n $scope.team_ip_address = rs.info.ip_address;\n $scope.show_info_user_team = 'true';\n $scope.get_history_claimer_arr = [];\n }\n\n $scope.getLatedRandomTeam = function () {\n $.get(`/raffles/${$scope.raffle_id}/get_lated_random_team?league_id=${$scope.leagueSelectValue}`, {}, function (rs) {\n if (rs != false) {\n $scope.reload_user_random_team_info(rs);\n let list_random_team = '';\n rs.list_team.forEach((ly, idx) => {\n let name = ly.name;\n list_random_team += `${name} \\n`;\n });\n $scope.random_team_obj = list_random_team;\n $scope.rowLength = parseInt(rs.list_team.length);\n $scope.show_info_user_team = 'true';\n } else {\n $scope.getListingTeams();\n $scope.show_info_user_team = 'false';\n }\n $scope.$apply();\n });\n }\n\n $scope.random_claimer = function (clear_form = false) {\n $scope.list_random = [];\n $.get(`/raffles/${$scope.raffle_id}/random_claimer`, {clear_form: clear_form}, function (rs) {\n if (rs.result) {\n let list_random = '';\n rs.list_claimer.forEach((ly, idx) => {\n let sequence = ly.sequence;\n let full_name = ly.full_name;\n let username = `(${ly.username})`;\n if (full_name == null) { full_name = ' '; }\n if (ly.username == null) { username = ' '; }\n list_random += `${sequence}: ${full_name} ${username}\\n`;\n });\n $scope.raffle_claim_obj = list_random;\n $scope.reload_user_random_claimer_info(rs);\n $scope.$apply();\n }\n\n if (rs.result && clear_form == false ) { toastr.success(\"Randomization is a success!\"); }\n if (rs.result && clear_form == true ) { toastr.success(\"Start Over with Slot # & Claim are success\"); }\n if (rs.result == false && rs.notice == 'Start over 2 time') { toastr.error(\"The list is already the default!\"); };\n if (rs.result == false && rs.notice == 'This list not yet random claimer') { toastr.error(\"This list not yet random claimer!\"); };\n });\n }\n\n $scope.sent_get_history_request = function () {\n $scope.get_history(type = 'team');\n $scope.get_history();\n }\n\n $scope.get_history = function ( type = 'claimer' ) {\n $.get(`/raffles/${$scope.raffle_id}/get_history_random`, { type: type }, function (rs) {\n if (rs) {\n if (type == 'claimer') {\n $scope.get_history_claimer_arr = rs.data;\n $scope.get_history_claimer_arr = $scope.get_history_claimer_arr.map(lt => {\n return {\n sequence: lt.attributes.sequence,\n time: lt.attributes.time,\n date: lt.attributes.date,\n full_name: lt.attributes.full_name,\n username: lt.attributes.username,\n ip_address: lt.attributes.ip_address,\n list_reset: lt.attributes.list_reset,\n mask_full_name: lt.attributes.mask_full_name,\n raffle_claim_obj: JSON.parse(lt.attributes.raffle_claim_obj)\n }\n });\n } else {\n $scope.get_history_team_arr = rs.data;\n $scope.get_history_team_arr = $scope.get_history_team_arr.map(lt => {\n return {\n league_name: lt.attributes.league_name,\n sequence: lt.attributes.sequence,\n time: lt.attributes.time,\n date: lt.attributes.date,\n full_name: lt.attributes.full_name,\n username: lt.attributes.username,\n ip_address: lt.attributes.ip_address,\n list_reset: lt.attributes.list_reset,\n mask_full_name: lt.attributes.mask_full_name,\n team_obj: JSON.parse(lt.attributes.team_obj)\n }\n });\n\n }\n\n $scope.$apply();\n } else {\n toastr.error(\"Error, please try again!\")\n }\n });\n }\n\n $scope.reload_user_random_claimer_info = function (rs) {\n $scope.lated_random_sequence = rs.info.sequence;\n $scope.lated_random_time = rs.info.time;\n $scope.username = rs.info.name_and_username;\n $scope.ip_address = rs.info.ip_address;\n $scope.show_info_user_claimer = 'true';\n }\n\n $scope.getInfoDiceTab = function () {\n $scope.team_name_lists = [];\n let team_list = angular.fromJson($scope.team_lists_default);\n angular.forEach(team_list, function(value, key) {\n team_name = value.length > 0 ? value : ' ';\n $scope.team_name_lists.push({sequence: key, team_name: team_name});\n })\n\n $scope.claimer_name_list = [];\n let claim_lists = angular.fromJson($scope.claimer_lists_default);\n angular.forEach(claim_lists, function(value, key) {\n username = value.length > 0 ? value : ' ';\n $scope.claimer_name_list.push({sequence: key, username: username});\n })\n }\n\n $scope.randomDice = function (type = nil) {\n if ( type == 'team') { \n $scope.teams_random_times += 1;\n let object = $scope.team_name_lists;\n let length = $scope.team_name_lists.length;\n $scope.team_name_lists = _.sampleSize(object, length);\n };\n\n if ( type == 'claimer') { \n $scope.claimer_random_times += 1;\n let object = $scope.claimer_name_list;\n let length = $scope.claimer_name_list.length;\n $scope.claimer_name_list = _.sampleSize(object, length);\n };\n }\n\n $scope.generateCombinedView = function (owner = true) {\n var result = [];\n\n if (owner) {\n let claimer_split = $scope.raffle_claim_obj.split('\\n');\n let team_split = $scope.random_team_obj.split('\\n');\n\n if (team_split.length > claimer_split.length) {\n var max_lenght = team_split.length;\n } else {\n var max_lenght = claimer_split.length;\n }\n\n for (let i = 0; i < max_lenght - 1; i++) {\n let temp_claimer = claimer_split[i] == null ? '' : claimer_split[i];\n let temp_team = team_split[i] == null ? '' : team_split[i];\n result[i] = {claimer: temp_claimer, team: temp_team};\n }\n } else {\n let claimer_split = $scope.get_history_claimer_arr[0].raffle_claim_obj;\n let team_split = $scope.random_team_obj.split('\\n');\n\n if (team_split.length > Object.keys(claimer_split).length) {\n var max_lenght = team_split.length;\n } else {\n var max_lenght = Object.keys(claimer_split).length;\n }\n\n for (let i = 0; i < max_lenght - 1; i++) {\n\n let temp_claimer = claimer_split[i] == null ? '' : claimer_split[i];\n let temp_team = team_split[i] == null ? '' : team_split[i];\n result[i] = {\n sequence: temp_claimer.sequence,\n full_name: temp_claimer.full_name,\n full_name_mark: temp_claimer.full_name_mark,\n username: temp_claimer.username,\n team: temp_team\n };\n }\n }\n $scope.combined_view = result;\n }\n }\n ]);\n}).call(this);\n","(function () {\n app.controller('FollowerCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n $scope.selected_followers = [];\n\n $scope.selectFollower = function(obj) {\n if(obj.currentTarget.checked) {\n addFollower(obj.currentTarget.value);\n } else {\n $('#selectAll').prop('checked', false);\n removeFollower(obj.currentTarget.value);\n }\n if ($(\"input[type=checkbox]:checked\").length == ($(\"input[type=checkbox]\").length - 1)) {\n $(\"#selectAll\").prop(\"checked\", true);\n }\n updateButton();\n };\n\n $scope.selectAll= function(obj) {\n $('input[type=checkbox]').prop('checked', obj.currentTarget.checked);\n if(!obj.currentTarget.checked) {\n $(\"input[type=checkbox]:not('#selectAll')\").each(function() {\n removeFollower($(this).val()); \n });\n } else {\n $(\"input[type=checkbox]:not('#selectAll')\").each(function() {\n addFollower($(this).val());\n });\n }\n updateButton();\n };\n\n function updateButton() {\n numberOfReceiver = $scope.selected_followers.length;\n button = $(\"#message-btn\");\n if (numberOfReceiver <= 0) {\n button.html('Send Message');\n }\n else {\n button.html(`Send Message (${$scope.selected_followers.length})`);\n }\n }\n \n function addFollower(val){\n if (!$scope.selected_followers.includes(val)) {\n $scope.selected_followers.push(val);\n }\n }\n \n function removeFollower(val){\n if ($scope.selected_followers.includes(val)) {\n index = $scope.selected_followers.indexOf(val);\n $scope.selected_followers.splice(index, 1);\n }\n }\n\n $scope.init = function () {};\n }\n ]);\n\n}).call(this);\n","(function () {\n app.controller('WaxTrackerCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n $scope.wax_tracker_url = '';\n $scope.index_data_chart_url = '';\n $scope.sport = '';\n $scope.no_image_url = '';\n $scope.key_search = '';\n $scope.suggestions = [];\n $scope.is_visible_suggestions = false;\n $scope.current_focus = -1;\n $scope.sport = '';\n $scope.is_loading_active_losses = true;\n $scope.is_loading_active_gains = true;\n $scope.is_loading_recently_added = true;\n $scope.is_loading_recently_changed = true;\n $scope.is_loading_data = true;\n $scope.active_losses = [];\n $scope.active_gains = [];\n $scope.recently_added = [];\n $scope.recently_changed = [];\n $scope.per_pages = [10, 25, 50, 100];\n $scope.view = \"list\";\n $scope.page = 1;\n $scope.per_in_page = \"10\";\n $scope.sport_type = null;\n $scope.data = [];\n $scope.is_loading_more = false;\n $scope.total = null;\n $scope.is_more = false;\n $scope.filters = [];\n $scope.list_price = [\n {key: 'under_100', name: 'Under $100'},\n {key: '100_500', name: '$100-$500'},\n {key: 'over_500', name: 'Over $500'}\n ]\n $scope.range_price = {\n min: null,\n max: null,\n price_text: null\n }\n\n $scope.list_box = [];\n $scope.list_case = [];\n $scope.list_sport = [];\n $scope.price_text = null;\n $scope.params_release_date = \"\";\n $scope.loading = {\n is_loading_data : true\n }\n $scope.is_open = false;\n $scope.filter_list = [\n {name: 'All', title: 'All Wax', sport_type: null, box_type: null},\n {name: '📦 Wax Cases', title: 'All Wax Boxes', sport_type: null, box_type: 'box'},\n {name: '📦 Wax Boxes', title: 'All Wax Boxes', sport_type: null, box_type: 'case'},\n {name: 'âš¾ Baseball', title: 'All Baseball', sport_type: 'baseball', box_type: null},\n {name: '🀠Basketball', title: 'All Basketball', sport_type: 'basketball', box_type: null},\n {name: '🈠Football', title: 'All Football', sport_type: 'football', box_type: null},\n {name: '💠Hockey', title: 'All Hockey', sport_type: 'hockey', box_type: null},\n {name: 'âš½ Soccer', title: 'All Soccer', sport_type: 'soccer', box_type: null},\n {name: '🤼 MMA', title: 'All MMA', sport_type: 'mixed-martial-arts', box_type: null},\n {name: '🤼 Wrestling', title: 'All Wrestling', sport_type: 'wrestling', box_type: null},\n {name: 'ðŸ Motorsport', title: 'All Motorsport', sport_type: 'motorsports', box_type: null},\n {name: '🙠Pokemon', title: 'All Pokemon', sport_type: null, box_type: 'pokemon'},\n {name: '💯 Non-sport', title: 'All Non-sport', sport_type: 'non-sport', box_type: null}\n ];\n\n $scope.select_filter = $scope.filter_list[0];\n\n $scope.browseBySport = function() {\n if ($scope.sport == '') {\n return;\n } else {\n window.location.href = `/waxtracker/sports/${$scope.sport}/all`;\n }\n };\n\n $scope.init = function () {};\n \n $scope.changeSearch = function () {\n if ($scope.key_search != '') {\n // $scope.getSuggestions();\n }\n }\n\n $scope.getSuggestions = function () {\n if ($scope.key_search != \"\") {\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.waxtracker_suggestions_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: { q: $scope.key_search, sport: $scope.sport },\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n $scope.is_visible_suggestions = true;\n if (rs.succeed) {\n $scope.suggestions = rs.data;\n $scope.heightImg();\n } else {\n \n $scope.suggestions = [];\n }\n document.getElementById(\"autocomplete-list\").scrollTop = 0;\n $scope.current_focus = -1;\n });\n }\n });\n } else {\n $scope.is_visible_suggestions = false;\n $scope.suggestions = [];\n }\n };\n \n $scope.selectItem = function (name) {\n $scope.key_search = name;\n $scope.is_visible_suggestions = true;\n $scope.current_focus = -1;\n }\n\n $scope.blurSearch = function() {\n $timeout(function() {\n $scope.is_visible_suggestions = false;\n $scope.current_focus = -1;\n }, 300)\n }\n\n $scope.keyupSearch = function(e) {\n if ($scope.key_search) {\n var f = document.getElementById(\"autocomplete-list\");\n if (f) var x = f.getElementsByTagName(\"div\");\n switch (e.keyCode) {\n case 40:\n $scope.current_focus++;\n $scope.addActive(x);\n $scope.scrollTop(f, x);\n break;\n\n case 38:\n $scope.current_focus--;\n $scope.addActive(x);\n $scope.scrollTop(f, x);\n break;\n \n case 13:\n if (!$scope.is_visible_suggestions && $scope.key_search != \"\"){\n $(\"#search-btn\").click();\n break;\n }\n if (x[$scope.current_focus].getAttribute(\"title\") == \"No records found\") break;\n $scope.key_search = x[$scope.current_focus].getAttribute(\"title\");\n $scope.is_visible_suggestions = false;\n $scope.current_focus = -1;\n break;\n \n default:\n break;\n }\n }\n }\n\n $scope.addActive = function(x) {\n if (!x) return false;\n $scope.removeActive(x);\n if ($scope.current_focus >= x.length) $scope.current_focus = 0;\n if ($scope.current_focus < 0) $scope.current_focus = (x.length - 1);\n x[$scope.current_focus].classList.add(\"autocomplete-active\");\n }\n\n $scope.removeActive = function(x) {\n for (var i = 0; i < x.length; i++) {\n x[i].classList.remove(\"autocomplete-active\");\n }\n }\n\n $scope.scrollTop = function(f, x) {\n let current_scroll_top = f.scrollTop,\n current_scroll_item = x[$scope.current_focus].scrollHeight * $scope.current_focus;\n if (\n (current_scroll_item > 306 && current_scroll_top + 306 < current_scroll_item) ||\n (current_scroll_top > current_scroll_item)\n ) {\n f.scrollTop = current_scroll_item;\n }\n }\n\n $scope.heightImg = function() {\n var cw = $('.img-suggestion').width();\n $('.img-suggestion').css({'height':cw+'px'});\n }\n\n $scope.getActiveGains = function() {\n $scope.is_loading_active_gains = true;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.waxtracker_active_gains_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n $scope.is_loading_active_gains = false;\n if (rs.succeed) {\n $scope.active_gains = rs.data;\n } else {\n $scope.active_gains = [];\n }\n });\n }\n });\n }\n\n $scope.getActiveLosses = function() {\n $scope.is_loading_active_losses = true;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.waxtracker_active_losses_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n $scope.is_loading_active_losses = false;\n if (rs.succeed) {\n $scope.active_losses = rs.data;\n } else {\n $scope.active_losses = [];\n }\n });\n }\n });\n }\n\n $scope.getRecentlyAdded = function() {\n $scope.is_loading_recently_added = true;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.waxtracker_recently_added_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n $scope.is_loading_recently_added = false;\n if (rs.succeed) {\n $scope.recently_added = rs.data;\n } else {\n $scope.recently_added = [];\n }\n });\n }\n });\n }\n\n $scope.getRecentlyChanged = function() {\n $scope.is_loading_recently_changed = true;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.waxtracker_recently_changed_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n $scope.is_loading_recently_changed = false;\n if (rs.succeed) {\n $scope.recently_changed = rs.data;\n } else {\n $scope.recently_changed = [];\n }\n });\n }\n });\n }\n\n $scope.getDataIndex = function() {\n var data = { \n page: $scope.page,\n per_page: $scope.per_in_page, \n box_type: $scope.box_type,\n sport_type: $scope.sport_type,\n list_case: $scope.list_case,\n list_sport: $scope.list_sport,\n list_box: $scope.list_box,\n to_date: $scope.to_date,\n from_date: $scope.from_date\n }\n if ($scope.range_price.min && $scope.range_price.max) {\n data.min_price = $scope.range_price.min;\n data.max_price = $scope.range_price.max;\n } else {\n if ($scope.price_text) data.price_text = $scope.price_text;\n }\n $scope.loading.is_loading_data = true;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.waxtracker_data_index_url,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: data,\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n $scope.loading.is_loading_data = false;\n $scope.is_loading_more = false;\n if (rs.succeed) {\n $scope.total = rs.data.total;\n $scope.data = rs.data.result;\n // $scope.date_release_title = rs.data.date_release_title;\n // $scope.getChart();\n } else {\n $scope.data = [];\n }\n });\n }\n });\n }\n\n $scope.getChart = function() {\n let ids = $scope.data.map(row => row.id);\n if (ids.length == 0)\n return;\n $.ajax({\n url: $scope.index_data_chart_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {\n ids: ids,\n selected_chart_option: '7_days',\n chart_type: 'price',\n },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n Object.keys(rs.result).forEach(key => {\n if (rs.result[key] == {}) {\n return;\n }\n let data = rs.result[key].chart_data[0].data.sort().map(row => ({ x: row[0], y: row[1] }));\n new Chart(`chart-${key}`,{\n type: 'line',\n data: {\n datasets: [\n {\n data: data,\n borderColor: rs.result[key].color,\n pointRadius: 0,\n poitnHoverRadius: 0,\n hoverRadius: 0\n }\n ]\n },\n options: {\n animation: false,\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false\n }\n },\n scales: {\n x: {\n display: false\n },\n y: {\n display: false\n }\n }\n }\n });\n });\n }\n });\n },\n });\n }\n\n $scope.getData = function() {\n $scope.page = 1;\n $scope.data = [];\n $scope.getDataIndex();\n }\n\n $scope.changeType = function(filter) {\n if (filter.box_type && !filter.sport_type) {\n $scope.box_type = filter.box_type;\n $scope.sport_type = null;\n $scope.params_release_date = `?box_type=${$scope.box_type}`;\n }\n\n if (!filter.box_type && filter.sport_type) {\n $scope.box_type = null;\n $scope.sport_type = filter.sport_type;\n $scope.params_release_date = `?sport_type=${$scope.sport_type}`;\n }\n\n if (!filter.box_type && !filter.sport_type) {\n $scope.box_type = null;\n $scope.sport_type = null;\n $scope.params_release_date = '';\n }\n $scope.select_filter = filter;\n $scope.defaultFilters();\n $scope.getData();\n $scope.close_menu();\n }\n\n $scope.favorite = function(box_id) {\n\n }\n\n $scope.next_page = function() {\n $scope.is_loading_more = true;\n $scope.to_date = $scope.data_next.to;\n $scope.from_date = $scope.data_next.from;\n $scope.getDataIndex();\n }\n\n $scope.previous_page = function() {\n $scope.is_loading_more = true;\n $scope.to_date = $scope.data_previous.to;\n $scope.from_date = $scope.data_previous.from;\n $scope.getDataIndex();\n }\n\n $scope.getFilters = function () {\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.waxtracker_get_filters_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {},\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.filters = rs.data;\n } else {\n $scope.filters = [];\n }\n });\n }\n });\n };\n \n $scope.changePrice = function (type) {\n switch (type) {\n case 'min':\n if ($.isNumeric($scope.range_price.min) && Number($scope.range_price.min) > 0) {\n if ($scope.range_price.max && Number($scope.range_price.max) < Number($scope.range_price.min)) {\n $scope.range_price.min = 0\n }\n } else {\n $scope.range_price.min = null\n }\n \n break;\n\n case 'max':\n if ($.isNumeric( $scope.range_price.max ) && Number($scope.range_price.max) > 0) {\n if ($scope.range_price.min && Number($scope.range_price.max) < Number($scope.range_price.min)) {\n $scope.range_price.min = 0\n }\n } else {\n $scope.range_price.max = null\n }\n \n break;\n }\n }\n\n $scope.filtersData = function () {\n $scope.list_box = $scope.filters.boxes.filter(b => b.checked).map(b => b.id);\n $scope.list_case = $scope.filters.cases.filter(b => b.checked).map(b => b.id);\n $scope.list_sport = $scope.filters.sports.filter(b => b.checked).map(b => b.id);\n $scope.price_text = $scope.range_price.price_text;\n $scope.box_type = $scope.sport_type = null;\n $scope.getData();\n $('#filtersModal').modal('hide');\n }\n\n $scope.defaultFilters = function () {\n $scope.list_box = $scope.list_case = $scope.list_sport = [];\n $scope.price_text = null;\n $scope.filters.boxes.forEach(element => {\n element.checked = false;\n });\n $scope.filters.cases.forEach(element => {\n element.checked = false;\n });\n $scope.filters.sports.forEach(element => {\n element.checked = false;\n });\n $scope.range_price = {\n min: null,\n max: null,\n price_text: null\n }\n }\n\n $scope.openFiltersModal = function () {\n // $scope.defaultFilters();\n $('#collapseBoxes').collapse('hide');\n $('#collapseCases').collapse('hide');\n $('#collapsePrice').collapse('hide');\n $('#collapseSport').collapse('hide');\n $('#filtersModal').modal('show');\n }\n\n $scope.recommendations = function () {\n $scope.is_loading_data = true;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.recommendations_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {\n user_id: $scope.user_id,\n slug: $scope.slug_date\n },\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n $scope.is_loading_data = false;\n $scope.is_loading_more = false;\n if (rs.succeed) {\n $scope.total = rs.data.total;\n $scope.data = rs.data.result;\n $scope.date_release_title = rs.data.date_release_title;\n $scope.data_previous = rs.data.data_previous;\n $scope.data_next = rs.data.data_next;\n } else {\n $scope.data = [];\n }\n });\n }\n });\n }\n\n $scope.update_box_notification = function (box) {\n $.ajax({\n beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.update_box_notification_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {\n box_id: box.id,\n user_id: $scope.user_id\n },\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n toastr.success('Updated successfully');\n box.is_watchlist = !box.is_watchlist\n } else {\n toastr.error(rs.message);\n }\n });\n }\n });\n }\n\n $scope.change_date = function (slug_date) {\n $scope.slug_date = slug_date;\n $scope.recommendations();\n }\n\n $scope.click_filter_sport = function () {\n $scope.is_open = !$scope.is_open;\n if ($scope.is_open) {\n $scope.open_menu();\n } else {\n $scope.close_menu();\n }\n }\n\n $scope.open_menu = function () {\n $scope.is_open = true;\n $('#content-filter-by-sport').addClass('show');\n }\n\n $scope.close_menu = function () {\n $scope.is_open = false;\n $scope.sub_data = {};\n $('#content-filter-by-sport').removeClass('show');\n }\n }\n ]);\n\n}).call(this);\n","(function () {\n app.controller('BoxCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n $scope.wax_tracker_url = '';\n $scope.no_image_url = '';\n $scope.suggestions = [];\n $scope.is_visible_suggestions = false;\n $scope.current_focus = -1;\n $scope.all_results = false;\n $scope.current_tab = 'prices';\n $scope.chart_options = {\n \"1_day\": \"1D\",\n \"7_days\": \"7D\",\n \"1_month\": \"1M\",\n \"3_months\": \"3M\",\n \"1_year\": \"1Y\",\n \"ytd\": \"YTD\",\n \"all\": \"All\"\n };\n\n $scope.chart_market_options = {\n \"7_days\": \"7D\",\n \"1_month\": \"1M\",\n \"3_months\": \"3M\",\n \"1_year\": \"1Y\",\n \"ytd\": \"YTD\",\n \"all\": \"All\"\n };\n\n $scope.type_charts = [\n {key:'price', name:'Average price history'},\n {key:'price_all_store', name:'Price history by retailer'},\n // {key:'3_month', name:'3-month price comparison'},\n ];\n\n $scope.type_chart_key = 'price';\n $scope.loading_more_boxes = true;\n $scope.borderColor = [\n '#59B788', '#AA23A5', '#DE6F1F', '#2369AA', '#3366cc',\n '#dc3912', '#ff9900', '#109618', '#990099', '#3b3eac',\n '#0099c6', '#66aa00', '#b82e2e', '#316395', '#22aa99',\n '#f00056', '#ae7000', '#177cb0', '#343a40cc', '#c9dd22'\n ];\n\n $scope.data_like_box = [];\n $scope.more_boxes = [];\n $scope.market_buy = {\n data: [],\n page: 1,\n total_page: 0\n }\n $scope.market_sell = {\n data: [],\n page: 1,\n total_page: 0\n }\n $scope.market_trades = {\n data: [],\n page: 1,\n total_page: 0\n }\n $scope.market_page_size = 10;\n $scope.import_url = {\n steel_city_collectibles_url: '',\n blowout_cards_url: '',\n dave_and_adams_url: '',\n legends_fan_shop_url: '',\n the_sports_card_zone_url: '',\n roadshow_cards_url: '',\n piece_of_the_game_url: '',\n the_cardiacs_url: '',\n rbicru7_url: '',\n diamond_cards_online_url: '',\n giant_sports_cards_url: '',\n chicagoland_sports_cards_url: '',\n silver_state_hobby_url: '',\n cherry_collectibles_url: '',\n full_fund_dave_and_adams: true,\n full_fund_steel_city_collectibles: false\n };\n\n $scope.import_retailers = [\n {name: \"Steel City Collectibles\", value: \"steel_city_collectibles_url\"},\n {name: \"Blowout Cards\", value: \"blowout_cards_url\"},\n {name: \"Dave & Adams\", value: \"dave_and_adams_url\"}\n ]\n $scope.import_retailer = {\n url: \"\",\n choose_retailer: \"dave_and_adams_url\"\n };\n $scope.init = function () {};\n \n $scope.getSuggestions = function () {\n let except_ids = $scope.data_like_box.map(d => d.id);\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.search_name_box,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: { q: $scope.key_search, except_ids: [...except_ids,...[$scope.box_id]] },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.data_search = rs.data;\n $scope.data_search.forEach(d => {\n d.hidden = false;\n });\n } else {\n toastr.error(\"An Unexpected Error Occurred!\");\n }\n });\n },\n })\n }\n\n $scope.add_like_box = function (data) {\n $scope.data_like_box = $scope.data_like_box.filter(b => b.id != data.id);\n $scope.data_like_box.push(data);\n $scope.data_search.forEach(d => {\n if (d.id == data.id) {\n d.hidden = true;\n }\n });\n $('#same_box_ids').val($scope.data_like_box.map(d => d.id));\n }\n\n $scope.remove_like_box = function (data) {\n $scope.data_like_box = $scope.data_like_box.filter(b => b.id != data.id);\n if ($scope.data_search) {\n $scope.data_search.forEach(d => {\n if (d.id == data.id) {\n d.hidden = false;\n }\n });\n }\n $('#same_box_ids').val($scope.data_like_box.map(d => d.id));\n }\n\n $scope.getChart = function(key) {\n if ($scope.type_chart_key == '3_month' || $scope.type_chart_key == '3_month_by_retailer') {\n $scope.selected_chart_option = '1_month';\n } else {\n $scope.selected_chart_option = key;\n if (!($scope.selected_chart_option in $scope.chart_options)) {\n $scope.selected_chart_option = Object.keys($scope.chart_options)[0] ? Object.keys($scope.chart_options)[0] : $scope.selected_chart_option;\n }\n }\n $scope.getChartData();\n }\n\n $scope.getChartMarket = function(key, type) {\n switch (type) {\n case 'offers':\n $scope.selected_chart_market_offers_option = key;\n break;\n case 'trades':\n $scope.selected_chart_market_trades_option = key;\n break;\n default:\n return;\n }\n $scope.getChartMarketData(type);\n }\n\n $scope.getRandomColor = function () {\n var letters = '0123456789ABCDEF',\n color = '#';\n for (var i = 0; i < 6; i++) {\n color += letters[Math.floor(Math.random() * 16)];\n }\n return color;\n }\n\n $scope.getChartData = function () {\n let params = {\n selected_chart_option: $scope.selected_chart_option,\n chart_type: $scope.type_chart_key\n }\n\n if ($scope.source_name) {\n params.retailer = $scope.source_name;\n }\n\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.data_chart_url,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: params,\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n rs.data = rs.data || [];\n for (let i = 0; i < rs.data.length; i++) {\n let color = $scope.borderColor[i];\n if (i > 19) color = $scope.getRandomColor();\n rs.data[i].borderColor = color;\n rs.data[i].backgroundColor = color;\n rs.data[i].pointRadius = 0;\n rs.data[i].pointHoverRadius = 0;\n rs.data[i].hoverRadius = 0;\n if ($scope.type_chart_key == 'price') {\n let ctx = document.getElementById('chart').getContext('2d');\n gradient = ctx.createLinearGradient(0, 0, 0, 400);\n gradient.addColorStop(0.1971, 'rgba(89, 183, 136, 0.5)');\n gradient.addColorStop(0.9029, 'rgba(39, 81, 60, 0)');\n rs.data[i].fill = true;\n rs.data[i].backgroundColor = gradient;\n rs.data[i].borderWidth = 1;\n }\n }\n if ($scope.type_chart_key == 'price') {\n $('#legend-container').hide();\n } else {\n $('#legend-container').show();\n }\n\n if ($scope.type_chart_key == '3_month' || $scope.type_chart_key == '3_month_by_retailer') {\n $scope.chart.options.scales.x.ticks = {\n callback: function(value, index, ticks) {\n return value;\n }\n };\n // $scope.chart.options.plugins.tooltip = {\n // callbacks: {\n // title: function(context) {\n // return context[0].raw.date;\n // },\n // label: function(context) {\n // return context.parsed.y;\n // }\n // }\n // };\n // $scope.chart.options.scales.x.time.tooltipFormat = 'MMM DD, yyyy';\n $scope.chart.options.scales.x.suggestedMin = 1;\n $scope.chart.options.scales.x.suggestedMax = 31;\n } else {\n $scope.chart.options.scales.x.ticks = {};\n // $scope.chart.options.scales.x.time.tooltipFormat = 'MMM DD, yyyy, hh:mm:ss a';\n // $scope.chart.options.plugins.tooltip = {\n // callbacks: {}\n // };\n $scope.chart.options.scales.x.suggestedMin = null;\n $scope.chart.options.scales.x.suggestedMax = null;\n }\n $scope.chart.data.datasets = rs.data;\n } else {\n $scope.chart.data.datasets = [];\n toastr.error(\"An Unexpected Error Occurred!\");\n }\n $scope.chart.update();\n });\n },\n });\n }\n\n $scope.getChartMarketData = function (type) {\n var params = {};\n switch (type) {\n case 'offers':\n params = {\n selected_chart_option: $scope.selected_chart_market_offers_option,\n type: type\n }\n break;\n case 'trades':\n params = {\n selected_chart_option: $scope.selected_chart_market_trades_option,\n type: type\n }\n break;\n default:\n return;\n }\n\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.data_chart_market_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: params,\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n rs.data = rs.data || [];\n for (let i = 0; i < rs.data.length; i++) {\n let color = $scope.borderColor[i];\n if (i > 19) color = $scope.getRandomColor();\n\n rs.data[i].borderColor = color;\n rs.data[i].backgroundColor = color;\n }\n\n switch (type) {\n case 'offers':\n $scope.chart_offers.options.scales.x.ticks = {};\n $scope.chart_offers.options.scales.x.time.tooltipFormat = 'MMM DD, yyyy, hh:mm:ss a';\n $scope.chart_offers.options.plugins.tooltip = {\n callbacks: {}\n };\n $scope.chart_offers.options.scales.x.suggestedMin = null;\n $scope.chart_offers.options.scales.x.suggestedMax = null;\n $scope.chart_offers.data.datasets = rs.data;\n break;\n case 'trades':\n $scope.chart_trades.options.scales.x.ticks = {};\n $scope.chart_trades.options.scales.x.time.tooltipFormat = 'MMM DD, yyyy, hh:mm:ss a';\n $scope.chart_trades.options.plugins.tooltip = {\n callbacks: {}\n };\n $scope.chart_trades.options.scales.x.suggestedMin = null;\n $scope.chart_trades.options.scales.x.suggestedMax = null;\n $scope.chart_trades.data.datasets = rs.data;\n break;\n }\n } else {\n switch (key) {\n case 'offers':\n $scope.chart_offers.data.datasets = [];\n break;\n case 'trades':\n $scope.chart_trades.data.datasets = [];\n break;\n default:\n break;\n }\n toastr.error(\"An Unexpected Error Occurred!\");\n }\n $scope.chart_offers.update();\n $scope.chart_trades.update();\n });\n },\n });\n }\n\n $scope.getMoreBoxes = function () {\n $scope.loading_more_boxes = true;\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.more_boxes_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {},\n success: function (rs) {\n $timeout(function () {\n $scope.loading_more_boxes = false;\n if (rs.succeed) {\n $scope.more_boxes = rs.data;\n $scope.number_page_more_boxes = Math.ceil($scope.more_boxes.length / 3);\n setTimeout(() => {\n $scope.chart_more_box($scope.more_boxes);\n }, 400);\n } else {\n $scope.more_boxes = [];\n toastr.error(\"An Unexpected Error Occurred!\");\n }\n });\n },\n });\n }\n\n $scope.chart_more_box = function () {\n $scope.more_boxes.forEach(box => {\n if (box == {} || box.is_ad) {\n return;\n }\n let data = box.chart.chart_data[0].data.sort().map(row => ({ x: row[0], y: row[1] }));\n \n new Chart(`chart-more-box-${box.id}`,{\n type: 'line',\n data: {\n datasets: [\n {\n data: data,\n borderColor: box.chart.color,\n pointRadius: 0,\n poitnHoverRadius: 0,\n hoverRadius: 0\n }\n ]\n },\n options: {\n animation: false,\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false\n }\n },\n scales: {\n x: {\n display: false\n },\n y: {\n display: false\n }\n }\n }\n });\n });\n }\n\n $scope.getStatisticOutOfStock = function () {\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.statistic_out_of_stock_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {},\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.statistic_out_of_stock = rs.data;\n } else {\n $scope.statistic_out_of_stock = {\n one_day: null,\n seven_days: null,\n thirty_days: null,\n one_year: null\n };\n toastr.error(\"An Unexpected Error Occurred!\");\n }\n });\n },\n });\n }\n\n $scope.changeTab = function(tab) {\n $scope.current_tab = tab;\n }\n\n $scope.changeCardBreakPrice = function (type) {\n let price = Number($scope[type]);\n if ($scope[type] == '') return;\n if (isNaN(price) || price < 0) price = '';\n $scope[type] = price;\n }\n \n $scope.totalCardBreakPrice = function () {\n let price_pay = $scope.price_pay ? (Number($scope.price_pay) > 0 ? Number($scope.price_pay) : 0 ): 0,\n price_profit = $scope.price_profit ? (Number($scope.price_profit) > 0 ? Number($scope.price_profit) : 0 ): 0;\n $scope.total_card_break_price = (price_pay + price_profit).toFixed(0);\n }\n\n $scope.getPriceMarket = function (type) {\n page = 1\n switch (type) {\n case 'buy':\n page = $scope.market_buy.page;\n break;\n case 'sell':\n page = $scope.market_sell.page;\n break;\n case 'trades':\n page = $scope.market_trades.page;\n break;\n }\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.market_data_box_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {\n page: page,\n type: type\n },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n let count_page = Math.ceil(rs.data.total / $scope.market_page_size);\n switch (type) {\n case 'buy':\n $scope.market_buy.data = rs.data.records;\n $scope.market_buy.total_page = count_page;\n break;\n case 'sell':\n $scope.market_sell.data = rs.data.records;\n $scope.market_sell.total_page = count_page;\n break;\n case 'trades':\n $scope.market_trades.data = rs.data.records;\n $scope.market_trades.total_page = count_page;\n break;\n }\n } else {\n toastr.error(\"An Unexpected Error Occurred!\");\n }\n });\n },\n });\n }\n\n $scope.changePageMarket = function (page, type) {\n if (page < 1) return;\n switch (type) {\n case 'buy':\n $scope.market_buy.page = page;\n break;\n case 'sell':\n $scope.market_sell.page = page;\n break;\n case 'trades':\n $scope.market_trades.page = page;\n break;\n }\n $scope.getPriceMarket(type)\n }\n\n $scope.nextCreateStep = async function () {\n if ($scope.disabledNextCreateStep()) return;\n await $scope.getDataNewBox();\n $scope.current_step = 2;\n }\n\n $scope.checkImportRetailerUrl = function () {\n let check = false;\n switch ($scope.import_retailer.choose_retailer) {\n case \"steel_city_collectibles_url\":\n check = !$scope.checkRegex('steel_city_collectibles_url', true);\n break;\n case \"blowout_cards_url\":\n check = !$scope.checkRegex('blowout_cards_url', true);\n break;\n case \"dave_and_adams_url\":\n check = !$scope.checkRegex('dave_and_adams_url', true);\n break;\n }\n return check;\n }\n\n $scope.getName = function() {\n let retailer = $scope.import_retailers.filter(r => r.value == $scope.import_retailer.choose_retailer)[0] || {};\n return retailer.name || '';\n }\n\n $scope.disabledNextCreateStep = function () {\n return $scope.import_retailer.url == '' || $scope.checkImportRetailerUrl();\n }\n\n $scope.checkRegex = function (type, is_import = false) {\n let url = '';\n switch (type) {\n case 'steel_city_collectibles_url':\n url = is_import ? $scope.import_retailer.url : $scope.import_url.steel_city_collectibles_url;\n if (url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?steelcitycollectibles\\.com\\/(?:\\w)*./i.test(url);\n case 'blowout_cards_url':\n url = is_import ? $scope.import_retailer.url : $scope.import_url.blowout_cards_url;\n if (url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?blowoutcards\\.com\\/(?:\\w)*./i.test(url);\n case 'dave_and_adams_url':\n url = is_import ? $scope.import_retailer.url : $scope.import_url.dave_and_adams_url;\n if (url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?dacardworld\\.com\\/(?:\\w)*./i.test(url);\n case 'legends_fan_shop_url':\n if ($scope.import_url.legends_fan_shop_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?legendsfanshop\\.com\\/(?:\\w)*./i.test($scope.import_url.legends_fan_shop_url);\n case 'the_sports_card_zone_url':\n if ($scope.import_url.the_sports_card_zone_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?thesportscardzone\\.com\\/(?:\\w)*./i.test($scope.import_url.the_sports_card_zone_url);\n case 'roadshow_cards_url':\n if ($scope.import_url.roadshow_cards_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?roadshowcards\\.com\\/(?:\\w)*./i.test($scope.import_url.roadshow_cards_url);\n case 'piece_of_the_game_url':\n if ($scope.import_url.piece_of_the_game_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?shoppieceofthegame\\.com\\/(?:\\w)*./i.test($scope.import_url.piece_of_the_game_url);\n case 'the_cardiacs_url':\n if ($scope.import_url.the_cardiacs_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?thecardiacs\\.com\\/(?:\\w)*./i.test($scope.import_url.the_cardiacs_url);\n case 'rbicru7_url':\n if ($scope.import_url.rbicru7_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?rbicru7\\.com\\/(?:\\w)*./i.test($scope.import_url.rbicru7_url);\n case 'diamond_cards_online_url':\n if ($scope.import_url.diamond_cards_online_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?diamondcardsonline\\.com\\/(?:\\w)*./i.test($scope.import_url.diamond_cards_online_url);\n case 'giant_sports_cards_url':\n if ($scope.import_url.giant_sports_cards_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?giantsportscards\\.com\\/(?:\\w)*./i.test($scope.import_url.giant_sports_cards_url);\n case 'chicagoland_sports_cards_url':\n if ($scope.import_url.chicagoland_sports_cards_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?chicagolandsportscards\\.com\\/(?:\\w)*./i.test($scope.import_url.chicagoland_sports_cards_url);\n case 'silver_state_hobby_url':\n if ($scope.import_url.silver_state_hobby_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?silverstatehobby\\.com\\/(?:\\w)*./i.test($scope.import_url.silver_state_hobby_url);\n case 'cherry_collectibles_url':\n if ($scope.import_url.cherry_collectibles_url == '') return true;\n return /^(http|https):\\/\\/(\\www\\.)?cherrycollectables\\.com\\.au\\/(?:\\w)*./i.test($scope.import_url.cherry_collectibles_url);\n default:\n return false;\n }\n }\n\n $scope.getDataNewBox = function () {\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.get_data_new_box_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {\n url: $scope.import_retailer.url,\n retailer: $scope.import_retailer.choose_retailer\n },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n if ($scope.upcs.length > 0 && rs.data && rs.data.upc) {\n $scope.upcs.push(rs.data.upc);\n }\n $scope.data_new_box = rs.data;\n if ($scope.data_new_box.release_date) {\n window.applyDatepicker($scope.data_new_box.release_date);\n }\n $scope.addLinkNewBox($scope.data_new_box.slug);\n\n // remove description\n $scope.data_new_box.description = '';\n window.editor.setData('');\n // window.editor.setData($scope.data_new_box.description);\n } else {\n toastr.error(rs.message);\n }\n });\n },\n });\n }\n\n $scope.backStepNewBox = function () {\n $scope.current_step = 1;\n }\n\n $scope.addLinkNewBox = function (slug) {\n $.each($scope.import_url, function(index, value) {\n switch (index) {\n case 'steel_city_collectibles_url':\n $scope.import_url.steel_city_collectibles_url = `https://www.steelcitycollectibles.com/i/${slug}`;\n break;\n case 'blowout_cards_url':\n $scope.import_url.blowout_cards_url = `https://www.blowoutcards.com/${slug}.html`;\n break;\n case 'dave_and_adams_url':\n $scope.import_url.dave_and_adams_url = `https://www.dacardworld.com/sports-cards/${slug}`;\n break;\n // case 'legends_fan_shop_url':\n // $scope.import_url.legends_fan_shop_url = `https://www.legendsfanshop.com/${slug}`;\n // break;\n // case 'the_sports_card_zone_url':\n // $scope.import_url.the_sports_card_zone_url = `https://thesportscardzone.com/products/${slug}`;\n // break;\n // case 'roadshow_cards_url':\n // $scope.import_url.roadshow_cards_url = `https://roadshowcards.com/products/${slug}`;\n // break;\n // case 'piece_of_the_game_url':\n // $scope.import_url.piece_of_the_game_url = `https://shoppieceofthegame.com/products/${slug}`;\n // break;\n // case 'the_cardiacs_url':\n // $scope.import_url.the_cardiacs_url = `https://www.thecardiacs.com/products/${slug}`;\n // break;\n // case 'rbicru7_url':\n // $scope.import_url.rbicru7_url = `https://rbicru7.com/products/${slug}`;\n // break;\n // case 'diamond_cards_online_url':\n // $scope.import_url.diamond_cards_online_url = `https://www.diamondcardsonline.com/${slug}`;\n // break;\n // case 'giant_sports_cards_url':\n // $scope.import_url.giant_sports_cards_url = `https://giantsportscards.com/products/${slug}`;\n // break;\n // case 'chicagoland_sports_cards_url':\n // $scope.import_url.chicagoland_sports_cards_url = `https://www.chicagolandsportscards.com/${slug}.html`;\n // break;\n // case 'silver_state_hobby_url':\n // $scope.import_url.silver_state_hobby_url = `https://silverstatehobby.com/products/${slug}`;\n // break;\n // case 'cherry_collectibles_url':\n // $scope.import_url.cherry_collectibles_url = `https://www.cherrycollectables.com.au/products/${slug}`;\n // break;\n default:\n break;\n }\n }); \n }\n\n $scope.submitCreateBox = function() {\n var is_format = true,\n check_empty = false;\n\n $.each($scope.import_url, function(key, value) {\n if (key.includes('_url')) {\n let check_regex = $scope.checkRegex(key);\n if (!check_regex && is_format) is_format = false;\n if (!!value && !check_empty) check_empty = true;\n }\n })\n\n if (!is_format || !check_empty) return;\n\n if (\n !$scope.data_new_box.name || \n !$scope.data_new_box.sport_type_id || \n !$scope.data_new_box.league_year_id || \n !$scope.data_new_box.box_type_id || \n !$scope.data_new_box.name\n ) return;\n $scope.data_new_box.description = window.editor.getData();\n var box = {...$scope.data_new_box, ...$scope.import_url};\n\n box.release_date = $('#datepicker-hidden').val();\n box.upcs = $scope.upcs;\n\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.create_box_url,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: {\n box: box,\n is_ajax: true\n },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n window.location.pathname = rs.href;\n } else {\n toastr.error(rs.message);\n }\n });\n },\n });\n }\n\n $scope.addUpc = function () {\n $scope.upcs.push('');\n }\n\n $scope.checkUPC = function (upc, index) {\n if (!upc) return;\n $scope.upcs[index] = upc.replaceAll(\" \",\"\");\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.check_upc_boxes_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {\n upc: upc\n },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n var divs = document.querySelectorAll('#upcs div'),\n element = divs[index];\n\n if (rs.data.length > 0) {\n var html = \"<p>Boxes have the same UPC:\";\n rs.data.forEach(b => {\n html+= `<br><a class=\"ml-3\" href=\"${b.slug}\" target=\"_blank\">${b.name}</a>`;\n })\n html+=\"</p>\";\n element.innerHTML = html;\n } else {\n element.innerHTML = \"\";\n }\n \n } else {\n toastr.error(rs.message);\n }\n });\n },\n });\n }\n }\n ]);\n\n}).call(this);\n","(function () {\n app.controller('SearchPageCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n $scope.wax_tracker_url = '';\n $scope.initialize_filter_options_url = '';\n $scope.no_image_url = '';\n\n $scope.key_search = '';\n $scope.suggestions = [];\n $scope.all_results = false;\n $scope.sport = [];\n $scope.brand = [];\n $scope.year = [];\n $scope.box_type = [];\n\n $scope.sport_options = {};\n $scope.brand_options = {};\n $scope.year_options = {};\n $scope.box_type_options = {};\n $scope.page = 0;\n $scope.can_show_more = true;\n $scope.no_slugs = [];\n $scope.is_loading_suggestion = false;\n $scope.tags = {\n sports: [],\n brands: [],\n years: [],\n box_types: []\n }\n\n $scope.data_box_histories = [];\n\n $scope.$watchGroup(['sport', 'brand', 'year', 'box_type'], function(newValues, oldValues, scope) {\n try {\n let sports = [],\n brands = [],\n years = [],\n box_types = [];\n newValues[0].forEach(id => {\n Object.values($scope.sport_options).forEach(o => {\n let temp = o.filter(f => f.id == id);\n sports = [...sports,...temp];\n })\n })\n newValues[1].forEach(id => {\n let temp = Object.values($scope.brand_options)[0].filter(f => f.id == id);\n brands = [...brands,...temp];\n })\n newValues[2].forEach(id => {\n let temp = Object.values($scope.year_options)[0].filter(f => f.id == id);\n years = [...years,...temp];\n })\n newValues[3].forEach(id => {\n Object.values($scope.box_type_options).forEach(o => {\n let temp = o.filter(f => f.id == id);\n box_types = [...box_types,...temp];\n })\n })\n $timeout(function () {\n $scope.tags = {\n sports: sports,\n brands: brands,\n years: years,\n box_types: box_types\n }\n })\n } catch (error) {\n console.log(error);\n }\n });\n\n $scope.init = function () {};\n\n $scope.getSuggestions = function (load_more = false) {\n if ($scope.key_search == '') {\n $scope.suggestions = []; \n return;\n }\n if (!load_more) {\n $scope.page = 0;\n }\n $scope.is_loading_suggestion = true;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.waxtracker_suggestions_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: { \n q: $scope.key_search,\n page: $scope.page,\n sport: $scope.sport,\n brand: $scope.brand,\n year: $scope.year,\n box_type: $scope.box_type\n },\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.is_loading_more = false;\n $scope.all_results = false;\n $scope.can_show_more = rs.is_more;\n $scope.total_results = rs.total_results;\n if ($scope.page > 0) {\n $scope.suggestions = [...$scope.suggestions,...rs.data];\n } else {\n $scope.suggestions = rs.data;\n }\n $scope.getChart(rs.data);\n } else {\n $scope.suggestions = [];\n }\n $scope.is_loading_suggestion = false;\n });\n }\n });\n };\n\n $scope.initializeFilterOptions = function() {\n $.ajax({\n url: $scope.initialize_filter_options_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {},\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.sport_options = rs.data['sport'];\n $scope.brand_options = rs.data['brand'];\n $scope.year_options = rs.data['year'];\n $scope.box_type_options = rs.data['box_type'];\n } else {\n toastr.error(rs.message);\n }\n });\n }\n });\n }\n\n $scope.seeAllResults = function () {\n if( !Object.keys($scope.sport_options).length ||\n !Object.keys($scope.brand_options).length ||\n !Object.keys($scope.year_options).length ||\n !Object.keys($scope.box_type_options).length ) {\n $scope.initializeFilterOptions();\n }\n\n $scope.sport = getFilter('sport_options');\n $scope.brand = getFilter('brand_options');\n $scope.year = getFilter('year_options');\n $scope.box_type = getFilter('box_type_options');\n $scope.page = 0;\n\n $scope.getSuggestions();\n };\n\n function getFilter(name_of_elements) {\n let result = [];\n $(`input[name=\"${name_of_elements}\"]`).each(function() {\n let currentElement = $(this);\n if (currentElement.is(':checked')) {\n \n result.push(parseInt(currentElement.val())); \n }\n });\n \n return result;\n }\n\n function emptyCheck(obj) {\n Object.keys(obj).length === 0 && obj.constructor === Object;\n }\n\n $scope.closeSearch = function (){\n $(\"#search-input\").blur();\n $(\"#search-page\").removeClass('h-100');\n $(\".content-wrapper\").removeClass('hide-content-wrapper');\n $scope.key_search = '';\n $scope.sport = [];\n $scope.brand = [];\n $scope.year = [];\n $scope.box_type = [];\n $scope.suggestions = [];\n }\n\n $scope.openSearch = function (){\n $(\"#search-toggler\").blur();\n $(\"#search-page\").addClass('h-100');\n $(\".content-wrapper\").addClass('hide-content-wrapper');\n setTimeout(() => {\n $(\"html, body\").animate({ scrollTop: \"0\" });\n $(\"#search-input\").focus();\n }, 100);\n $scope.getSuggestions();\n $scope.getBoxSearchHistories();\n }\n\n $scope.getChart = function(data) {\n let ids = data.map(row => row.id);\n if (ids && ids.length == 0)\n return;\n $.ajax({\n url: $scope.index_data_chart_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {\n ids: ids,\n selected_chart_option: '7_days',\n chart_type: 'price',\n },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n Object.keys(rs.result).forEach(key => {\n if (rs.result[key] == {}) {\n return;\n }\n let data = rs.result[key].chart_data[0].data.sort().map(row => ({ x: row[0], y: row[1] }));\n new Chart(`chart-search-${key}`,{\n type: 'line',\n data: {\n datasets: [\n {\n data: data,\n borderColor: rs.result[key].color,\n pointRadius: 0,\n poitnHoverRadius: 0,\n hoverRadius: 0\n }\n ]\n },\n options: {\n animation: false,\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false\n }\n },\n scales: {\n x: {\n display: false\n },\n y: {\n display: false\n }\n }\n }\n });\n });\n }\n });\n },\n });\n }\n\n $scope.loadMore = function() {\n $scope.is_loading_more = true;\n $scope.page += 1;\n $scope.getSuggestions(true);\n }\n\n $scope.getEvent = function (e) {\n e.stopPropagation();\n }\n\n $scope.removeTags = function (type, id) {\n $timeout(function () {\n switch (type) {\n case \"sports\":\n $scope.sport = $scope.sport.filter(f => f != id);\n break;\n case \"brands\":\n $scope.brand = $scope.brand.filter(f => f != id);\n break;\n case \"years\":\n $scope.year = $scope.year.filter(f => f != id);\n break;\n case \"box_types\":\n $scope.box_type = $scope.box_type.filter(f => f != id);\n break;\n default:\n break;\n }\n $scope.$apply();\n $scope.seeAllResults();\n })\n }\n\n $scope.getBoxSearchHistories = function () {\n if($scope.box_histories.length == 0) return;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.data_boxes_url,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: { slugs: $scope.box_histories },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.data_box_histories = rs.data;\n } else {\n // toastr.error(\"An Unexpected Error Occurred!\");\n $scope.data_box_histories = [];\n }\n });\n },\n })\n }\n\n $scope.addBoxHistory = function (box_slug) {\n try {\n let temp = $scope.box_histories;\n while (temp.indexOf(box_slug) !== -1) {\n temp.splice(temp.indexOf(box_slug), 1);\n }\n temp.unshift(box_slug);\n $scope.box_histories = temp.slice(0,6);\n } catch (error) {\n $scope.box_histories = [];\n }\n localStorage.setItem('box_histories', $scope.box_histories);\n }\n }\n ]);\n\n}).call(this);\n","(function () {\n app.controller('BreadCrumbsFilter', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n\t\t\t$scope.page = 1;\n $scope.per_page = 12;\n $scope.box_type_ids = [];\n $scope.data = [];\n $scope.total = null;\n $scope.is_more = false;\n $scope.is_loading_data = true;\n $scope.is_loading_more = false;\n \n\t\t\t$scope.init = function () {\n $scope.getDataIndex();\n }\n\n\t\t\t$scope.getData = function () {\n var data = {\n page: $scope.page,\n per_page: $scope.per_page,\n sport: $scope.sport,\n year: $scope.year,\n brand: $scope.brand,\n box_type_ids: $scope.box_type_ids\n }\n $scope.is_loading_data = true;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.wax_tracker_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: data,\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n $scope.is_loading_data = false;\n $scope.is_loading_more = false;\n if (rs.succeed) {\n $scope.total = rs.data.total;\n $scope.is_more = rs.data.is_more;\n if ($scope.data.length > 0) {\n $scope.data = [...$scope.data,...rs.data.result];\n } else {\n $scope.data = rs.data.result;\n }\n } else {\n $scope.data = [];\n $scope.is_more = false;\n }\n });\n }\n });\n };\n\n $scope.getDataIndex = function() {\n $scope.data = [];\n $scope.page = 1;\n $scope.getData();\n }\n\n $scope.filterData = function () {\n let temp = [];\n $.each($scope.filters, function(k, v) {\n temp = [...temp,...v.filter(b => b.checked).map(b => b.id)];\n });\n $scope.box_type_ids = temp;\n $scope.getDataIndex();\n }\n\n $scope.load_more = function() {\n $scope.is_loading_more = true;\n $scope.page = $scope.page + 1;\n $scope.getData();\n }\n\t\t}\n\t]);\n}).call(this);","/*!\n * chartjs-adapter-moment v1.0.1\n * https://www.chartjs.org\n * (c) 2022 chartjs-adapter-moment Contributors\n * Released under the MIT license\n */\nimport moment from 'moment';\nimport { _adapters } from 'chart.js';\nconst FORMATS = {\n datetime: 'MMM D, YYYY, h:mm:ss a',\n millisecond: 'h:mm:ss.SSS a',\n second: 'h:mm:ss a',\n minute: 'h:mm a',\n hour: 'hA',\n day: 'MMM D',\n week: 'll',\n month: 'MMM YYYY',\n quarter: '[Q]Q - YYYY',\n year: 'YYYY'\n};\n_adapters._date.override(typeof moment === 'function' ? {\n _id: 'moment',\n // DEBUG ONLY\n\n formats: function () {\n return FORMATS;\n },\n parse: function (value, format) {\n if (typeof value === 'string' && typeof format === 'string') {\n value = moment(value, format);\n } else if (!(value instanceof moment)) {\n value = moment(value);\n }\n return value.isValid() ? value.valueOf() : null;\n },\n format: function (time, format) {\n return moment(time).format(format);\n },\n add: function (time, amount, unit) {\n return moment(time).add(amount, unit).valueOf();\n },\n diff: function (max, min, unit) {\n return moment(max).diff(moment(min), unit);\n },\n startOf: function (time, unit, weekday) {\n time = moment(time);\n if (unit === 'isoWeek') {\n weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));\n return time.isoWeekday(weekday).startOf('day').valueOf();\n }\n return time.startOf(unit).valueOf();\n },\n endOf: function (time, unit) {\n return moment(time).endOf(unit).valueOf();\n }\n} : {});","import { Chart, registerables } from '../dist/chart.js';\nChart.register(...registerables);\nexport * from '../dist/chart.js';\nexport default Chart;","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n }\n formContent += '<input type=\"submit\" />';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\",\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n });\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n _this.dispatch(\"end\");\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n _this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 166;","/*!\n * Bootstrap v4.6.2 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) : typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));\n})(this, function (exports, $, Popper) {\n 'use strict';\n\n function _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n }\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * Private TransitionEnd Helpers\n */\n\n var TRANSITION_END = 'transitionend';\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return \"\" + obj;\n }\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n }\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle: function handle(event) {\n if ($__default[\"default\"](event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n\n return undefined;\n }\n };\n }\n function transitionEndEmulator(duration) {\n var _this = this;\n var called = false;\n $__default[\"default\"](this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n function setTransitionEndSupport() {\n $__default[\"default\"].fn.emulateTransitionEnd = transitionEndEmulator;\n $__default[\"default\"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n /**\n * Public Util API\n */\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href');\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n }\n try {\n return document.querySelector(selector) ? selector : null;\n } catch (_) {\n return null;\n }\n },\n getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n var transitionDuration = $__default[\"default\"](element).css('transition-duration');\n var transitionDelay = $__default[\"default\"](element).css('transition-delay');\n var floatTransitionDuration = parseFloat(transitionDuration);\n var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $__default[\"default\"](element).trigger(TRANSITION_END);\n },\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n },\n findShadowRoot: function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n if (!element.parentNode) {\n return null;\n }\n return Util.findShadowRoot(element.parentNode);\n },\n jQueryDetection: function jQueryDetection() {\n if (typeof $__default[\"default\"] === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n }\n var version = $__default[\"default\"].fn.jquery.split(' ')[0].split('.');\n var minMajor = 1;\n var ltMajor = 2;\n var minMinor = 9;\n var minPatch = 1;\n var maxMajor = 4;\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n }\n }\n };\n Util.jQueryDetection();\n setTransitionEndSupport();\n\n /**\n * Constants\n */\n\n var NAME$a = 'alert';\n var VERSION$a = '4.6.2';\n var DATA_KEY$a = 'bs.alert';\n var EVENT_KEY$a = \".\" + DATA_KEY$a;\n var DATA_API_KEY$7 = '.data-api';\n var JQUERY_NO_CONFLICT$a = $__default[\"default\"].fn[NAME$a];\n var CLASS_NAME_ALERT = 'alert';\n var CLASS_NAME_FADE$5 = 'fade';\n var CLASS_NAME_SHOW$7 = 'show';\n var EVENT_CLOSE = \"close\" + EVENT_KEY$a;\n var EVENT_CLOSED = \"closed\" + EVENT_KEY$a;\n var EVENT_CLICK_DATA_API$6 = \"click\" + EVENT_KEY$a + DATA_API_KEY$7;\n var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n /**\n * Class definition\n */\n\n var Alert = /*#__PURE__*/function () {\n function Alert(element) {\n this._element = element;\n } // Getters\n\n var _proto = Alert.prototype;\n\n // Public\n _proto.close = function close(element) {\n var rootElement = this._element;\n if (element) {\n rootElement = this._getRootElement(element);\n }\n var customEvent = this._triggerCloseEvent(rootElement);\n if (customEvent.isDefaultPrevented()) {\n return;\n }\n this._removeElement(rootElement);\n };\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$a);\n this._element = null;\n } // Private\n ;\n\n _proto._getRootElement = function _getRootElement(element) {\n var selector = Util.getSelectorFromElement(element);\n var parent = false;\n if (selector) {\n parent = document.querySelector(selector);\n }\n if (!parent) {\n parent = $__default[\"default\"](element).closest(\".\" + CLASS_NAME_ALERT)[0];\n }\n return parent;\n };\n _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n var closeEvent = $__default[\"default\"].Event(EVENT_CLOSE);\n $__default[\"default\"](element).trigger(closeEvent);\n return closeEvent;\n };\n _proto._removeElement = function _removeElement(element) {\n var _this = this;\n $__default[\"default\"](element).removeClass(CLASS_NAME_SHOW$7);\n if (!$__default[\"default\"](element).hasClass(CLASS_NAME_FADE$5)) {\n this._destroyElement(element);\n return;\n }\n var transitionDuration = Util.getTransitionDurationFromElement(element);\n $__default[\"default\"](element).one(Util.TRANSITION_END, function (event) {\n return _this._destroyElement(element, event);\n }).emulateTransitionEnd(transitionDuration);\n };\n _proto._destroyElement = function _destroyElement(element) {\n $__default[\"default\"](element).detach().trigger(EVENT_CLOSED).remove();\n } // Static\n ;\n\n Alert._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default[\"default\"](this);\n var data = $element.data(DATA_KEY$a);\n if (!data) {\n data = new Alert(this);\n $element.data(DATA_KEY$a, data);\n }\n if (config === 'close') {\n data[config](this);\n }\n });\n };\n Alert._handleDismiss = function _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n alertInstance.close(this);\n };\n };\n _createClass(Alert, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$a;\n }\n }]);\n return Alert;\n }();\n /**\n * Data API implementation\n */\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$a] = Alert._jQueryInterface;\n $__default[\"default\"].fn[NAME$a].Constructor = Alert;\n $__default[\"default\"].fn[NAME$a].noConflict = function () {\n $__default[\"default\"].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n return Alert._jQueryInterface;\n };\n\n /**\n * Constants\n */\n\n var NAME$9 = 'button';\n var VERSION$9 = '4.6.2';\n var DATA_KEY$9 = 'bs.button';\n var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n var DATA_API_KEY$6 = '.data-api';\n var JQUERY_NO_CONFLICT$9 = $__default[\"default\"].fn[NAME$9];\n var CLASS_NAME_ACTIVE$3 = 'active';\n var CLASS_NAME_BUTTON = 'btn';\n var CLASS_NAME_FOCUS = 'focus';\n var EVENT_CLICK_DATA_API$5 = \"click\" + EVENT_KEY$9 + DATA_API_KEY$6;\n var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY$9 + DATA_API_KEY$6 + \" \" + (\"blur\" + EVENT_KEY$9 + DATA_API_KEY$6);\n var EVENT_LOAD_DATA_API$2 = \"load\" + EVENT_KEY$9 + DATA_API_KEY$6;\n var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n var SELECTOR_DATA_TOGGLE$4 = '[data-toggle=\"button\"]';\n var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n var SELECTOR_ACTIVE$2 = '.active';\n var SELECTOR_BUTTON = '.btn';\n /**\n * Class definition\n */\n\n var Button = /*#__PURE__*/function () {\n function Button(element) {\n this._element = element;\n this.shouldAvoidTriggerChange = false;\n } // Getters\n\n var _proto = Button.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n var triggerChangeEvent = true;\n var addAriaPressed = true;\n var rootElement = $__default[\"default\"](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n if (rootElement) {\n var input = this._element.querySelector(SELECTOR_INPUT);\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE$3)) {\n triggerChangeEvent = false;\n } else {\n var activeElement = rootElement.querySelector(SELECTOR_ACTIVE$2);\n if (activeElement) {\n $__default[\"default\"](activeElement).removeClass(CLASS_NAME_ACTIVE$3);\n }\n }\n }\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE$3);\n }\n if (!this.shouldAvoidTriggerChange) {\n $__default[\"default\"](input).trigger('change');\n }\n }\n input.focus();\n addAriaPressed = false;\n }\n }\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE$3));\n }\n if (triggerChangeEvent) {\n $__default[\"default\"](this._element).toggleClass(CLASS_NAME_ACTIVE$3);\n }\n }\n };\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$9);\n this._element = null;\n } // Static\n ;\n\n Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n var $element = $__default[\"default\"](this);\n var data = $element.data(DATA_KEY$9);\n if (!data) {\n data = new Button(this);\n $element.data(DATA_KEY$9, data);\n }\n data.shouldAvoidTriggerChange = avoidTriggerChange;\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n _createClass(Button, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$9;\n }\n }]);\n return Button;\n }();\n /**\n * Data API implementation\n */\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n var button = event.target;\n var initialButton = button;\n if (!$__default[\"default\"](button).hasClass(CLASS_NAME_BUTTON)) {\n button = $__default[\"default\"](button).closest(SELECTOR_BUTTON)[0];\n }\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault(); // work around Firefox bug #1540995\n } else {\n var inputBtn = button.querySelector(SELECTOR_INPUT);\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault(); // work around Firefox bug #1540995\n\n return;\n }\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($__default[\"default\"](button), 'toggle', initialButton.tagName === 'INPUT');\n }\n }\n }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n var button = $__default[\"default\"](event.target).closest(SELECTOR_BUTTON)[0];\n $__default[\"default\"](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n });\n $__default[\"default\"](window).on(EVENT_LOAD_DATA_API$2, function () {\n // ensure correct active class is set to match the controls' actual values/states\n // find all checkboxes/readio buttons inside data-toggle groups\n var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n for (var i = 0, len = buttons.length; i < len; i++) {\n var button = buttons[i];\n var input = button.querySelector(SELECTOR_INPUT);\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE$3);\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE$3);\n }\n } // find all button toggles\n\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$4));\n for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n var _button = buttons[_i];\n if (_button.getAttribute('aria-pressed') === 'true') {\n _button.classList.add(CLASS_NAME_ACTIVE$3);\n } else {\n _button.classList.remove(CLASS_NAME_ACTIVE$3);\n }\n }\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$9] = Button._jQueryInterface;\n $__default[\"default\"].fn[NAME$9].Constructor = Button;\n $__default[\"default\"].fn[NAME$9].noConflict = function () {\n $__default[\"default\"].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n return Button._jQueryInterface;\n };\n\n /**\n * Constants\n */\n\n var NAME$8 = 'carousel';\n var VERSION$8 = '4.6.2';\n var DATA_KEY$8 = 'bs.carousel';\n var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n var DATA_API_KEY$5 = '.data-api';\n var JQUERY_NO_CONFLICT$8 = $__default[\"default\"].fn[NAME$8];\n var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var SWIPE_THRESHOLD = 40;\n var CLASS_NAME_CAROUSEL = 'carousel';\n var CLASS_NAME_ACTIVE$2 = 'active';\n var CLASS_NAME_SLIDE = 'slide';\n var CLASS_NAME_RIGHT = 'carousel-item-right';\n var CLASS_NAME_LEFT = 'carousel-item-left';\n var CLASS_NAME_NEXT = 'carousel-item-next';\n var CLASS_NAME_PREV = 'carousel-item-prev';\n var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n var DIRECTION_NEXT = 'next';\n var DIRECTION_PREV = 'prev';\n var DIRECTION_LEFT = 'left';\n var DIRECTION_RIGHT = 'right';\n var EVENT_SLIDE = \"slide\" + EVENT_KEY$8;\n var EVENT_SLID = \"slid\" + EVENT_KEY$8;\n var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY$8;\n var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY$8;\n var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY$8;\n var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY$8;\n var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY$8;\n var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY$8;\n var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY$8;\n var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY$8;\n var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY$8;\n var EVENT_LOAD_DATA_API$1 = \"load\" + EVENT_KEY$8 + DATA_API_KEY$5;\n var EVENT_CLICK_DATA_API$4 = \"click\" + EVENT_KEY$8 + DATA_API_KEY$5;\n var SELECTOR_ACTIVE$1 = '.active';\n var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n var SELECTOR_ITEM = '.carousel-item';\n var SELECTOR_ITEM_IMG = '.carousel-item img';\n var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n var SELECTOR_INDICATORS = '.carousel-indicators';\n var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\n var SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\n var Default$7 = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType$7 = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\n var PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n };\n /**\n * Class definition\n */\n\n var Carousel = /*#__PURE__*/function () {\n function Carousel(element, config) {\n this._items = null;\n this._interval = null;\n this._activeElement = null;\n this._isPaused = false;\n this._isSliding = false;\n this.touchTimeout = null;\n this.touchStartX = 0;\n this.touchDeltaX = 0;\n this._config = this._getConfig(config);\n this._element = element;\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n this._addEventListeners();\n } // Getters\n\n var _proto = Carousel.prototype;\n\n // Public\n _proto.next = function next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT);\n }\n };\n _proto.nextWhenVisible = function nextWhenVisible() {\n var $element = $__default[\"default\"](this._element); // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n\n if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {\n this.next();\n }\n };\n _proto.prev = function prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV);\n }\n };\n _proto.pause = function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n clearInterval(this._interval);\n this._interval = null;\n };\n _proto.cycle = function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n if (this._config.interval && !this._isPaused) {\n this._updateInterval();\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n };\n _proto.to = function to(index) {\n var _this = this;\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n var activeIndex = this._getItemIndex(this._activeElement);\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n $__default[\"default\"](this._element).one(EVENT_SLID, function () {\n return _this.to(index);\n });\n return;\n }\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n this._slide(direction, this._items[index]);\n };\n _proto.dispose = function dispose() {\n $__default[\"default\"](this._element).off(EVENT_KEY$8);\n $__default[\"default\"].removeData(this._element, DATA_KEY$8);\n this._items = null;\n this._config = null;\n this._element = null;\n this._interval = null;\n this._isPaused = null;\n this._isSliding = null;\n this._activeElement = null;\n this._indicatorsElement = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$7, config);\n Util.typeCheckConfig(NAME$8, config, DefaultType$7);\n return config;\n };\n _proto._handleSwipe = function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n var direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0; // swipe left\n\n if (direction > 0) {\n this.prev();\n } // swipe right\n\n if (direction < 0) {\n this.next();\n }\n };\n _proto._addEventListeners = function _addEventListeners() {\n var _this2 = this;\n if (this._config.keyboard) {\n $__default[\"default\"](this._element).on(EVENT_KEYDOWN, function (event) {\n return _this2._keydown(event);\n });\n }\n if (this._config.pause === 'hover') {\n $__default[\"default\"](this._element).on(EVENT_MOUSEENTER, function (event) {\n return _this2.pause(event);\n }).on(EVENT_MOUSELEAVE, function (event) {\n return _this2.cycle(event);\n });\n }\n if (this._config.touch) {\n this._addTouchEventListeners();\n }\n };\n _proto._addTouchEventListeners = function _addTouchEventListeners() {\n var _this3 = this;\n if (!this._touchSupported) {\n return;\n }\n var start = function start(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchStartX = event.originalEvent.clientX;\n } else if (!_this3._pointerEvent) {\n _this3.touchStartX = event.originalEvent.touches[0].clientX;\n }\n };\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n _this3.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ? 0 : event.originalEvent.touches[0].clientX - _this3.touchStartX;\n };\n var end = function end(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n }\n _this3._handleSwipe();\n if (_this3._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n _this3.pause();\n if (_this3.touchTimeout) {\n clearTimeout(_this3.touchTimeout);\n }\n _this3.touchTimeout = setTimeout(function (event) {\n return _this3.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n }\n };\n $__default[\"default\"](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {\n return e.preventDefault();\n });\n if (this._pointerEvent) {\n $__default[\"default\"](this._element).on(EVENT_POINTERDOWN, function (event) {\n return start(event);\n });\n $__default[\"default\"](this._element).on(EVENT_POINTERUP, function (event) {\n return end(event);\n });\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n $__default[\"default\"](this._element).on(EVENT_TOUCHSTART, function (event) {\n return start(event);\n });\n $__default[\"default\"](this._element).on(EVENT_TOUCHMOVE, function (event) {\n return move(event);\n });\n $__default[\"default\"](this._element).on(EVENT_TOUCHEND, function (event) {\n return end(event);\n });\n }\n };\n _proto._keydown = function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault();\n this.prev();\n break;\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault();\n this.next();\n break;\n }\n };\n _proto._getItemIndex = function _getItemIndex(element) {\n this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];\n return this._items.indexOf(element);\n };\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n var isNextDirection = direction === DIRECTION_NEXT;\n var isPrevDirection = direction === DIRECTION_PREV;\n var activeIndex = this._getItemIndex(activeElement);\n var lastItemIndex = this._items.length - 1;\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement;\n }\n var delta = direction === DIRECTION_PREV ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this._items.length;\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n };\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));\n var slideEvent = $__default[\"default\"].Event(EVENT_SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n $__default[\"default\"](this._element).trigger(slideEvent);\n return slideEvent;\n };\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));\n $__default[\"default\"](indicators).removeClass(CLASS_NAME_ACTIVE$2);\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n if (nextIndicator) {\n $__default[\"default\"](nextIndicator).addClass(CLASS_NAME_ACTIVE$2);\n }\n }\n };\n _proto._updateInterval = function _updateInterval() {\n var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n if (!element) {\n return;\n }\n var elementInterval = parseInt(element.getAttribute('data-interval'), 10);\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n };\n _proto._slide = function _slide(direction, element) {\n var _this4 = this;\n var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n var activeElementIndex = this._getItemIndex(activeElement);\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n var nextElementIndex = this._getItemIndex(nextElement);\n var isCycling = Boolean(this._interval);\n var directionalClassName;\n var orderClassName;\n var eventDirectionName;\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT;\n orderClassName = CLASS_NAME_NEXT;\n eventDirectionName = DIRECTION_LEFT;\n } else {\n directionalClassName = CLASS_NAME_RIGHT;\n orderClassName = CLASS_NAME_PREV;\n eventDirectionName = DIRECTION_RIGHT;\n }\n if (nextElement && $__default[\"default\"](nextElement).hasClass(CLASS_NAME_ACTIVE$2)) {\n this._isSliding = false;\n return;\n }\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n if (slideEvent.isDefaultPrevented()) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n this._isSliding = true;\n if (isCycling) {\n this.pause();\n }\n this._setActiveIndicatorElement(nextElement);\n this._activeElement = nextElement;\n var slidEvent = $__default[\"default\"].Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_SLIDE)) {\n $__default[\"default\"](nextElement).addClass(orderClassName);\n Util.reflow(nextElement);\n $__default[\"default\"](activeElement).addClass(directionalClassName);\n $__default[\"default\"](nextElement).addClass(directionalClassName);\n var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n $__default[\"default\"](activeElement).one(Util.TRANSITION_END, function () {\n $__default[\"default\"](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE$2);\n $__default[\"default\"](activeElement).removeClass(CLASS_NAME_ACTIVE$2 + \" \" + orderClassName + \" \" + directionalClassName);\n _this4._isSliding = false;\n setTimeout(function () {\n return $__default[\"default\"](_this4._element).trigger(slidEvent);\n }, 0);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n $__default[\"default\"](activeElement).removeClass(CLASS_NAME_ACTIVE$2);\n $__default[\"default\"](nextElement).addClass(CLASS_NAME_ACTIVE$2);\n this._isSliding = false;\n $__default[\"default\"](this._element).trigger(slidEvent);\n }\n if (isCycling) {\n this.cycle();\n }\n } // Static\n ;\n\n Carousel._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default[\"default\"](this).data(DATA_KEY$8);\n var _config = _extends({}, Default$7, $__default[\"default\"](this).data());\n if (typeof config === 'object') {\n _config = _extends({}, _config, config);\n }\n var action = typeof config === 'string' ? config : _config.slide;\n if (!data) {\n data = new Carousel(this, _config);\n $__default[\"default\"](this).data(DATA_KEY$8, data);\n }\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n }\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n });\n };\n Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n var selector = Util.getSelectorFromElement(this);\n if (!selector) {\n return;\n }\n var target = $__default[\"default\"](selector)[0];\n if (!target || !$__default[\"default\"](target).hasClass(CLASS_NAME_CAROUSEL)) {\n return;\n }\n var config = _extends({}, $__default[\"default\"](target).data(), $__default[\"default\"](this).data());\n var slideIndex = this.getAttribute('data-slide-to');\n if (slideIndex) {\n config.interval = false;\n }\n Carousel._jQueryInterface.call($__default[\"default\"](target), config);\n if (slideIndex) {\n $__default[\"default\"](target).data(DATA_KEY$8).to(slideIndex);\n }\n event.preventDefault();\n };\n _createClass(Carousel, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$8;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$7;\n }\n }]);\n return Carousel;\n }();\n /**\n * Data API implementation\n */\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n $__default[\"default\"](window).on(EVENT_LOAD_DATA_API$1, function () {\n var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));\n for (var i = 0, len = carousels.length; i < len; i++) {\n var $carousel = $__default[\"default\"](carousels[i]);\n Carousel._jQueryInterface.call($carousel, $carousel.data());\n }\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$8] = Carousel._jQueryInterface;\n $__default[\"default\"].fn[NAME$8].Constructor = Carousel;\n $__default[\"default\"].fn[NAME$8].noConflict = function () {\n $__default[\"default\"].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n return Carousel._jQueryInterface;\n };\n\n /**\n * Constants\n */\n\n var NAME$7 = 'collapse';\n var VERSION$7 = '4.6.2';\n var DATA_KEY$7 = 'bs.collapse';\n var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n var DATA_API_KEY$4 = '.data-api';\n var JQUERY_NO_CONFLICT$7 = $__default[\"default\"].fn[NAME$7];\n var CLASS_NAME_SHOW$6 = 'show';\n var CLASS_NAME_COLLAPSE = 'collapse';\n var CLASS_NAME_COLLAPSING = 'collapsing';\n var CLASS_NAME_COLLAPSED = 'collapsed';\n var DIMENSION_WIDTH = 'width';\n var DIMENSION_HEIGHT = 'height';\n var EVENT_SHOW$4 = \"show\" + EVENT_KEY$7;\n var EVENT_SHOWN$4 = \"shown\" + EVENT_KEY$7;\n var EVENT_HIDE$4 = \"hide\" + EVENT_KEY$7;\n var EVENT_HIDDEN$4 = \"hidden\" + EVENT_KEY$7;\n var EVENT_CLICK_DATA_API$3 = \"click\" + EVENT_KEY$7 + DATA_API_KEY$4;\n var SELECTOR_ACTIVES = '.show, .collapsing';\n var SELECTOR_DATA_TOGGLE$3 = '[data-toggle=\"collapse\"]';\n var Default$6 = {\n toggle: true,\n parent: ''\n };\n var DefaultType$6 = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n /**\n * Class definition\n */\n\n var Collapse = /*#__PURE__*/function () {\n function Collapse(element, config) {\n this._isTransitioning = false;\n this._element = element;\n this._config = this._getConfig(config);\n this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$3));\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = Util.getSelectorFromElement(elem);\n var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n return foundElem === element;\n });\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector;\n this._triggerArray.push(elem);\n }\n }\n this._parent = this._config.parent ? this._getParent() : null;\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n }\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n var _proto = Collapse.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_SHOW$6)) {\n this.hide();\n } else {\n this.show();\n }\n };\n _proto.show = function show() {\n var _this = this;\n if (this._isTransitioning || $__default[\"default\"](this._element).hasClass(CLASS_NAME_SHOW$6)) {\n return;\n }\n var actives;\n var activesData;\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n if (typeof _this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === _this._config.parent;\n }\n return elem.classList.contains(CLASS_NAME_COLLAPSE);\n });\n if (actives.length === 0) {\n actives = null;\n }\n }\n if (actives) {\n activesData = $__default[\"default\"](actives).not(this._selector).data(DATA_KEY$7);\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n var startEvent = $__default[\"default\"].Event(EVENT_SHOW$4);\n $__default[\"default\"](this._element).trigger(startEvent);\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n if (actives) {\n Collapse._jQueryInterface.call($__default[\"default\"](actives).not(this._selector), 'hide');\n if (!activesData) {\n $__default[\"default\"](actives).data(DATA_KEY$7, null);\n }\n }\n var dimension = this._getDimension();\n $__default[\"default\"](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n if (this._triggerArray.length) {\n $__default[\"default\"](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n }\n this.setTransitioning(true);\n var complete = function complete() {\n $__default[\"default\"](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$6);\n _this._element.style[dimension] = '';\n _this.setTransitioning(false);\n $__default[\"default\"](_this._element).trigger(EVENT_SHOWN$4);\n };\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\n };\n _proto.hide = function hide() {\n var _this2 = this;\n if (this._isTransitioning || !$__default[\"default\"](this._element).hasClass(CLASS_NAME_SHOW$6)) {\n return;\n }\n var startEvent = $__default[\"default\"].Event(EVENT_HIDE$4);\n $__default[\"default\"](this._element).trigger(startEvent);\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n var dimension = this._getDimension();\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n Util.reflow(this._element);\n $__default[\"default\"](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$6);\n var triggerArrayLength = this._triggerArray.length;\n if (triggerArrayLength > 0) {\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var selector = Util.getSelectorFromElement(trigger);\n if (selector !== null) {\n var $elem = $__default[\"default\"]([].slice.call(document.querySelectorAll(selector)));\n if (!$elem.hasClass(CLASS_NAME_SHOW$6)) {\n $__default[\"default\"](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n }\n }\n }\n }\n this.setTransitioning(true);\n var complete = function complete() {\n _this2.setTransitioning(false);\n $__default[\"default\"](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN$4);\n };\n this._element.style[dimension] = '';\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n };\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n };\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$7);\n this._config = null;\n this._parent = null;\n this._element = null;\n this._triggerArray = null;\n this._isTransitioning = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$6, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n Util.typeCheckConfig(NAME$7, config, DefaultType$6);\n return config;\n };\n _proto._getDimension = function _getDimension() {\n var hasWidth = $__default[\"default\"](this._element).hasClass(DIMENSION_WIDTH);\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n };\n _proto._getParent = function _getParent() {\n var _this3 = this;\n var parent;\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent; // It's a jQuery object\n\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0];\n }\n } else {\n parent = document.querySelector(this._config.parent);\n }\n var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n var children = [].slice.call(parent.querySelectorAll(selector));\n $__default[\"default\"](children).each(function (i, element) {\n _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n });\n return parent;\n };\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n var isOpen = $__default[\"default\"](element).hasClass(CLASS_NAME_SHOW$6);\n if (triggerArray.length) {\n $__default[\"default\"](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n }\n } // Static\n ;\n\n Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n var selector = Util.getSelectorFromElement(element);\n return selector ? document.querySelector(selector) : null;\n };\n Collapse._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default[\"default\"](this);\n var data = $element.data(DATA_KEY$7);\n var _config = _extends({}, Default$6, $element.data(), typeof config === 'object' && config ? config : {});\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n if (!data) {\n data = new Collapse(this, _config);\n $element.data(DATA_KEY$7, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n _createClass(Collapse, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$7;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$6;\n }\n }]);\n return Collapse;\n }();\n /**\n * Data API implementation\n */\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault();\n }\n var $trigger = $__default[\"default\"](this);\n var selector = Util.getSelectorFromElement(this);\n var selectors = [].slice.call(document.querySelectorAll(selector));\n $__default[\"default\"](selectors).each(function () {\n var $target = $__default[\"default\"](this);\n var data = $target.data(DATA_KEY$7);\n var config = data ? 'toggle' : $trigger.data();\n Collapse._jQueryInterface.call($target, config);\n });\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$7] = Collapse._jQueryInterface;\n $__default[\"default\"].fn[NAME$7].Constructor = Collapse;\n $__default[\"default\"].fn[NAME$7].noConflict = function () {\n $__default[\"default\"].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n return Collapse._jQueryInterface;\n };\n\n /**\n * Constants\n */\n\n var NAME$6 = 'dropdown';\n var VERSION$6 = '4.6.2';\n var DATA_KEY$6 = 'bs.dropdown';\n var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n var DATA_API_KEY$3 = '.data-api';\n var JQUERY_NO_CONFLICT$6 = $__default[\"default\"].fn[NAME$6];\n var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE$1);\n var CLASS_NAME_DISABLED$1 = 'disabled';\n var CLASS_NAME_SHOW$5 = 'show';\n var CLASS_NAME_DROPUP = 'dropup';\n var CLASS_NAME_DROPRIGHT = 'dropright';\n var CLASS_NAME_DROPLEFT = 'dropleft';\n var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n var CLASS_NAME_POSITION_STATIC = 'position-static';\n var EVENT_HIDE$3 = \"hide\" + EVENT_KEY$6;\n var EVENT_HIDDEN$3 = \"hidden\" + EVENT_KEY$6;\n var EVENT_SHOW$3 = \"show\" + EVENT_KEY$6;\n var EVENT_SHOWN$3 = \"shown\" + EVENT_KEY$6;\n var EVENT_CLICK = \"click\" + EVENT_KEY$6;\n var EVENT_CLICK_DATA_API$2 = \"click\" + EVENT_KEY$6 + DATA_API_KEY$3;\n var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY$6 + DATA_API_KEY$3;\n var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY$6 + DATA_API_KEY$3;\n var SELECTOR_DATA_TOGGLE$2 = '[data-toggle=\"dropdown\"]';\n var SELECTOR_FORM_CHILD = '.dropdown form';\n var SELECTOR_MENU = '.dropdown-menu';\n var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n var PLACEMENT_TOP = 'top-start';\n var PLACEMENT_TOPEND = 'top-end';\n var PLACEMENT_BOTTOM = 'bottom-start';\n var PLACEMENT_BOTTOMEND = 'bottom-end';\n var PLACEMENT_RIGHT = 'right-start';\n var PLACEMENT_LEFT = 'left-start';\n var Default$5 = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n };\n var DefaultType$5 = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n };\n /**\n * Class definition\n */\n\n var Dropdown = /*#__PURE__*/function () {\n function Dropdown(element, config) {\n this._element = element;\n this._popper = null;\n this._config = this._getConfig(config);\n this._menu = this._getMenuElement();\n this._inNavbar = this._detectNavbar();\n this._addEventListeners();\n } // Getters\n\n var _proto = Dropdown.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.disabled || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED$1)) {\n return;\n }\n var isActive = $__default[\"default\"](this._menu).hasClass(CLASS_NAME_SHOW$5);\n Dropdown._clearMenus();\n if (isActive) {\n return;\n }\n this.show(true);\n };\n _proto.show = function show(usePopper) {\n if (usePopper === void 0) {\n usePopper = false;\n }\n if (this._element.disabled || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED$1) || $__default[\"default\"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {\n return;\n }\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $__default[\"default\"].Event(EVENT_SHOW$3, relatedTarget);\n var parent = Dropdown._getParentFromElement(this._element);\n $__default[\"default\"](parent).trigger(showEvent);\n if (showEvent.isDefaultPrevented()) {\n return;\n } // Totally disable Popper for Dropdowns in Navbar\n\n if (!this._inNavbar && usePopper) {\n // Check for Popper dependency\n if (typeof Popper__default[\"default\"] === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n var referenceElement = this._element;\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference; // Check if it's jQuery element\n\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0];\n }\n } // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n\n if (this._config.boundary !== 'scrollParent') {\n $__default[\"default\"](parent).addClass(CLASS_NAME_POSITION_STATIC);\n }\n this._popper = new Popper__default[\"default\"](referenceElement, this._menu, this._getPopperConfig());\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement && $__default[\"default\"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $__default[\"default\"](document.body).children().on('mouseover', null, $__default[\"default\"].noop);\n }\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n $__default[\"default\"](this._menu).toggleClass(CLASS_NAME_SHOW$5);\n $__default[\"default\"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default[\"default\"].Event(EVENT_SHOWN$3, relatedTarget));\n };\n _proto.hide = function hide() {\n if (this._element.disabled || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED$1) || !$__default[\"default\"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {\n return;\n }\n var relatedTarget = {\n relatedTarget: this._element\n };\n var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$3, relatedTarget);\n var parent = Dropdown._getParentFromElement(this._element);\n $__default[\"default\"](parent).trigger(hideEvent);\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n if (this._popper) {\n this._popper.destroy();\n }\n $__default[\"default\"](this._menu).toggleClass(CLASS_NAME_SHOW$5);\n $__default[\"default\"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default[\"default\"].Event(EVENT_HIDDEN$3, relatedTarget));\n };\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$6);\n $__default[\"default\"](this._element).off(EVENT_KEY$6);\n this._element = null;\n this._menu = null;\n if (this._popper !== null) {\n this._popper.destroy();\n this._popper = null;\n }\n };\n _proto.update = function update() {\n this._inNavbar = this._detectNavbar();\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Private\n ;\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this = this;\n $__default[\"default\"](this._element).on(EVENT_CLICK, function (event) {\n event.preventDefault();\n event.stopPropagation();\n _this.toggle();\n });\n };\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, this.constructor.Default, $__default[\"default\"](this._element).data(), config);\n Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n return config;\n };\n _proto._getMenuElement = function _getMenuElement() {\n if (!this._menu) {\n var parent = Dropdown._getParentFromElement(this._element);\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU);\n }\n }\n return this._menu;\n };\n _proto._getPlacement = function _getPlacement() {\n var $parentDropdown = $__default[\"default\"](this._element.parentNode);\n var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $__default[\"default\"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT;\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT;\n } else if ($__default[\"default\"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND;\n }\n return placement;\n };\n _proto._detectNavbar = function _detectNavbar() {\n return $__default[\"default\"](this._element).closest('.navbar').length > 0;\n };\n _proto._getOffset = function _getOffset() {\n var _this2 = this;\n var offset = {};\n if (typeof this._config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element));\n return data;\n };\n } else {\n offset.offset = this._config.offset;\n }\n return offset;\n };\n _proto._getPopperConfig = function _getPopperConfig() {\n var popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n };\n }\n return _extends({}, popperConfig, this._config.popperConfig);\n } // Static\n ;\n\n Dropdown._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default[\"default\"](this).data(DATA_KEY$6);\n var _config = typeof config === 'object' ? config : null;\n if (!data) {\n data = new Dropdown(this, _config);\n $__default[\"default\"](this).data(DATA_KEY$6, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n Dropdown._clearMenus = function _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return;\n }\n var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));\n for (var i = 0, len = toggles.length; i < len; i++) {\n var parent = Dropdown._getParentFromElement(toggles[i]);\n var context = $__default[\"default\"](toggles[i]).data(DATA_KEY$6);\n var relatedTarget = {\n relatedTarget: toggles[i]\n };\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n if (!context) {\n continue;\n }\n var dropdownMenu = context._menu;\n if (!$__default[\"default\"](parent).hasClass(CLASS_NAME_SHOW$5)) {\n continue;\n }\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default[\"default\"].contains(parent, event.target)) {\n continue;\n }\n var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$3, relatedTarget);\n $__default[\"default\"](parent).trigger(hideEvent);\n if (hideEvent.isDefaultPrevented()) {\n continue;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $__default[\"default\"](document.body).children().off('mouseover', null, $__default[\"default\"].noop);\n }\n toggles[i].setAttribute('aria-expanded', 'false');\n if (context._popper) {\n context._popper.destroy();\n }\n $__default[\"default\"](dropdownMenu).removeClass(CLASS_NAME_SHOW$5);\n $__default[\"default\"](parent).removeClass(CLASS_NAME_SHOW$5).trigger($__default[\"default\"].Event(EVENT_HIDDEN$3, relatedTarget));\n }\n };\n Dropdown._getParentFromElement = function _getParentFromElement(element) {\n var parent;\n var selector = Util.getSelectorFromElement(element);\n if (selector) {\n parent = document.querySelector(selector);\n }\n return parent || element.parentNode;\n } // eslint-disable-next-line complexity\n ;\n\n Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE$1 && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default[\"default\"](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return;\n }\n if (this.disabled || $__default[\"default\"](this).hasClass(CLASS_NAME_DISABLED$1)) {\n return;\n }\n var parent = Dropdown._getParentFromElement(this);\n var isActive = $__default[\"default\"](parent).hasClass(CLASS_NAME_SHOW$5);\n if (!isActive && event.which === ESCAPE_KEYCODE$1) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n if (!isActive || event.which === ESCAPE_KEYCODE$1 || event.which === SPACE_KEYCODE) {\n if (event.which === ESCAPE_KEYCODE$1) {\n $__default[\"default\"](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');\n }\n $__default[\"default\"](this).trigger('click');\n return;\n }\n var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n return $__default[\"default\"](item).is(':visible');\n });\n if (items.length === 0) {\n return;\n }\n var index = items.indexOf(event.target);\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\n // Up\n index--;\n }\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n // Down\n index++;\n }\n if (index < 0) {\n index = 0;\n }\n items[index].focus();\n };\n _createClass(Dropdown, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$6;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$5;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$5;\n }\n }]);\n return Dropdown;\n }();\n /**\n * Data API implementation\n */\n\n $__default[\"default\"](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$2 + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n event.preventDefault();\n event.stopPropagation();\n Dropdown._jQueryInterface.call($__default[\"default\"](this), 'toggle');\n }).on(EVENT_CLICK_DATA_API$2, SELECTOR_FORM_CHILD, function (e) {\n e.stopPropagation();\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$6] = Dropdown._jQueryInterface;\n $__default[\"default\"].fn[NAME$6].Constructor = Dropdown;\n $__default[\"default\"].fn[NAME$6].noConflict = function () {\n $__default[\"default\"].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n return Dropdown._jQueryInterface;\n };\n\n /**\n * Constants\n */\n\n var NAME$5 = 'modal';\n var VERSION$5 = '4.6.2';\n var DATA_KEY$5 = 'bs.modal';\n var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n var DATA_API_KEY$2 = '.data-api';\n var JQUERY_NO_CONFLICT$5 = $__default[\"default\"].fn[NAME$5];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n var CLASS_NAME_BACKDROP = 'modal-backdrop';\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE$4 = 'fade';\n var CLASS_NAME_SHOW$4 = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var EVENT_HIDE$2 = \"hide\" + EVENT_KEY$5;\n var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY$5;\n var EVENT_HIDDEN$2 = \"hidden\" + EVENT_KEY$5;\n var EVENT_SHOW$2 = \"show\" + EVENT_KEY$5;\n var EVENT_SHOWN$2 = \"shown\" + EVENT_KEY$5;\n var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY$5;\n var EVENT_RESIZE = \"resize\" + EVENT_KEY$5;\n var EVENT_CLICK_DISMISS$1 = \"click.dismiss\" + EVENT_KEY$5;\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY$5;\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY$5;\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY$5;\n var EVENT_CLICK_DATA_API$1 = \"click\" + EVENT_KEY$5 + DATA_API_KEY$2;\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE$1 = '[data-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS$1 = '[data-dismiss=\"modal\"]';\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n var Default$4 = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n };\n var DefaultType$4 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n };\n /**\n * Class definition\n */\n\n var Modal = /*#__PURE__*/function () {\n function Modal(element, config) {\n this._config = this._getConfig(config);\n this._element = element;\n this._dialog = element.querySelector(SELECTOR_DIALOG);\n this._backdrop = null;\n this._isShown = false;\n this._isBodyOverflowing = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n this._scrollbarWidth = 0;\n } // Getters\n\n var _proto = Modal.prototype;\n\n // Public\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n _proto.show = function show(relatedTarget) {\n var _this = this;\n if (this._isShown || this._isTransitioning) {\n return;\n }\n var showEvent = $__default[\"default\"].Event(EVENT_SHOW$2, {\n relatedTarget: relatedTarget\n });\n $__default[\"default\"](this._element).trigger(showEvent);\n if (showEvent.isDefaultPrevented()) {\n return;\n }\n this._isShown = true;\n if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4)) {\n this._isTransitioning = true;\n }\n this._checkScrollbar();\n this._setScrollbar();\n this._adjustDialog();\n this._setEscapeEvent();\n this._setResizeEvent();\n $__default[\"default\"](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function (event) {\n return _this.hide(event);\n });\n $__default[\"default\"](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n $__default[\"default\"](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n if ($__default[\"default\"](event.target).is(_this._element)) {\n _this._ignoreBackdropClick = true;\n }\n });\n });\n this._showBackdrop(function () {\n return _this._showElement(relatedTarget);\n });\n };\n _proto.hide = function hide(event) {\n var _this2 = this;\n if (event) {\n event.preventDefault();\n }\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$2);\n $__default[\"default\"](this._element).trigger(hideEvent);\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n this._isShown = false;\n var transition = $__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4);\n if (transition) {\n this._isTransitioning = true;\n }\n this._setEscapeEvent();\n this._setResizeEvent();\n $__default[\"default\"](document).off(EVENT_FOCUSIN);\n $__default[\"default\"](this._element).removeClass(CLASS_NAME_SHOW$4);\n $__default[\"default\"](this._element).off(EVENT_CLICK_DISMISS$1);\n $__default[\"default\"](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, function (event) {\n return _this2._hideModal(event);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n };\n _proto.dispose = function dispose() {\n [window, this._element, this._dialog].forEach(function (htmlElement) {\n return $__default[\"default\"](htmlElement).off(EVENT_KEY$5);\n });\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n\n $__default[\"default\"](document).off(EVENT_FOCUSIN);\n $__default[\"default\"].removeData(this._element, DATA_KEY$5);\n this._config = null;\n this._element = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._isTransitioning = null;\n this._scrollbarWidth = null;\n };\n _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$4, config);\n Util.typeCheckConfig(NAME$5, config, DefaultType$4);\n return config;\n };\n _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n var _this3 = this;\n var hideEventPrevented = $__default[\"default\"].Event(EVENT_HIDE_PREVENTED);\n $__default[\"default\"](this._element).trigger(hideEventPrevented);\n if (hideEventPrevented.isDefaultPrevented()) {\n return;\n }\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n this._element.classList.add(CLASS_NAME_STATIC);\n var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n $__default[\"default\"](this._element).off(Util.TRANSITION_END);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, function () {\n _this3._element.classList.remove(CLASS_NAME_STATIC);\n if (!isModalOverflowing) {\n $__default[\"default\"](_this3._element).one(Util.TRANSITION_END, function () {\n _this3._element.style.overflowY = '';\n }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n }\n }).emulateTransitionEnd(modalTransitionDuration);\n this._element.focus();\n };\n _proto._showElement = function _showElement(relatedTarget) {\n var _this4 = this;\n var transition = $__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4);\n var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n if ($__default[\"default\"](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0;\n } else {\n this._element.scrollTop = 0;\n }\n if (transition) {\n Util.reflow(this._element);\n }\n $__default[\"default\"](this._element).addClass(CLASS_NAME_SHOW$4);\n if (this._config.focus) {\n this._enforceFocus();\n }\n var shownEvent = $__default[\"default\"].Event(EVENT_SHOWN$2, {\n relatedTarget: relatedTarget\n });\n var transitionComplete = function transitionComplete() {\n if (_this4._config.focus) {\n _this4._element.focus();\n }\n _this4._isTransitioning = false;\n $__default[\"default\"](_this4._element).trigger(shownEvent);\n };\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n $__default[\"default\"](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n };\n _proto._enforceFocus = function _enforceFocus() {\n var _this5 = this;\n $__default[\"default\"](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, function (event) {\n if (document !== event.target && _this5._element !== event.target && $__default[\"default\"](_this5._element).has(event.target).length === 0) {\n _this5._element.focus();\n }\n });\n };\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this6 = this;\n if (this._isShown) {\n $__default[\"default\"](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault();\n _this6.hide();\n } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {\n _this6._triggerBackdropTransition();\n }\n });\n } else if (!this._isShown) {\n $__default[\"default\"](this._element).off(EVENT_KEYDOWN_DISMISS);\n }\n };\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this7 = this;\n if (this._isShown) {\n $__default[\"default\"](window).on(EVENT_RESIZE, function (event) {\n return _this7.handleUpdate(event);\n });\n } else {\n $__default[\"default\"](window).off(EVENT_RESIZE);\n }\n };\n _proto._hideModal = function _hideModal() {\n var _this8 = this;\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n this._isTransitioning = false;\n this._showBackdrop(function () {\n $__default[\"default\"](document.body).removeClass(CLASS_NAME_OPEN);\n _this8._resetAdjustments();\n _this8._resetScrollbar();\n $__default[\"default\"](_this8._element).trigger(EVENT_HIDDEN$2);\n });\n };\n _proto._removeBackdrop = function _removeBackdrop() {\n if (this._backdrop) {\n $__default[\"default\"](this._backdrop).remove();\n this._backdrop = null;\n }\n };\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this9 = this;\n var animate = $__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4) ? CLASS_NAME_FADE$4 : '';\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = CLASS_NAME_BACKDROP;\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n $__default[\"default\"](this._backdrop).appendTo(document.body);\n $__default[\"default\"](this._element).on(EVENT_CLICK_DISMISS$1, function (event) {\n if (_this9._ignoreBackdropClick) {\n _this9._ignoreBackdropClick = false;\n return;\n }\n if (event.target !== event.currentTarget) {\n return;\n }\n if (_this9._config.backdrop === 'static') {\n _this9._triggerBackdropTransition();\n } else {\n _this9.hide();\n }\n });\n if (animate) {\n Util.reflow(this._backdrop);\n }\n $__default[\"default\"](this._backdrop).addClass(CLASS_NAME_SHOW$4);\n if (!callback) {\n return;\n }\n if (!animate) {\n callback();\n return;\n }\n var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n $__default[\"default\"](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $__default[\"default\"](this._backdrop).removeClass(CLASS_NAME_SHOW$4);\n var callbackRemove = function callbackRemove() {\n _this9._removeBackdrop();\n if (callback) {\n callback();\n }\n };\n if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4)) {\n var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n $__default[\"default\"](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n ;\n\n _proto._adjustDialog = function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n }\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n }\n };\n _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n _proto._setScrollbar = function _setScrollbar() {\n var _this10 = this;\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n $__default[\"default\"](fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = $__default[\"default\"](element).css('padding-right');\n $__default[\"default\"](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n }); // Adjust sticky content margin\n\n $__default[\"default\"](stickyContent).each(function (index, element) {\n var actualMargin = element.style.marginRight;\n var calculatedMargin = $__default[\"default\"](element).css('margin-right');\n $__default[\"default\"](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n }); // Adjust body padding\n\n var actualPadding = document.body.style.paddingRight;\n var calculatedPadding = $__default[\"default\"](document.body).css('padding-right');\n $__default[\"default\"](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n }\n $__default[\"default\"](document.body).addClass(CLASS_NAME_OPEN);\n };\n _proto._resetScrollbar = function _resetScrollbar() {\n // Restore fixed content padding\n var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n $__default[\"default\"](fixedContent).each(function (index, element) {\n var padding = $__default[\"default\"](element).data('padding-right');\n $__default[\"default\"](element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n }); // Restore sticky content\n\n var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n $__default[\"default\"](elements).each(function (index, element) {\n var margin = $__default[\"default\"](element).data('margin-right');\n if (typeof margin !== 'undefined') {\n $__default[\"default\"](element).css('margin-right', margin).removeData('margin-right');\n }\n }); // Restore body padding\n\n var padding = $__default[\"default\"](document.body).data('padding-right');\n $__default[\"default\"](document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n };\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n } // Static\n ;\n\n Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = $__default[\"default\"](this).data(DATA_KEY$5);\n var _config = _extends({}, Default$4, $__default[\"default\"](this).data(), typeof config === 'object' && config ? config : {});\n if (!data) {\n data = new Modal(this, _config);\n $__default[\"default\"](this).data(DATA_KEY$5, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n };\n _createClass(Modal, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$5;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$4;\n }\n }]);\n return Modal;\n }();\n /**\n * Data API implementation\n */\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n var _this11 = this;\n var target;\n var selector = Util.getSelectorFromElement(this);\n if (selector) {\n target = document.querySelector(selector);\n }\n var config = $__default[\"default\"](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default[\"default\"](target).data(), $__default[\"default\"](this).data());\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n var $target = $__default[\"default\"](target).one(EVENT_SHOW$2, function (showEvent) {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return;\n }\n $target.one(EVENT_HIDDEN$2, function () {\n if ($__default[\"default\"](_this11).is(':visible')) {\n _this11.focus();\n }\n });\n });\n Modal._jQueryInterface.call($__default[\"default\"](target), config, this);\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$5] = Modal._jQueryInterface;\n $__default[\"default\"].fn[NAME$5].Constructor = Modal;\n $__default[\"default\"].fn[NAME$5].noConflict = function () {\n $__default[\"default\"].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n return Modal._jQueryInterface;\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));\n }\n return true;\n }\n var regExp = allowedAttributeList.filter(function (attrRegex) {\n return attrRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true;\n }\n }\n return false;\n }\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml;\n }\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n var whitelistKeys = Object.keys(whiteList);\n var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n var _loop = function _loop(i, len) {\n var el = elements[i];\n var elName = el.nodeName.toLowerCase();\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el);\n return \"continue\";\n }\n var attributeList = [].slice.call(el.attributes); // eslint-disable-next-line unicorn/prefer-spread\n\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n attributeList.forEach(function (attr) {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n });\n };\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret = _loop(i);\n if (_ret === \"continue\") continue;\n }\n return createdDocument.body.innerHTML;\n }\n\n /**\n * Constants\n */\n\n var NAME$4 = 'tooltip';\n var VERSION$4 = '4.6.2';\n var DATA_KEY$4 = 'bs.tooltip';\n var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n var JQUERY_NO_CONFLICT$4 = $__default[\"default\"].fn[NAME$4];\n var CLASS_PREFIX$1 = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n var CLASS_NAME_FADE$3 = 'fade';\n var CLASS_NAME_SHOW$3 = 'show';\n var HOVER_STATE_SHOW = 'show';\n var HOVER_STATE_OUT = 'out';\n var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n var SELECTOR_ARROW = '.arrow';\n var TRIGGER_HOVER = 'hover';\n var TRIGGER_FOCUS = 'focus';\n var TRIGGER_CLICK = 'click';\n var TRIGGER_MANUAL = 'manual';\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n };\n var Default$3 = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n };\n var DefaultType$3 = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n };\n var Event$1 = {\n HIDE: \"hide\" + EVENT_KEY$4,\n HIDDEN: \"hidden\" + EVENT_KEY$4,\n SHOW: \"show\" + EVENT_KEY$4,\n SHOWN: \"shown\" + EVENT_KEY$4,\n INSERTED: \"inserted\" + EVENT_KEY$4,\n CLICK: \"click\" + EVENT_KEY$4,\n FOCUSIN: \"focusin\" + EVENT_KEY$4,\n FOCUSOUT: \"focusout\" + EVENT_KEY$4,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$4,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$4\n };\n /**\n * Class definition\n */\n\n var Tooltip = /*#__PURE__*/function () {\n function Tooltip(element, config) {\n if (typeof Popper__default[\"default\"] === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n } // Private\n\n this._isEnabled = true;\n this._timeout = 0;\n this._hoverState = '';\n this._activeTrigger = {};\n this._popper = null; // Protected\n\n this.element = element;\n this.config = this._getConfig(config);\n this.tip = null;\n this._setListeners();\n } // Getters\n\n var _proto = Tooltip.prototype;\n\n // Public\n _proto.enable = function enable() {\n this._isEnabled = true;\n };\n _proto.disable = function disable() {\n this._isEnabled = false;\n };\n _proto.toggleEnabled = function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n };\n _proto.toggle = function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n if (event) {\n var dataKey = this.constructor.DATA_KEY;\n var context = $__default[\"default\"](event.currentTarget).data(dataKey);\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default[\"default\"](event.currentTarget).data(dataKey, context);\n }\n context._activeTrigger.click = !context._activeTrigger.click;\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if ($__default[\"default\"](this.getTipElement()).hasClass(CLASS_NAME_SHOW$3)) {\n this._leave(null, this);\n return;\n }\n this._enter(null, this);\n }\n };\n _proto.dispose = function dispose() {\n clearTimeout(this._timeout);\n $__default[\"default\"].removeData(this.element, this.constructor.DATA_KEY);\n $__default[\"default\"](this.element).off(this.constructor.EVENT_KEY);\n $__default[\"default\"](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);\n if (this.tip) {\n $__default[\"default\"](this.tip).remove();\n }\n this._isEnabled = null;\n this._timeout = null;\n this._hoverState = null;\n this._activeTrigger = null;\n if (this._popper) {\n this._popper.destroy();\n }\n this._popper = null;\n this.element = null;\n this.config = null;\n this.tip = null;\n };\n _proto.show = function show() {\n var _this = this;\n if ($__default[\"default\"](this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements');\n }\n var showEvent = $__default[\"default\"].Event(this.constructor.Event.SHOW);\n if (this.isWithContent() && this._isEnabled) {\n $__default[\"default\"](this.element).trigger(showEvent);\n var shadowRoot = Util.findShadowRoot(this.element);\n var isInTheDom = $__default[\"default\"].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return;\n }\n var tip = this.getTipElement();\n var tipId = Util.getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n this.element.setAttribute('aria-describedby', tipId);\n this.setContent();\n if (this.config.animation) {\n $__default[\"default\"](tip).addClass(CLASS_NAME_FADE$3);\n }\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n var attachment = this._getAttachment(placement);\n this.addAttachmentClass(attachment);\n var container = this._getContainer();\n $__default[\"default\"](tip).data(this.constructor.DATA_KEY, this);\n if (!$__default[\"default\"].contains(this.element.ownerDocument.documentElement, this.tip)) {\n $__default[\"default\"](tip).appendTo(container);\n }\n $__default[\"default\"](this.element).trigger(this.constructor.Event.INSERTED);\n this._popper = new Popper__default[\"default\"](this.element, tip, this._getPopperConfig(attachment));\n $__default[\"default\"](tip).addClass(CLASS_NAME_SHOW$3);\n $__default[\"default\"](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement) {\n $__default[\"default\"](document.body).children().on('mouseover', null, $__default[\"default\"].noop);\n }\n var complete = function complete() {\n if (_this.config.animation) {\n _this._fixTransition();\n }\n var prevHoverState = _this._hoverState;\n _this._hoverState = null;\n $__default[\"default\"](_this.element).trigger(_this.constructor.Event.SHOWN);\n if (prevHoverState === HOVER_STATE_OUT) {\n _this._leave(null, _this);\n }\n };\n if ($__default[\"default\"](this.tip).hasClass(CLASS_NAME_FADE$3)) {\n var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n $__default[\"default\"](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n }\n };\n _proto.hide = function hide(callback) {\n var _this2 = this;\n var tip = this.getTipElement();\n var hideEvent = $__default[\"default\"].Event(this.constructor.Event.HIDE);\n var complete = function complete() {\n if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip);\n }\n _this2._cleanTipClass();\n _this2.element.removeAttribute('aria-describedby');\n $__default[\"default\"](_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n if (_this2._popper !== null) {\n _this2._popper.destroy();\n }\n if (callback) {\n callback();\n }\n };\n $__default[\"default\"](this.element).trigger(hideEvent);\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n $__default[\"default\"](tip).removeClass(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $__default[\"default\"](document.body).children().off('mouseover', null, $__default[\"default\"].noop);\n }\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n if ($__default[\"default\"](this.tip).hasClass(CLASS_NAME_FADE$3)) {\n var transitionDuration = Util.getTransitionDurationFromElement(tip);\n $__default[\"default\"](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n this._hoverState = '';\n };\n _proto.update = function update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Protected\n ;\n\n _proto.isWithContent = function isWithContent() {\n return Boolean(this.getTitle());\n };\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $__default[\"default\"](this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n };\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $__default[\"default\"](this.config.template)[0];\n return this.tip;\n };\n _proto.setContent = function setContent() {\n var tip = this.getTipElement();\n this.setElementContent($__default[\"default\"](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());\n $__default[\"default\"](tip).removeClass(CLASS_NAME_FADE$3 + \" \" + CLASS_NAME_SHOW$3);\n };\n _proto.setElementContent = function setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$__default[\"default\"](content).parent().is($element)) {\n $element.empty().append(content);\n }\n } else {\n $element.text($__default[\"default\"](content).text());\n }\n return;\n }\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n }\n $element.html(content);\n } else {\n $element.text(content);\n }\n };\n _proto.getTitle = function getTitle() {\n var title = this.element.getAttribute('data-original-title');\n if (!title) {\n title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n }\n return title;\n } // Private\n ;\n\n _proto._getPopperConfig = function _getPopperConfig(attachment) {\n var _this3 = this;\n var defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: function onCreate(data) {\n if (data.originalPlacement !== data.placement) {\n _this3._handlePopperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n return _this3._handlePopperPlacementChange(data);\n }\n };\n return _extends({}, defaultBsConfig, this.config.popperConfig);\n };\n _proto._getOffset = function _getOffset() {\n var _this4 = this;\n var offset = {};\n if (typeof this.config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element));\n return data;\n };\n } else {\n offset.offset = this.config.offset;\n }\n return offset;\n };\n _proto._getContainer = function _getContainer() {\n if (this.config.container === false) {\n return document.body;\n }\n if (Util.isElement(this.config.container)) {\n return $__default[\"default\"](this.config.container);\n }\n return $__default[\"default\"](document).find(this.config.container);\n };\n _proto._getAttachment = function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n };\n _proto._setListeners = function _setListeners() {\n var _this5 = this;\n var triggers = this.config.trigger.split(' ');\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n $__default[\"default\"](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {\n return _this5.toggle(event);\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;\n var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;\n $__default[\"default\"](_this5.element).on(eventIn, _this5.config.selector, function (event) {\n return _this5._enter(event);\n }).on(eventOut, _this5.config.selector, function (event) {\n return _this5._leave(event);\n });\n }\n });\n this._hideModalHandler = function () {\n if (_this5.element) {\n _this5.hide();\n }\n };\n $__default[\"default\"](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);\n if (this.config.selector) {\n this.config = _extends({}, this.config, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n };\n _proto._fixTitle = function _fixTitle() {\n var titleType = typeof this.element.getAttribute('data-original-title');\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n this.element.setAttribute('title', '');\n }\n };\n _proto._enter = function _enter(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $__default[\"default\"](event.currentTarget).data(dataKey);\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default[\"default\"](event.currentTarget).data(dataKey, context);\n }\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n if ($__default[\"default\"](context.getTipElement()).hasClass(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n if (!context.config.delay || !context.config.delay.show) {\n context.show();\n return;\n }\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context.config.delay.show);\n };\n _proto._leave = function _leave(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $__default[\"default\"](event.currentTarget).data(dataKey);\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default[\"default\"](event.currentTarget).data(dataKey, context);\n }\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n }\n if (context._isWithActiveTrigger()) {\n return;\n }\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide();\n return;\n }\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context.config.delay.hide);\n };\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n return false;\n };\n _proto._getConfig = function _getConfig(config) {\n var dataAttributes = $__default[\"default\"](this.element).data();\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr];\n }\n });\n config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n }\n return config;\n };\n _proto._getDelegateConfig = function _getDelegateConfig() {\n var config = {};\n if (this.config) {\n for (var key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key];\n }\n }\n }\n return config;\n };\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $__default[\"default\"](this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''));\n }\n };\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper;\n this._cleanTipClass();\n this.addAttachmentClass(this._getAttachment(popperData.placement));\n };\n _proto._fixTransition = function _fixTransition() {\n var tip = this.getTipElement();\n var initConfigAnimation = this.config.animation;\n if (tip.getAttribute('x-placement') !== null) {\n return;\n }\n $__default[\"default\"](tip).removeClass(CLASS_NAME_FADE$3);\n this.config.animation = false;\n this.hide();\n this.show();\n this.config.animation = initConfigAnimation;\n } // Static\n ;\n\n Tooltip._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default[\"default\"](this);\n var data = $element.data(DATA_KEY$4);\n var _config = typeof config === 'object' && config;\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n if (!data) {\n data = new Tooltip(this, _config);\n $element.data(DATA_KEY$4, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n _createClass(Tooltip, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$4;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$3;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$4;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$4;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$1;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$4;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$3;\n }\n }]);\n return Tooltip;\n }();\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$4] = Tooltip._jQueryInterface;\n $__default[\"default\"].fn[NAME$4].Constructor = Tooltip;\n $__default[\"default\"].fn[NAME$4].noConflict = function () {\n $__default[\"default\"].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n return Tooltip._jQueryInterface;\n };\n\n /**\n * Constants\n */\n\n var NAME$3 = 'popover';\n var VERSION$3 = '4.6.2';\n var DATA_KEY$3 = 'bs.popover';\n var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n var JQUERY_NO_CONFLICT$3 = $__default[\"default\"].fn[NAME$3];\n var CLASS_PREFIX = 'bs-popover';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var CLASS_NAME_FADE$2 = 'fade';\n var CLASS_NAME_SHOW$2 = 'show';\n var SELECTOR_TITLE = '.popover-header';\n var SELECTOR_CONTENT = '.popover-body';\n var Default$2 = _extends({}, Tooltip.Default, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n });\n var DefaultType$2 = _extends({}, Tooltip.DefaultType, {\n content: '(string|element|function)'\n });\n var Event = {\n HIDE: \"hide\" + EVENT_KEY$3,\n HIDDEN: \"hidden\" + EVENT_KEY$3,\n SHOW: \"show\" + EVENT_KEY$3,\n SHOWN: \"shown\" + EVENT_KEY$3,\n INSERTED: \"inserted\" + EVENT_KEY$3,\n CLICK: \"click\" + EVENT_KEY$3,\n FOCUSIN: \"focusin\" + EVENT_KEY$3,\n FOCUSOUT: \"focusout\" + EVENT_KEY$3,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$3,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$3\n };\n /**\n * Class definition\n */\n\n var Popover = /*#__PURE__*/function (_Tooltip) {\n _inheritsLoose(Popover, _Tooltip);\n function Popover() {\n return _Tooltip.apply(this, arguments) || this;\n }\n var _proto = Popover.prototype;\n\n // Overrides\n _proto.isWithContent = function isWithContent() {\n return this.getTitle() || this._getContent();\n };\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $__default[\"default\"](this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n };\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $__default[\"default\"](this.config.template)[0];\n return this.tip;\n };\n _proto.setContent = function setContent() {\n var $tip = $__default[\"default\"](this.getTipElement()); // We use append for html objects to maintain js events\n\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());\n var content = this._getContent();\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n this.setElementContent($tip.find(SELECTOR_CONTENT), content);\n $tip.removeClass(CLASS_NAME_FADE$2 + \" \" + CLASS_NAME_SHOW$2);\n } // Private\n ;\n\n _proto._getContent = function _getContent() {\n return this.element.getAttribute('data-content') || this.config.content;\n };\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $__default[\"default\"](this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''));\n }\n } // Static\n ;\n\n Popover._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default[\"default\"](this).data(DATA_KEY$3);\n var _config = typeof config === 'object' ? config : null;\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n if (!data) {\n data = new Popover(this, _config);\n $__default[\"default\"](this).data(DATA_KEY$3, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n _createClass(Popover, null, [{\n key: \"VERSION\",\n get:\n // Getters\n function get() {\n return VERSION$3;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$2;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$3;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$3;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$3;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$2;\n }\n }]);\n return Popover;\n }(Tooltip);\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$3] = Popover._jQueryInterface;\n $__default[\"default\"].fn[NAME$3].Constructor = Popover;\n $__default[\"default\"].fn[NAME$3].noConflict = function () {\n $__default[\"default\"].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n return Popover._jQueryInterface;\n };\n\n /**\n * Constants\n */\n\n var NAME$2 = 'scrollspy';\n var VERSION$2 = '4.6.2';\n var DATA_KEY$2 = 'bs.scrollspy';\n var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n var DATA_API_KEY$1 = '.data-api';\n var JQUERY_NO_CONFLICT$2 = $__default[\"default\"].fn[NAME$2];\n var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n var CLASS_NAME_ACTIVE$1 = 'active';\n var EVENT_ACTIVATE = \"activate\" + EVENT_KEY$2;\n var EVENT_SCROLL = \"scroll\" + EVENT_KEY$2;\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY$2 + DATA_API_KEY$1;\n var METHOD_OFFSET = 'offset';\n var METHOD_POSITION = 'position';\n var SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\n var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\n var SELECTOR_NAV_LINKS = '.nav-link';\n var SELECTOR_NAV_ITEMS = '.nav-item';\n var SELECTOR_LIST_ITEMS = '.list-group-item';\n var SELECTOR_DROPDOWN$1 = '.dropdown';\n var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\n var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n var Default$1 = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType$1 = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n /**\n * Class definition\n */\n\n var ScrollSpy = /*#__PURE__*/function () {\n function ScrollSpy(element, config) {\n var _this = this;\n this._element = element;\n this._scrollElement = element.tagName === 'BODY' ? window : element;\n this._config = this._getConfig(config);\n this._selector = this._config.target + \" \" + SELECTOR_NAV_LINKS + \",\" + (this._config.target + \" \" + SELECTOR_LIST_ITEMS + \",\") + (this._config.target + \" \" + SELECTOR_DROPDOWN_ITEMS);\n this._offsets = [];\n this._targets = [];\n this._activeTarget = null;\n this._scrollHeight = 0;\n $__default[\"default\"](this._scrollElement).on(EVENT_SCROLL, function (event) {\n return _this._process(event);\n });\n this.refresh();\n this._process();\n } // Getters\n\n var _proto = ScrollSpy.prototype;\n\n // Public\n _proto.refresh = function refresh() {\n var _this2 = this;\n var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = [].slice.call(document.querySelectorAll(this._selector));\n targets.map(function (element) {\n var target;\n var targetSelector = Util.getSelectorFromElement(element);\n if (targetSelector) {\n target = document.querySelector(targetSelector);\n }\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [$__default[\"default\"](target)[offsetMethod]().top + offsetBase, targetSelector];\n }\n }\n return null;\n }).filter(Boolean).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this2._offsets.push(item[0]);\n _this2._targets.push(item[1]);\n });\n };\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$2);\n $__default[\"default\"](this._scrollElement).off(EVENT_KEY$2);\n this._element = null;\n this._scrollElement = null;\n this._config = null;\n this._selector = null;\n this._offsets = null;\n this._targets = null;\n this._activeTarget = null;\n this._scrollHeight = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$1, typeof config === 'object' && config ? config : {});\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n var id = $__default[\"default\"](config.target).attr('id');\n if (!id) {\n id = Util.getUID(NAME$2);\n $__default[\"default\"](config.target).attr('id', id);\n }\n config.target = \"#\" + id;\n }\n Util.typeCheckConfig(NAME$2, config, DefaultType$1);\n return config;\n };\n _proto._getScrollTop = function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n };\n _proto._getScrollHeight = function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n };\n _proto._getOffsetHeight = function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n };\n _proto._process = function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n var scrollHeight = this._getScrollHeight();\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n return;\n }\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n this._clear();\n return;\n }\n for (var i = this._offsets.length; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n };\n _proto._activate = function _activate(target) {\n this._activeTarget = target;\n this._clear();\n var queries = this._selector.split(',').map(function (selector) {\n return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n });\n var $link = $__default[\"default\"]([].slice.call(document.querySelectorAll(queries.join(','))));\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN$1).find(SELECTOR_DROPDOWN_TOGGLE$1).addClass(CLASS_NAME_ACTIVE$1);\n $link.addClass(CLASS_NAME_ACTIVE$1);\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE$1); // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n $link.parents(SELECTOR_NAV_LIST_GROUP$1).prev(SELECTOR_NAV_LINKS + \", \" + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE$1); // Handle special case when .nav-link is inside .nav-item\n\n $link.parents(SELECTOR_NAV_LIST_GROUP$1).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$1);\n }\n $__default[\"default\"](this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n });\n };\n _proto._clear = function _clear() {\n [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {\n return node.classList.contains(CLASS_NAME_ACTIVE$1);\n }).forEach(function (node) {\n return node.classList.remove(CLASS_NAME_ACTIVE$1);\n });\n } // Static\n ;\n\n ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default[\"default\"](this).data(DATA_KEY$2);\n var _config = typeof config === 'object' && config;\n if (!data) {\n data = new ScrollSpy(this, _config);\n $__default[\"default\"](this).data(DATA_KEY$2, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n _createClass(ScrollSpy, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$2;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$1;\n }\n }]);\n return ScrollSpy;\n }();\n /**\n * Data API implementation\n */\n\n $__default[\"default\"](window).on(EVENT_LOAD_DATA_API, function () {\n var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));\n var scrollSpysLength = scrollSpys.length;\n for (var i = scrollSpysLength; i--;) {\n var $spy = $__default[\"default\"](scrollSpys[i]);\n ScrollSpy._jQueryInterface.call($spy, $spy.data());\n }\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$2] = ScrollSpy._jQueryInterface;\n $__default[\"default\"].fn[NAME$2].Constructor = ScrollSpy;\n $__default[\"default\"].fn[NAME$2].noConflict = function () {\n $__default[\"default\"].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n return ScrollSpy._jQueryInterface;\n };\n\n /**\n * Constants\n */\n\n var NAME$1 = 'tab';\n var VERSION$1 = '4.6.2';\n var DATA_KEY$1 = 'bs.tab';\n var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT$1 = $__default[\"default\"].fn[NAME$1];\n var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_DISABLED = 'disabled';\n var CLASS_NAME_FADE$1 = 'fade';\n var CLASS_NAME_SHOW$1 = 'show';\n var EVENT_HIDE$1 = \"hide\" + EVENT_KEY$1;\n var EVENT_HIDDEN$1 = \"hidden\" + EVENT_KEY$1;\n var EVENT_SHOW$1 = \"show\" + EVENT_KEY$1;\n var EVENT_SHOWN$1 = \"shown\" + EVENT_KEY$1;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY$1 + DATA_API_KEY;\n var SELECTOR_DROPDOWN = '.dropdown';\n var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n var SELECTOR_ACTIVE = '.active';\n var SELECTOR_ACTIVE_UL = '> li > .active';\n var SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]';\n var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';\n /**\n * Class definition\n */\n\n var Tab = /*#__PURE__*/function () {\n function Tab(element) {\n this._element = element;\n } // Getters\n\n var _proto = Tab.prototype;\n\n // Public\n _proto.show = function show() {\n var _this = this;\n if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default[\"default\"](this._element).hasClass(CLASS_NAME_ACTIVE) || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED) || this._element.hasAttribute('disabled')) {\n return;\n }\n var target;\n var previous;\n var listElement = $__default[\"default\"](this._element).closest(SELECTOR_NAV_LIST_GROUP)[0];\n var selector = Util.getSelectorFromElement(this._element);\n if (listElement) {\n var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;\n previous = $__default[\"default\"].makeArray($__default[\"default\"](listElement).find(itemSelector));\n previous = previous[previous.length - 1];\n }\n var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$1, {\n relatedTarget: this._element\n });\n var showEvent = $__default[\"default\"].Event(EVENT_SHOW$1, {\n relatedTarget: previous\n });\n if (previous) {\n $__default[\"default\"](previous).trigger(hideEvent);\n }\n $__default[\"default\"](this._element).trigger(showEvent);\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n return;\n }\n if (selector) {\n target = document.querySelector(selector);\n }\n this._activate(this._element, listElement);\n var complete = function complete() {\n var hiddenEvent = $__default[\"default\"].Event(EVENT_HIDDEN$1, {\n relatedTarget: _this._element\n });\n var shownEvent = $__default[\"default\"].Event(EVENT_SHOWN$1, {\n relatedTarget: previous\n });\n $__default[\"default\"](previous).trigger(hiddenEvent);\n $__default[\"default\"](_this._element).trigger(shownEvent);\n };\n if (target) {\n this._activate(target, target.parentNode, complete);\n } else {\n complete();\n }\n };\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$1);\n this._element = null;\n } // Private\n ;\n\n _proto._activate = function _activate(element, container, callback) {\n var _this2 = this;\n var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default[\"default\"](container).find(SELECTOR_ACTIVE_UL) : $__default[\"default\"](container).children(SELECTOR_ACTIVE);\n var active = activeElements[0];\n var isTransitioning = callback && active && $__default[\"default\"](active).hasClass(CLASS_NAME_FADE$1);\n var complete = function complete() {\n return _this2._transitionComplete(element, active, callback);\n };\n if (active && isTransitioning) {\n var transitionDuration = Util.getTransitionDurationFromElement(active);\n $__default[\"default\"](active).removeClass(CLASS_NAME_SHOW$1).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n };\n _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n if (active) {\n $__default[\"default\"](active).removeClass(CLASS_NAME_ACTIVE);\n var dropdownChild = $__default[\"default\"](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];\n if (dropdownChild) {\n $__default[\"default\"](dropdownChild).removeClass(CLASS_NAME_ACTIVE);\n }\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false);\n }\n }\n $__default[\"default\"](element).addClass(CLASS_NAME_ACTIVE);\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true);\n }\n Util.reflow(element);\n if (element.classList.contains(CLASS_NAME_FADE$1)) {\n element.classList.add(CLASS_NAME_SHOW$1);\n }\n var parent = element.parentNode;\n if (parent && parent.nodeName === 'LI') {\n parent = parent.parentNode;\n }\n if (parent && $__default[\"default\"](parent).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n var dropdownElement = $__default[\"default\"](element).closest(SELECTOR_DROPDOWN)[0];\n if (dropdownElement) {\n var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE));\n $__default[\"default\"](dropdownToggleList).addClass(CLASS_NAME_ACTIVE);\n }\n element.setAttribute('aria-expanded', true);\n }\n if (callback) {\n callback();\n }\n } // Static\n ;\n\n Tab._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $this = $__default[\"default\"](this);\n var data = $this.data(DATA_KEY$1);\n if (!data) {\n data = new Tab(this);\n $this.data(DATA_KEY$1, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n _createClass(Tab, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$1;\n }\n }]);\n return Tab;\n }();\n /**\n * Data API implementation\n */\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n Tab._jQueryInterface.call($__default[\"default\"](this), 'show');\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$1] = Tab._jQueryInterface;\n $__default[\"default\"].fn[NAME$1].Constructor = Tab;\n $__default[\"default\"].fn[NAME$1].noConflict = function () {\n $__default[\"default\"].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n return Tab._jQueryInterface;\n };\n\n /**\n * Constants\n */\n\n var NAME = 'toast';\n var VERSION = '4.6.2';\n var DATA_KEY = 'bs.toast';\n var EVENT_KEY = \".\" + DATA_KEY;\n var JQUERY_NO_CONFLICT = $__default[\"default\"].fn[NAME];\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_HIDE = 'hide';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_SHOWING = 'showing';\n var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY;\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]';\n var Default = {\n animation: true,\n autohide: true,\n delay: 500\n };\n var DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n };\n /**\n * Class definition\n */\n\n var Toast = /*#__PURE__*/function () {\n function Toast(element, config) {\n this._element = element;\n this._config = this._getConfig(config);\n this._timeout = null;\n this._setListeners();\n } // Getters\n\n var _proto = Toast.prototype;\n\n // Public\n _proto.show = function show() {\n var _this = this;\n var showEvent = $__default[\"default\"].Event(EVENT_SHOW);\n $__default[\"default\"](this._element).trigger(showEvent);\n if (showEvent.isDefaultPrevented()) {\n return;\n }\n this._clearTimeout();\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE);\n }\n var complete = function complete() {\n _this._element.classList.remove(CLASS_NAME_SHOWING);\n _this._element.classList.add(CLASS_NAME_SHOW);\n $__default[\"default\"](_this._element).trigger(EVENT_SHOWN);\n if (_this._config.autohide) {\n _this._timeout = setTimeout(function () {\n _this.hide();\n }, _this._config.delay);\n }\n };\n this._element.classList.remove(CLASS_NAME_HIDE);\n Util.reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOWING);\n if (this._config.animation) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n };\n _proto.hide = function hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n var hideEvent = $__default[\"default\"].Event(EVENT_HIDE);\n $__default[\"default\"](this._element).trigger(hideEvent);\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n this._close();\n };\n _proto.dispose = function dispose() {\n this._clearTimeout();\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW);\n }\n $__default[\"default\"](this._element).off(EVENT_CLICK_DISMISS);\n $__default[\"default\"].removeData(this._element, DATA_KEY);\n this._element = null;\n this._config = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, $__default[\"default\"](this._element).data(), typeof config === 'object' && config ? config : {});\n Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\n return config;\n };\n _proto._setListeners = function _setListeners() {\n var _this2 = this;\n $__default[\"default\"](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {\n return _this2.hide();\n });\n };\n _proto._close = function _close() {\n var _this3 = this;\n var complete = function complete() {\n _this3._element.classList.add(CLASS_NAME_HIDE);\n $__default[\"default\"](_this3._element).trigger(EVENT_HIDDEN);\n };\n this._element.classList.remove(CLASS_NAME_SHOW);\n if (this._config.animation) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n };\n _proto._clearTimeout = function _clearTimeout() {\n clearTimeout(this._timeout);\n this._timeout = null;\n } // Static\n ;\n\n Toast._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default[\"default\"](this);\n var data = $element.data(DATA_KEY);\n var _config = typeof config === 'object' && config;\n if (!data) {\n data = new Toast(this, _config);\n $element.data(DATA_KEY, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config](this);\n }\n });\n };\n _createClass(Toast, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n return Toast;\n }();\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME] = Toast._jQueryInterface;\n $__default[\"default\"].fn[NAME].Constructor = Toast;\n $__default[\"default\"].fn[NAME].noConflict = function () {\n $__default[\"default\"].fn[NAME] = JQUERY_NO_CONFLICT;\n return Toast._jQueryInterface;\n };\n exports.Alert = Alert;\n exports.Button = Button;\n exports.Carousel = Carousel;\n exports.Collapse = Collapse;\n exports.Dropdown = Dropdown;\n exports.Modal = Modal;\n exports.Popover = Popover;\n exports.Scrollspy = ScrollSpy;\n exports.Tab = Tab;\n exports.Toast = Toast;\n exports.Tooltip = Tooltip;\n exports.Util = Util;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","(function () {\n app.controller('MenuWaxstatCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n $scope.load_browse_by_sport = true;\n $scope.data = [];\n $scope.sub_data = {};\n $scope.select_sport = null;\n $scope.is_open = false;\n\n $scope.init = function () {\n // $scope.getBrowseBySport();\n };\n\n $scope.getBrowseBySport = function () {\n $scope.load_browse_by_sport = true;\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.browse_by_sport_commons_path,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {},\n success: function (rs) {\n $timeout(function () {\n $scope.load_browse_by_sport = false;\n if (rs.succeed) {\n $scope.data = rs.data;\n } else {\n $scope.data = [];\n }\n });\n },\n });\n };\n\n $scope.open_sub_menu = function (data) {\n $scope.sub_data = data;\n $('#sub-content-browse-by-sport').addClass('show');\n }\n\n $scope.open_menu = function () {\n $scope.is_open = true;\n $('#content-browse-by-sport').addClass('show');\n }\n\n $scope.close_menu = function () {\n $scope.is_open = false;\n $scope.sub_data = {};\n $('#content-browse-by-sport').removeClass('show');\n $('#sub-content-browse-by-sport').removeClass('show');\n }\n\n $scope.click_browse_sport = function () {\n $scope.is_open = !$scope.is_open;\n if ($scope.is_open) {\n $scope.open_menu();\n } else {\n $scope.close_menu();\n }\n }\n\n $scope.redirect_to = function (year) {\n location.href = location.origin + `/${year}-${$scope.sub_data.slug}-cards-release-calendar`;\n $scope.close_menu();\n }\n }]\n )\n}).call(this);","/*!\n * dist/inputmask\n * https://github.com/RobinHerbots/Inputmask\n * Copyright (c) 2010 - 2023 Robin Herbots\n * Licensed under the MIT license\n * Version: 5.0.8\n */\n!function (e, t) {\n if (\"object\" == typeof exports && \"object\" == typeof module) module.exports = t();else if (\"function\" == typeof define && define.amd) define([], t);else {\n var i = t();\n for (var n in i) (\"object\" == typeof exports ? exports : e)[n] = i[n];\n }\n}(\"undefined\" != typeof self ? self : this, function () {\n return function () {\n \"use strict\";\n\n var e = {\n 8741: function (e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var i = !(\"undefined\" == typeof window || !window.document || !window.document.createElement);\n t.default = i;\n },\n 3976: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var n = i(2839),\n a = {\n _maxTestPos: 500,\n placeholder: \"_\",\n optionalmarker: [\"[\", \"]\"],\n quantifiermarker: [\"{\", \"}\"],\n groupmarker: [\"(\", \")\"],\n alternatormarker: \"|\",\n escapeChar: \"\\\\\",\n mask: null,\n regex: null,\n oncomplete: function () {},\n onincomplete: function () {},\n oncleared: function () {},\n repeat: 0,\n greedy: !1,\n autoUnmask: !1,\n removeMaskOnSubmit: !1,\n clearMaskOnLostFocus: !0,\n insertMode: !0,\n insertModeVisual: !0,\n clearIncomplete: !1,\n alias: null,\n onKeyDown: function () {},\n onBeforeMask: null,\n onBeforePaste: function (e, t) {\n return \"function\" == typeof t.onBeforeMask ? t.onBeforeMask.call(this, e, t) : e;\n },\n onBeforeWrite: null,\n onUnMask: null,\n showMaskOnFocus: !0,\n showMaskOnHover: !0,\n onKeyValidation: function () {},\n skipOptionalPartCharacter: \" \",\n numericInput: !1,\n rightAlign: !1,\n undoOnEscape: !0,\n radixPoint: \"\",\n _radixDance: !1,\n groupSeparator: \"\",\n keepStatic: null,\n positionCaretOnTab: !0,\n tabThrough: !1,\n supportsInputType: [\"text\", \"tel\", \"url\", \"password\", \"search\"],\n ignorables: [n.keys.Backspace, n.keys.Tab, n.keys.Pause, n.keys.Escape, n.keys.PageUp, n.keys.PageDown, n.keys.End, n.keys.Home, n.keys.ArrowLeft, n.keys.ArrowUp, n.keys.ArrowRight, n.keys.ArrowDown, n.keys.Insert, n.keys.Delete, n.keys.ContextMenu, n.keys.F1, n.keys.F2, n.keys.F3, n.keys.F4, n.keys.F5, n.keys.F6, n.keys.F7, n.keys.F8, n.keys.F9, n.keys.F10, n.keys.F11, n.keys.F12, n.keys.Process, n.keys.Unidentified, n.keys.Shift, n.keys.Control, n.keys.Alt, n.keys.Tab, n.keys.AltGraph, n.keys.CapsLock],\n isComplete: null,\n preValidation: null,\n postValidation: null,\n staticDefinitionSymbol: void 0,\n jitMasking: !1,\n nullable: !0,\n inputEventOnly: !1,\n noValuePatching: !1,\n positionCaretOnClick: \"lvp\",\n casing: null,\n inputmode: \"text\",\n importDataAttributes: !0,\n shiftPositions: !0,\n usePrototypeDefinitions: !0,\n validationEventTimeOut: 3e3,\n substitutes: {}\n };\n t.default = a;\n },\n 7392: function (e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n t.default = {\n 9: {\n validator: \"[0-9\\uff10-\\uff19]\",\n definitionSymbol: \"*\"\n },\n a: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n definitionSymbol: \"*\"\n },\n \"*\": {\n validator: \"[0-9\\uff10-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\"\n }\n };\n },\n 253: function (e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function (e, t, i) {\n if (void 0 === i) return e.__data ? e.__data[t] : null;\n e.__data = e.__data || {}, e.__data[t] = i;\n };\n },\n 3776: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.Event = void 0, t.off = function (e, t) {\n var i, n;\n f(this[0]) && e && (i = this[0].eventRegistry, n = this[0], e.split(\" \").forEach(function (e) {\n var a = l(e.split(\".\"), 2);\n (function (e, n) {\n var a,\n r,\n o = [];\n if (e.length > 0) {\n if (void 0 === t) for (a = 0, r = i[e][n].length; a < r; a++) o.push({\n ev: e,\n namespace: n && n.length > 0 ? n : \"global\",\n handler: i[e][n][a]\n });else o.push({\n ev: e,\n namespace: n && n.length > 0 ? n : \"global\",\n handler: t\n });\n } else if (n.length > 0) for (var s in i) for (var l in i[s]) if (l === n) if (void 0 === t) for (a = 0, r = i[s][l].length; a < r; a++) o.push({\n ev: s,\n namespace: l,\n handler: i[s][l][a]\n });else o.push({\n ev: s,\n namespace: l,\n handler: t\n });\n return o;\n })(a[0], a[1]).forEach(function (e) {\n var t = e.ev,\n a = e.handler;\n !function (e, t, a) {\n if (e in i == 1) if (n.removeEventListener ? n.removeEventListener(e, a, !1) : n.detachEvent && n.detachEvent(\"on\".concat(e), a), \"global\" === t) for (var r in i[e]) i[e][r].splice(i[e][r].indexOf(a), 1);else i[e][t].splice(i[e][t].indexOf(a), 1);\n }(t, e.namespace, a);\n });\n }));\n return this;\n }, t.on = function (e, t) {\n if (f(this[0])) {\n var i = this[0].eventRegistry,\n n = this[0];\n e.split(\" \").forEach(function (e) {\n var a = l(e.split(\".\"), 2),\n r = a[0],\n o = a[1];\n !function (e, a) {\n n.addEventListener ? n.addEventListener(e, t, !1) : n.attachEvent && n.attachEvent(\"on\".concat(e), t), i[e] = i[e] || {}, i[e][a] = i[e][a] || [], i[e][a].push(t);\n }(r, void 0 === o ? \"global\" : o);\n });\n }\n return this;\n }, t.trigger = function (e) {\n var t = arguments;\n if (f(this[0])) for (var i = this[0].eventRegistry, n = this[0], r = \"string\" == typeof e ? e.split(\" \") : [e.type], s = 0; s < r.length; s++) {\n var l = r[s].split(\".\"),\n c = l[0],\n u = l[1] || \"global\";\n if (void 0 !== document && \"global\" === u) {\n var d,\n p = {\n bubbles: !0,\n cancelable: !0,\n composed: !0,\n detail: arguments[1]\n };\n if (document.createEvent) {\n try {\n if (\"input\" === c) p.inputType = \"insertText\", d = new InputEvent(c, p);else d = new CustomEvent(c, p);\n } catch (e) {\n (d = document.createEvent(\"CustomEvent\")).initCustomEvent(c, p.bubbles, p.cancelable, p.detail);\n }\n e.type && (0, a.default)(d, e), n.dispatchEvent(d);\n } else (d = document.createEventObject()).eventType = c, d.detail = arguments[1], e.type && (0, a.default)(d, e), n.fireEvent(\"on\" + d.eventType, d);\n } else if (void 0 !== i[c]) {\n arguments[0] = arguments[0].type ? arguments[0] : o.default.Event(arguments[0]), arguments[0].detail = arguments.slice(1);\n var h = i[c];\n (\"global\" === u ? Object.values(h).flat() : h[u]).forEach(function (e) {\n return e.apply(n, t);\n });\n }\n }\n return this;\n };\n var n,\n a = u(i(600)),\n r = u(i(9380)),\n o = u(i(4963)),\n s = u(i(8741));\n function l(e, t) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e, t) {\n var i = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != i) {\n var n,\n a,\n r,\n o,\n s = [],\n l = !0,\n c = !1;\n try {\n if (r = (i = i.call(e)).next, 0 === t) {\n if (Object(i) !== i) return;\n l = !1;\n } else for (; !(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0);\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return s;\n }\n }(e, t) || function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return c(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return c(e, t);\n }(e, t) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function c(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n function u(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n function f(e) {\n return e instanceof Element;\n }\n t.Event = n, \"function\" == typeof r.default.CustomEvent ? t.Event = n = r.default.CustomEvent : s.default && (t.Event = n = function (e, t) {\n t = t || {\n bubbles: !1,\n cancelable: !1,\n composed: !0,\n detail: void 0\n };\n var i = document.createEvent(\"CustomEvent\");\n return i.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), i;\n }, n.prototype = r.default.Event.prototype);\n },\n 600: function (e, t) {\n function i(e) {\n return i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, i(e);\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function e() {\n var t,\n n,\n a,\n r,\n o,\n s,\n l = arguments[0] || {},\n c = 1,\n u = arguments.length,\n f = !1;\n \"boolean\" == typeof l && (f = l, l = arguments[c] || {}, c++);\n \"object\" !== i(l) && \"function\" != typeof l && (l = {});\n for (; c < u; c++) if (null != (t = arguments[c])) for (n in t) a = l[n], l !== (r = t[n]) && (f && r && (\"[object Object]\" === Object.prototype.toString.call(r) || (o = Array.isArray(r))) ? (o ? (o = !1, s = a && Array.isArray(a) ? a : []) : s = a && \"[object Object]\" === Object.prototype.toString.call(a) ? a : {}, l[n] = e(f, s, r)) : void 0 !== r && (l[n] = r));\n return l;\n };\n },\n 4963: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var n = s(i(600)),\n a = s(i(9380)),\n r = s(i(253)),\n o = i(3776);\n function s(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var l = a.default.document;\n function c(e) {\n return e instanceof c ? e : this instanceof c ? void (null != e && e !== a.default && (this[0] = e.nodeName ? e : void 0 !== e[0] && e[0].nodeName ? e[0] : l.querySelector(e), void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new c(e);\n }\n c.prototype = {\n on: o.on,\n off: o.off,\n trigger: o.trigger\n }, c.extend = n.default, c.data = r.default, c.Event = o.Event;\n var u = c;\n t.default = u;\n },\n 9845: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.mobile = t.iphone = t.ie = void 0;\n var n,\n a = (n = i(9380)) && n.__esModule ? n : {\n default: n\n };\n var r = a.default.navigator && a.default.navigator.userAgent || \"\",\n o = r.indexOf(\"MSIE \") > 0 || r.indexOf(\"Trident/\") > 0,\n s = navigator.userAgentData && navigator.userAgentData.mobile || a.default.navigator && a.default.navigator.maxTouchPoints || \"ontouchstart\" in a.default,\n l = /iphone/i.test(r);\n t.iphone = l, t.mobile = s, t.ie = o;\n },\n 7184: function (e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function (e) {\n return e.replace(i, \"\\\\$1\");\n };\n var i = new RegExp(\"(\\\\\" + [\"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\"].join(\"|\\\\\") + \")\", \"gim\");\n },\n 6030: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.EventHandlers = void 0;\n var n = i(8711),\n a = i(2839),\n r = i(9845),\n o = i(7215),\n s = i(7760),\n l = i(4713);\n function c(e, t) {\n var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (!i) {\n if (Array.isArray(e) || (i = function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return u(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return u(e, t);\n }(e)) || t && e && \"number\" == typeof e.length) {\n i && (e = i);\n var n = 0,\n a = function () {};\n return {\n s: a,\n n: function () {\n return n >= e.length ? {\n done: !0\n } : {\n done: !1,\n value: e[n++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: a\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var r,\n o = !0,\n s = !1;\n return {\n s: function () {\n i = i.call(e);\n },\n n: function () {\n var e = i.next();\n return o = e.done, e;\n },\n e: function (e) {\n s = !0, r = e;\n },\n f: function () {\n try {\n o || null == i.return || i.return();\n } finally {\n if (s) throw r;\n }\n }\n };\n }\n function u(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n var f = {\n keyEvent: function (e, t, i, c, u) {\n var d = this.inputmask,\n p = d.opts,\n h = d.dependencyLib,\n v = d.maskset,\n m = this,\n g = h(m),\n y = e.key,\n k = n.caret.call(d, m),\n b = p.onKeyDown.call(this, e, n.getBuffer.call(d), k, p);\n if (void 0 !== b) return b;\n if (y === a.keys.Backspace || y === a.keys.Delete || r.iphone && y === a.keys.BACKSPACE_SAFARI || e.ctrlKey && y === a.keys.x && !(\"oncut\" in m)) e.preventDefault(), o.handleRemove.call(d, m, y, k), (0, s.writeBuffer)(m, n.getBuffer.call(d, !0), v.p, e, m.inputmask._valueGet() !== n.getBuffer.call(d).join(\"\"));else if (y === a.keys.End || y === a.keys.PageDown) {\n e.preventDefault();\n var x = n.seekNext.call(d, n.getLastValidPosition.call(d));\n n.caret.call(d, m, e.shiftKey ? k.begin : x, x, !0);\n } else y === a.keys.Home && !e.shiftKey || y === a.keys.PageUp ? (e.preventDefault(), n.caret.call(d, m, 0, e.shiftKey ? k.begin : 0, !0)) : p.undoOnEscape && y === a.keys.Escape && !0 !== e.altKey ? ((0, s.checkVal)(m, !0, !1, d.undoValue.split(\"\")), g.trigger(\"click\")) : y !== a.keys.Insert || e.shiftKey || e.ctrlKey || void 0 !== d.userOptions.insertMode ? !0 === p.tabThrough && y === a.keys.Tab ? !0 === e.shiftKey ? (k.end = n.seekPrevious.call(d, k.end, !0), !0 === l.getTest.call(d, k.end - 1).match.static && k.end--, k.begin = n.seekPrevious.call(d, k.end, !0), k.begin >= 0 && k.end > 0 && (e.preventDefault(), n.caret.call(d, m, k.begin, k.end))) : (k.begin = n.seekNext.call(d, k.begin, !0), k.end = n.seekNext.call(d, k.begin, !0), k.end < v.maskLength && k.end--, k.begin <= v.maskLength && (e.preventDefault(), n.caret.call(d, m, k.begin, k.end))) : e.shiftKey || p.insertModeVisual && !1 === p.insertMode && (y === a.keys.ArrowRight ? setTimeout(function () {\n var e = n.caret.call(d, m);\n n.caret.call(d, m, e.begin);\n }, 0) : y === a.keys.ArrowLeft && setTimeout(function () {\n var e = n.translatePosition.call(d, m.inputmask.caretPos.begin);\n n.translatePosition.call(d, m.inputmask.caretPos.end);\n d.isRTL ? n.caret.call(d, m, e + (e === v.maskLength ? 0 : 1)) : n.caret.call(d, m, e - (0 === e ? 0 : 1));\n }, 0)) : o.isSelection.call(d, k) ? p.insertMode = !p.insertMode : (p.insertMode = !p.insertMode, n.caret.call(d, m, k.begin, k.begin));\n return d.isComposing = y == a.keys.Process || y == a.keys.Unidentified, d.ignorable = p.ignorables.includes(y), f.keypressEvent.call(this, e, t, i, c, u);\n },\n keypressEvent: function (e, t, i, r, l) {\n var c = this.inputmask || this,\n u = c.opts,\n f = c.dependencyLib,\n d = c.maskset,\n p = c.el,\n h = f(p),\n v = e.key;\n if (!0 === t || e.ctrlKey && e.altKey || !(e.ctrlKey || e.metaKey || c.ignorable)) {\n if (v) {\n var m,\n g = t ? {\n begin: l,\n end: l\n } : n.caret.call(c, p);\n v = u.substitutes[v] || v, d.writeOutBuffer = !0;\n var y = o.isValid.call(c, g, v, r, void 0, void 0, void 0, t);\n if (!1 !== y && (n.resetMaskSet.call(c, !0), m = void 0 !== y.caret ? y.caret : n.seekNext.call(c, y.pos.begin ? y.pos.begin : y.pos), d.p = m), m = u.numericInput && void 0 === y.caret ? n.seekPrevious.call(c, m) : m, !1 !== i && (setTimeout(function () {\n u.onKeyValidation.call(p, v, y);\n }, 0), d.writeOutBuffer && !1 !== y)) {\n var k = n.getBuffer.call(c);\n (0, s.writeBuffer)(p, k, m, e, !0 !== t);\n }\n if (e.preventDefault(), t) return !1 !== y && (y.forwardPosition = m), y;\n }\n } else v === a.keys.Enter && c.undoValue !== c._valueGet(!0) && (c.undoValue = c._valueGet(!0), setTimeout(function () {\n h.trigger(\"change\");\n }, 0));\n },\n pasteEvent: function (e) {\n var t,\n i = this.inputmask,\n a = i.opts,\n r = i._valueGet(!0),\n o = n.caret.call(i, this);\n i.isRTL && (t = o.end, o.end = n.translatePosition.call(i, o.begin), o.begin = n.translatePosition.call(i, t));\n var l = r.substr(0, o.begin),\n u = r.substr(o.end, r.length);\n if (l == (i.isRTL ? n.getBufferTemplate.call(i).slice().reverse() : n.getBufferTemplate.call(i)).slice(0, o.begin).join(\"\") && (l = \"\"), u == (i.isRTL ? n.getBufferTemplate.call(i).slice().reverse() : n.getBufferTemplate.call(i)).slice(o.end).join(\"\") && (u = \"\"), window.clipboardData && window.clipboardData.getData) r = l + window.clipboardData.getData(\"Text\") + u;else {\n if (!e.clipboardData || !e.clipboardData.getData) return !0;\n r = l + e.clipboardData.getData(\"text/plain\") + u;\n }\n var f = r;\n if (i.isRTL) {\n f = f.split(\"\");\n var d,\n p = c(n.getBufferTemplate.call(i));\n try {\n for (p.s(); !(d = p.n()).done;) {\n var h = d.value;\n f[0] === h && f.shift();\n }\n } catch (e) {\n p.e(e);\n } finally {\n p.f();\n }\n f = f.join(\"\");\n }\n if (\"function\" == typeof a.onBeforePaste) {\n if (!1 === (f = a.onBeforePaste.call(i, f, a))) return !1;\n f || (f = r);\n }\n (0, s.checkVal)(this, !0, !1, f.toString().split(\"\"), e), e.preventDefault();\n },\n inputFallBackEvent: function (e) {\n var t = this.inputmask,\n i = t.opts,\n o = t.dependencyLib;\n var c,\n u = this,\n d = u.inputmask._valueGet(!0),\n p = (t.isRTL ? n.getBuffer.call(t).slice().reverse() : n.getBuffer.call(t)).join(\"\"),\n h = n.caret.call(t, u, void 0, void 0, !0);\n if (p !== d) {\n if (c = function (e, a, r) {\n for (var o, s, c, u = e.substr(0, r.begin).split(\"\"), f = e.substr(r.begin).split(\"\"), d = a.substr(0, r.begin).split(\"\"), p = a.substr(r.begin).split(\"\"), h = u.length >= d.length ? u.length : d.length, v = f.length >= p.length ? f.length : p.length, m = \"\", g = [], y = \"~\"; u.length < h;) u.push(y);\n for (; d.length < h;) d.push(y);\n for (; f.length < v;) f.unshift(y);\n for (; p.length < v;) p.unshift(y);\n var k = u.concat(f),\n b = d.concat(p);\n for (s = 0, o = k.length; s < o; s++) switch (c = l.getPlaceholder.call(t, n.translatePosition.call(t, s)), m) {\n case \"insertText\":\n b[s - 1] === k[s] && r.begin == k.length - 1 && g.push(k[s]), s = o;\n break;\n case \"insertReplacementText\":\n case \"deleteContentBackward\":\n k[s] === y ? r.end++ : s = o;\n break;\n default:\n k[s] !== b[s] && (k[s + 1] !== y && k[s + 1] !== c && void 0 !== k[s + 1] || (b[s] !== c || b[s + 1] !== y) && b[s] !== y ? b[s + 1] === y && b[s] === k[s + 1] ? (m = \"insertText\", g.push(k[s]), r.begin--, r.end--) : k[s] !== c && k[s] !== y && (k[s + 1] === y || b[s] !== k[s] && b[s + 1] === k[s + 1]) ? (m = \"insertReplacementText\", g.push(k[s]), r.begin--) : k[s] === y ? (m = \"deleteContentBackward\", (n.isMask.call(t, n.translatePosition.call(t, s), !0) || b[s] === i.radixPoint) && r.end++) : s = o : (m = \"insertText\", g.push(k[s]), r.begin--, r.end--));\n }\n return {\n action: m,\n data: g,\n caret: r\n };\n }(d, p, h), (u.inputmask.shadowRoot || u.ownerDocument).activeElement !== u && u.focus(), (0, s.writeBuffer)(u, n.getBuffer.call(t)), n.caret.call(t, u, h.begin, h.end, !0), !r.mobile && t.skipNextInsert && \"insertText\" === e.inputType && \"insertText\" === c.action && t.isComposing) return !1;\n switch (\"insertCompositionText\" === e.inputType && \"insertText\" === c.action && t.isComposing ? t.skipNextInsert = !0 : t.skipNextInsert = !1, c.action) {\n case \"insertText\":\n case \"insertReplacementText\":\n c.data.forEach(function (e, i) {\n var n = new o.Event(\"keypress\");\n n.key = e, t.ignorable = !1, f.keypressEvent.call(u, n);\n }), setTimeout(function () {\n t.$el.trigger(\"keyup\");\n }, 0);\n break;\n case \"deleteContentBackward\":\n var v = new o.Event(\"keydown\");\n v.key = a.keys.Backspace, f.keyEvent.call(u, v);\n break;\n default:\n (0, s.applyInputValue)(u, d), n.caret.call(t, u, h.begin, h.end, !0);\n }\n e.preventDefault();\n }\n },\n setValueEvent: function (e) {\n var t = this.inputmask,\n i = this,\n a = e && e.detail ? e.detail[0] : arguments[1];\n void 0 === a && (a = i.inputmask._valueGet(!0)), (0, s.applyInputValue)(i, a), (e.detail && void 0 !== e.detail[1] || void 0 !== arguments[2]) && n.caret.call(t, i, e.detail ? e.detail[1] : arguments[2]);\n },\n focusEvent: function (e) {\n var t = this.inputmask,\n i = t.opts,\n a = null == t ? void 0 : t._valueGet();\n i.showMaskOnFocus && a !== n.getBuffer.call(t).join(\"\") && (0, s.writeBuffer)(this, n.getBuffer.call(t), n.seekNext.call(t, n.getLastValidPosition.call(t))), !0 !== i.positionCaretOnTab || !1 !== t.mouseEnter || o.isComplete.call(t, n.getBuffer.call(t)) && -1 !== n.getLastValidPosition.call(t) || f.clickEvent.apply(this, [e, !0]), t.undoValue = null == t ? void 0 : t._valueGet(!0);\n },\n invalidEvent: function (e) {\n this.inputmask.validationEvent = !0;\n },\n mouseleaveEvent: function () {\n var e = this.inputmask,\n t = e.opts,\n i = this;\n e.mouseEnter = !1, t.clearMaskOnLostFocus && (i.inputmask.shadowRoot || i.ownerDocument).activeElement !== i && (0, s.HandleNativePlaceholder)(i, e.originalPlaceholder);\n },\n clickEvent: function (e, t) {\n var i = this.inputmask;\n i.clicked++;\n var a = this;\n if ((a.inputmask.shadowRoot || a.ownerDocument).activeElement === a) {\n var r = n.determineNewCaretPosition.call(i, n.caret.call(i, a), t);\n void 0 !== r && n.caret.call(i, a, r);\n }\n },\n cutEvent: function (e) {\n var t = this.inputmask,\n i = t.maskset,\n r = this,\n l = n.caret.call(t, r),\n c = t.isRTL ? n.getBuffer.call(t).slice(l.end, l.begin) : n.getBuffer.call(t).slice(l.begin, l.end),\n u = t.isRTL ? c.reverse().join(\"\") : c.join(\"\");\n window.navigator.clipboard ? window.navigator.clipboard.writeText(u) : window.clipboardData && window.clipboardData.getData && window.clipboardData.setData(\"Text\", u), o.handleRemove.call(t, r, a.keys.Delete, l), (0, s.writeBuffer)(r, n.getBuffer.call(t), i.p, e, t.undoValue !== t._valueGet(!0));\n },\n blurEvent: function (e) {\n var t = this.inputmask,\n i = t.opts,\n a = t.dependencyLib;\n t.clicked = 0;\n var r = a(this),\n l = this;\n if (l.inputmask) {\n (0, s.HandleNativePlaceholder)(l, t.originalPlaceholder);\n var c = l.inputmask._valueGet(),\n u = n.getBuffer.call(t).slice();\n \"\" !== c && (i.clearMaskOnLostFocus && (-1 === n.getLastValidPosition.call(t) && c === n.getBufferTemplate.call(t).join(\"\") ? u = [] : s.clearOptionalTail.call(t, u)), !1 === o.isComplete.call(t, u) && (setTimeout(function () {\n r.trigger(\"incomplete\");\n }, 0), i.clearIncomplete && (n.resetMaskSet.call(t), u = i.clearMaskOnLostFocus ? [] : n.getBufferTemplate.call(t).slice())), (0, s.writeBuffer)(l, u, void 0, e)), t.undoValue !== t._valueGet(!0) && (t.undoValue = t._valueGet(!0), r.trigger(\"change\"));\n }\n },\n mouseenterEvent: function () {\n var e = this.inputmask,\n t = e.opts.showMaskOnHover,\n i = this;\n if (e.mouseEnter = !0, (i.inputmask.shadowRoot || i.ownerDocument).activeElement !== i) {\n var a = (e.isRTL ? n.getBufferTemplate.call(e).slice().reverse() : n.getBufferTemplate.call(e)).join(\"\");\n t && (0, s.HandleNativePlaceholder)(i, a);\n }\n },\n submitEvent: function () {\n var e = this.inputmask,\n t = e.opts;\n e.undoValue !== e._valueGet(!0) && e.$el.trigger(\"change\"), -1 === n.getLastValidPosition.call(e) && e._valueGet && e._valueGet() === n.getBufferTemplate.call(e).join(\"\") && e._valueSet(\"\"), t.clearIncomplete && !1 === o.isComplete.call(e, n.getBuffer.call(e)) && e._valueSet(\"\"), t.removeMaskOnSubmit && (e._valueSet(e.unmaskedvalue(), !0), setTimeout(function () {\n (0, s.writeBuffer)(e.el, n.getBuffer.call(e));\n }, 0));\n },\n resetEvent: function () {\n var e = this.inputmask;\n e.refreshValue = !0, setTimeout(function () {\n (0, s.applyInputValue)(e.el, e._valueGet(!0));\n }, 0);\n }\n };\n t.EventHandlers = f;\n },\n 9716: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.EventRuler = void 0;\n var n,\n a = (n = i(2394)) && n.__esModule ? n : {\n default: n\n },\n r = i(2839),\n o = i(8711),\n s = i(7760);\n var l = {\n on: function (e, t, i) {\n var n = e.inputmask.dependencyLib,\n l = function (t) {\n t.originalEvent && (t = t.originalEvent || t, arguments[0] = t);\n var l,\n c = this,\n u = c.inputmask,\n f = u ? u.opts : void 0;\n if (void 0 === u && \"FORM\" !== this.nodeName) {\n var d = n.data(c, \"_inputmask_opts\");\n n(c).off(), d && new a.default(d).mask(c);\n } else {\n if ([\"submit\", \"reset\", \"setvalue\"].includes(t.type) || \"FORM\" === this.nodeName || !(c.disabled || c.readOnly && !(\"keydown\" === t.type && t.ctrlKey && t.key === r.keys.c || !1 === f.tabThrough && t.key === r.keys.Tab))) {\n switch (t.type) {\n case \"input\":\n if (!0 === u.skipInputEvent) return u.skipInputEvent = !1, t.preventDefault();\n break;\n case \"click\":\n case \"focus\":\n return u.validationEvent ? (u.validationEvent = !1, e.blur(), (0, s.HandleNativePlaceholder)(e, (u.isRTL ? o.getBufferTemplate.call(u).slice().reverse() : o.getBufferTemplate.call(u)).join(\"\")), setTimeout(function () {\n e.focus();\n }, f.validationEventTimeOut), !1) : (l = arguments, void setTimeout(function () {\n e.inputmask && i.apply(c, l);\n }, 0));\n }\n var p = i.apply(c, arguments);\n return !1 === p && (t.preventDefault(), t.stopPropagation()), p;\n }\n t.preventDefault();\n }\n };\n [\"submit\", \"reset\"].includes(t) ? (l = l.bind(e), null !== e.form && n(e.form).on(t, l)) : n(e).on(t, l), e.inputmask.events[t] = e.inputmask.events[t] || [], e.inputmask.events[t].push(l);\n },\n off: function (e, t) {\n if (e.inputmask && e.inputmask.events) {\n var i = e.inputmask.dependencyLib,\n n = e.inputmask.events;\n for (var a in t && ((n = [])[t] = e.inputmask.events[t]), n) {\n for (var r = n[a]; r.length > 0;) {\n var o = r.pop();\n [\"submit\", \"reset\"].includes(a) ? null !== e.form && i(e.form).off(a, o) : i(e).off(a, o);\n }\n delete e.inputmask.events[a];\n }\n }\n }\n };\n t.EventRuler = l;\n },\n 219: function (e, t, i) {\n var n = d(i(2394)),\n a = i(2839),\n r = d(i(7184)),\n o = i(8711),\n s = i(4713);\n function l(e, t) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e, t) {\n var i = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != i) {\n var n,\n a,\n r,\n o,\n s = [],\n l = !0,\n c = !1;\n try {\n if (r = (i = i.call(e)).next, 0 === t) {\n if (Object(i) !== i) return;\n l = !1;\n } else for (; !(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0);\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return s;\n }\n }(e, t) || function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return c(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return c(e, t);\n }(e, t) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function c(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n function u(e) {\n return u = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, u(e);\n }\n function f(e, t) {\n for (var i = 0; i < t.length; i++) {\n var n = t[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(e, (a = n.key, r = void 0, r = function (e, t) {\n if (\"object\" !== u(e) || null === e) return e;\n var i = e[Symbol.toPrimitive];\n if (void 0 !== i) {\n var n = i.call(e, t || \"default\");\n if (\"object\" !== u(n)) return n;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === t ? String : Number)(e);\n }(a, \"string\"), \"symbol\" === u(r) ? r : String(r)), n);\n }\n var a, r;\n }\n function d(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var p = n.default.dependencyLib,\n h = function () {\n function e(t, i, n) {\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.mask = t, this.format = i, this.opts = n, this._date = new Date(1, 0, 1), this.initDateObject(t, this.opts);\n }\n var t, i, n;\n return t = e, (i = [{\n key: \"date\",\n get: function () {\n return void 0 === this._date && (this._date = new Date(1, 0, 1), this.initDateObject(void 0, this.opts)), this._date;\n }\n }, {\n key: \"initDateObject\",\n value: function (e, t) {\n var i;\n for (P(t).lastIndex = 0; i = P(t).exec(this.format);) {\n var n = new RegExp(\"\\\\d+$\").exec(i[0]),\n a = n ? i[0][0] + \"x\" : i[0],\n r = void 0;\n if (void 0 !== e) {\n if (n) {\n var o = P(t).lastIndex,\n s = E(i.index, t);\n P(t).lastIndex = o, r = e.slice(0, e.indexOf(s.nextMatch[0]));\n } else r = e.slice(0, g[a] && g[a][4] || a.length);\n e = e.slice(r.length);\n }\n Object.prototype.hasOwnProperty.call(g, a) && this.setValue(this, r, a, g[a][2], g[a][1]);\n }\n }\n }, {\n key: \"setValue\",\n value: function (e, t, i, n, a) {\n if (void 0 !== t && (e[n] = \"ampm\" === n ? t : t.replace(/[^0-9]/g, \"0\"), e[\"raw\" + n] = t.replace(/\\s/g, \"_\")), void 0 !== a) {\n var r = e[n];\n (\"day\" === n && 29 === parseInt(r) || \"month\" === n && 2 === parseInt(r)) && (29 !== parseInt(e.day) || 2 !== parseInt(e.month) || \"\" !== e.year && void 0 !== e.year || e._date.setFullYear(2012, 1, 29)), \"day\" === n && (m = !0, 0 === parseInt(r) && (r = 1)), \"month\" === n && (m = !0), \"year\" === n && (m = !0, r.length < 4 && (r = M(r, 4, !0))), \"\" === r || isNaN(r) || a.call(e._date, r), \"ampm\" === n && a.call(e._date, r);\n }\n }\n }, {\n key: \"reset\",\n value: function () {\n this._date = new Date(1, 0, 1);\n }\n }, {\n key: \"reInit\",\n value: function () {\n this._date = void 0, this.date;\n }\n }]) && f(t.prototype, i), n && f(t, n), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e;\n }(),\n v = new Date().getFullYear(),\n m = !1,\n g = {\n d: [\"[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", Date.prototype.getDate],\n dd: [\"0[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", function () {\n return M(Date.prototype.getDate.call(this), 2);\n }],\n ddd: [\"\"],\n dddd: [\"\"],\n m: [\"[1-9]|1[012]\", function (e) {\n var t = e ? parseInt(e) : 0;\n return t > 0 && t--, Date.prototype.setMonth.call(this, t);\n }, \"month\", function () {\n return Date.prototype.getMonth.call(this) + 1;\n }],\n mm: [\"0[1-9]|1[012]\", function (e) {\n var t = e ? parseInt(e) : 0;\n return t > 0 && t--, Date.prototype.setMonth.call(this, t);\n }, \"month\", function () {\n return M(Date.prototype.getMonth.call(this) + 1, 2);\n }],\n mmm: [\"\"],\n mmmm: [\"\"],\n yy: [\"[0-9]{2}\", Date.prototype.setFullYear, \"year\", function () {\n return M(Date.prototype.getFullYear.call(this), 2);\n }],\n yyyy: [\"[0-9]{4}\", Date.prototype.setFullYear, \"year\", function () {\n return M(Date.prototype.getFullYear.call(this), 4);\n }],\n h: [\"[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours],\n hh: [\"0[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", function () {\n return M(Date.prototype.getHours.call(this), 2);\n }],\n hx: [function (e) {\n return \"[0-9]{\".concat(e, \"}\");\n }, Date.prototype.setHours, \"hours\", function (e) {\n return Date.prototype.getHours;\n }],\n H: [\"1?[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours],\n HH: [\"0[0-9]|1[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", function () {\n return M(Date.prototype.getHours.call(this), 2);\n }],\n Hx: [function (e) {\n return \"[0-9]{\".concat(e, \"}\");\n }, Date.prototype.setHours, \"hours\", function (e) {\n return function () {\n return M(Date.prototype.getHours.call(this), e);\n };\n }],\n M: [\"[1-5]?[0-9]\", Date.prototype.setMinutes, \"minutes\", Date.prototype.getMinutes],\n MM: [\"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setMinutes, \"minutes\", function () {\n return M(Date.prototype.getMinutes.call(this), 2);\n }],\n s: [\"[1-5]?[0-9]\", Date.prototype.setSeconds, \"seconds\", Date.prototype.getSeconds],\n ss: [\"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setSeconds, \"seconds\", function () {\n return M(Date.prototype.getSeconds.call(this), 2);\n }],\n l: [\"[0-9]{3}\", Date.prototype.setMilliseconds, \"milliseconds\", function () {\n return M(Date.prototype.getMilliseconds.call(this), 3);\n }, 3],\n L: [\"[0-9]{2}\", Date.prototype.setMilliseconds, \"milliseconds\", function () {\n return M(Date.prototype.getMilliseconds.call(this), 2);\n }, 2],\n t: [\"[ap]\", k, \"ampm\", b, 1],\n tt: [\"[ap]m\", k, \"ampm\", b, 2],\n T: [\"[AP]\", k, \"ampm\", b, 1],\n TT: [\"[AP]M\", k, \"ampm\", b, 2],\n Z: [\".*\", void 0, \"Z\", function () {\n var e = this.toString().match(/\\((.+)\\)/)[1];\n e.includes(\" \") && (e = (e = e.replace(\"-\", \" \").toUpperCase()).split(\" \").map(function (e) {\n return l(e, 1)[0];\n }).join(\"\"));\n return e;\n }],\n o: [\"\"],\n S: [\"\"]\n },\n y = {\n isoDate: \"yyyy-mm-dd\",\n isoTime: \"HH:MM:ss\",\n isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\n isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\n };\n function k(e) {\n var t = this.getHours();\n e.toLowerCase().includes(\"p\") ? this.setHours(t + 12) : e.toLowerCase().includes(\"a\") && t >= 12 && this.setHours(t - 12);\n }\n function b() {\n var e = this.getHours();\n return (e = e || 12) >= 12 ? \"PM\" : \"AM\";\n }\n function x(e) {\n var t = new RegExp(\"\\\\d+$\").exec(e[0]);\n if (t && void 0 !== t[0]) {\n var i = g[e[0][0] + \"x\"].slice(\"\");\n return i[0] = i[0](t[0]), i[3] = i[3](t[0]), i;\n }\n if (g[e[0]]) return g[e[0]];\n }\n function P(e) {\n if (!e.tokenizer) {\n var t = [],\n i = [];\n for (var n in g) if (/\\.*x$/.test(n)) {\n var a = n[0] + \"\\\\d+\";\n -1 === i.indexOf(a) && i.push(a);\n } else -1 === t.indexOf(n[0]) && t.push(n[0]);\n e.tokenizer = \"(\" + (i.length > 0 ? i.join(\"|\") + \"|\" : \"\") + t.join(\"+|\") + \")+?|.\", e.tokenizer = new RegExp(e.tokenizer, \"g\");\n }\n return e.tokenizer;\n }\n function w(e, t, i) {\n if (!m) return !0;\n if (void 0 === e.rawday || !isFinite(e.rawday) && new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day || \"29\" == e.day && (!isFinite(e.rawyear) || void 0 === e.rawyear || \"\" === e.rawyear) || new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day) return t;\n if (\"29\" == e.day) {\n var n = E(t.pos, i);\n if (\"yyyy\" === n.targetMatch[0] && t.pos - n.targetMatchIndex == 2) return t.remove = t.pos + 1, t;\n } else if (\"02\" == e.month && \"30\" == e.day && void 0 !== t.c) return e.day = \"03\", e.date.setDate(3), e.date.setMonth(1), t.insert = [{\n pos: t.pos,\n c: \"0\"\n }, {\n pos: t.pos + 1,\n c: t.c\n }], t.caret = o.seekNext.call(this, t.pos + 1), t;\n return !1;\n }\n function S(e, t, i, n) {\n var a,\n o,\n s = \"\";\n for (P(i).lastIndex = 0; a = P(i).exec(e);) {\n if (void 0 === t) {\n if (o = x(a)) s += \"(\" + o[0] + \")\";else switch (a[0]) {\n case \"[\":\n s += \"(\";\n break;\n case \"]\":\n s += \")?\";\n break;\n default:\n s += (0, r.default)(a[0]);\n }\n } else if (o = x(a)) {\n if (!0 !== n && o[3]) s += o[3].call(t.date);else o[2] ? s += t[\"raw\" + o[2]] : s += a[0];\n } else s += a[0];\n }\n return s;\n }\n function M(e, t, i) {\n for (e = String(e), t = t || 2; e.length < t;) e = i ? e + \"0\" : \"0\" + e;\n return e;\n }\n function _(e, t, i) {\n return \"string\" == typeof e ? new h(e, t, i) : e && \"object\" === u(e) && Object.prototype.hasOwnProperty.call(e, \"date\") ? e : void 0;\n }\n function O(e, t) {\n return S(t.inputFormat, {\n date: e\n }, t);\n }\n function E(e, t) {\n var i,\n n,\n a = 0,\n r = 0;\n for (P(t).lastIndex = 0; n = P(t).exec(t.inputFormat);) {\n var o = new RegExp(\"\\\\d+$\").exec(n[0]);\n if ((a += r = o ? parseInt(o[0]) : n[0].length) >= e + 1) {\n i = n, n = P(t).exec(t.inputFormat);\n break;\n }\n }\n return {\n targetMatchIndex: a - r,\n nextMatch: n,\n targetMatch: i\n };\n }\n n.default.extendAliases({\n datetime: {\n mask: function (e) {\n return e.numericInput = !1, g.S = e.i18n.ordinalSuffix.join(\"|\"), e.inputFormat = y[e.inputFormat] || e.inputFormat, e.displayFormat = y[e.displayFormat] || e.displayFormat || e.inputFormat, e.outputFormat = y[e.outputFormat] || e.outputFormat || e.inputFormat, e.placeholder = \"\" !== e.placeholder ? e.placeholder : e.inputFormat.replace(/[[\\]]/, \"\"), e.regex = S(e.inputFormat, void 0, e), e.min = _(e.min, e.inputFormat, e), e.max = _(e.max, e.inputFormat, e), null;\n },\n placeholder: \"\",\n inputFormat: \"isoDateTime\",\n displayFormat: null,\n outputFormat: null,\n min: null,\n max: null,\n skipOptionalPartCharacter: \"\",\n i18n: {\n dayNames: [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"],\n monthNames: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n ordinalSuffix: [\"st\", \"nd\", \"rd\", \"th\"]\n },\n preValidation: function (e, t, i, n, a, r, o, s) {\n if (s) return !0;\n if (isNaN(i) && e[t] !== i) {\n var l = E(t, a);\n if (l.nextMatch && l.nextMatch[0] === i && l.targetMatch[0].length > 1) {\n var c = g[l.targetMatch[0]][0];\n if (new RegExp(c).test(\"0\" + e[t - 1])) return e[t] = e[t - 1], e[t - 1] = \"0\", {\n fuzzy: !0,\n buffer: e,\n refreshFromBuffer: {\n start: t - 1,\n end: t + 1\n },\n pos: t + 1\n };\n }\n }\n return !0;\n },\n postValidation: function (e, t, i, n, a, r, o, l) {\n var c, u;\n if (o) return !0;\n if (!1 === n && (((c = E(t + 1, a)).targetMatch && c.targetMatchIndex === t && c.targetMatch[0].length > 1 && void 0 !== g[c.targetMatch[0]] || (c = E(t + 2, a)).targetMatch && c.targetMatchIndex === t + 1 && c.targetMatch[0].length > 1 && void 0 !== g[c.targetMatch[0]]) && (u = g[c.targetMatch[0]][0]), void 0 !== u && (void 0 !== r.validPositions[t + 1] && new RegExp(u).test(i + \"0\") ? (e[t] = i, e[t + 1] = \"0\", n = {\n pos: t + 2,\n caret: t\n }) : new RegExp(u).test(\"0\" + i) && (e[t] = \"0\", e[t + 1] = i, n = {\n pos: t + 2\n })), !1 === n)) return n;\n if (n.fuzzy && (e = n.buffer, t = n.pos), (c = E(t, a)).targetMatch && c.targetMatch[0] && void 0 !== g[c.targetMatch[0]]) {\n var f = g[c.targetMatch[0]];\n u = f[0];\n var d = e.slice(c.targetMatchIndex, c.targetMatchIndex + c.targetMatch[0].length);\n if (!1 === new RegExp(u).test(d.join(\"\")) && 2 === c.targetMatch[0].length && r.validPositions[c.targetMatchIndex] && r.validPositions[c.targetMatchIndex + 1] && (r.validPositions[c.targetMatchIndex + 1].input = \"0\"), \"year\" == f[2]) for (var p = s.getMaskTemplate.call(this, !1, 1, void 0, !0), h = t + 1; h < e.length; h++) e[h] = p[h], delete r.validPositions[h];\n }\n var m = n,\n y = _(e.join(\"\"), a.inputFormat, a);\n return m && !isNaN(y.date.getTime()) && (a.prefillYear && (m = function (e, t, i) {\n if (e.year !== e.rawyear) {\n var n = v.toString(),\n a = e.rawyear.replace(/[^0-9]/g, \"\"),\n r = n.slice(0, a.length),\n o = n.slice(a.length);\n if (2 === a.length && a === r) {\n var s = new Date(v, e.month - 1, e.day);\n e.day == s.getDate() && (!i.max || i.max.date.getTime() >= s.getTime()) && (e.date.setFullYear(v), e.year = n, t.insert = [{\n pos: t.pos + 1,\n c: o[0]\n }, {\n pos: t.pos + 2,\n c: o[1]\n }]);\n }\n }\n return t;\n }(y, m, a)), m = function (e, t, i, n, a) {\n if (!t) return t;\n if (t && i.min && !isNaN(i.min.date.getTime())) {\n var r;\n for (e.reset(), P(i).lastIndex = 0; r = P(i).exec(i.inputFormat);) {\n var o;\n if ((o = x(r)) && o[3]) {\n for (var s = o[1], l = e[o[2]], c = i.min[o[2]], u = i.max ? i.max[o[2]] : c, f = [], d = !1, p = 0; p < c.length; p++) void 0 !== n.validPositions[p + r.index] || d ? (f[p] = l[p], d = d || l[p] > c[p]) : (f[p] = c[p], \"year\" === o[2] && l.length - 1 == p && c != u && (f = (parseInt(f.join(\"\")) + 1).toString().split(\"\")), \"ampm\" === o[2] && c != u && i.min.date.getTime() > e.date.getTime() && (f[p] = u[p]));\n s.call(e._date, f.join(\"\"));\n }\n }\n t = i.min.date.getTime() <= e.date.getTime(), e.reInit();\n }\n return t && i.max && (isNaN(i.max.date.getTime()) || (t = i.max.date.getTime() >= e.date.getTime())), t;\n }(y, m = w.call(this, y, m, a), a, r)), void 0 !== t && m && n.pos !== t ? {\n buffer: S(a.inputFormat, y, a).split(\"\"),\n refreshFromBuffer: {\n start: t,\n end: n.pos\n },\n pos: n.caret || n.pos\n } : m;\n },\n onKeyDown: function (e, t, i, n) {\n e.ctrlKey && e.key === a.keys.ArrowRight && (this.inputmask._valueSet(O(new Date(), n)), p(this).trigger(\"setvalue\"));\n },\n onUnMask: function (e, t, i) {\n return t ? S(i.outputFormat, _(e, i.inputFormat, i), i, !0) : t;\n },\n casing: function (e, t, i, n) {\n return 0 == t.nativeDef.indexOf(\"[ap]\") ? e.toLowerCase() : 0 == t.nativeDef.indexOf(\"[AP]\") ? e.toUpperCase() : e;\n },\n onBeforeMask: function (e, t) {\n return \"[object Date]\" === Object.prototype.toString.call(e) && (e = O(e, t)), e;\n },\n insertMode: !1,\n insertModeVisual: !1,\n shiftPositions: !1,\n keepStatic: !1,\n inputmode: \"numeric\",\n prefillYear: !0\n }\n });\n },\n 3851: function (e, t, i) {\n var n,\n a = (n = i(2394)) && n.__esModule ? n : {\n default: n\n },\n r = i(8711),\n o = i(4713);\n a.default.extendDefinitions({\n A: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"&\": {\n validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"#\": {\n validator: \"[0-9A-Fa-f]\",\n casing: \"upper\"\n }\n });\n var s = new RegExp(\"25[0-5]|2[0-4][0-9]|[01][0-9][0-9]\");\n function l(e, t, i, n, a) {\n return i - 1 > -1 && \".\" !== t.buffer[i - 1] ? (e = t.buffer[i - 1] + e, e = i - 2 > -1 && \".\" !== t.buffer[i - 2] ? t.buffer[i - 2] + e : \"0\" + e) : e = \"00\" + e, s.test(e);\n }\n a.default.extendAliases({\n cssunit: {\n regex: \"[+-]?[0-9]+\\\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)\"\n },\n url: {\n regex: \"(https?|ftp)://.*\",\n autoUnmask: !1,\n keepStatic: !1,\n tabThrough: !0\n },\n ip: {\n mask: \"i{1,3}.j{1,3}.k{1,3}.l{1,3}\",\n definitions: {\n i: {\n validator: l\n },\n j: {\n validator: l\n },\n k: {\n validator: l\n },\n l: {\n validator: l\n }\n },\n onUnMask: function (e, t, i) {\n return e;\n },\n inputmode: \"decimal\",\n substitutes: {\n \",\": \".\"\n }\n },\n email: {\n mask: function (e) {\n var t = e.separator,\n i = e.quantifier,\n n = \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]\",\n a = n;\n if (t) for (var r = 0; r < i; r++) a += \"[\".concat(t).concat(n, \"]\");\n return a;\n },\n greedy: !1,\n casing: \"lower\",\n separator: null,\n quantifier: 5,\n skipOptionalPartCharacter: \"\",\n onBeforePaste: function (e, t) {\n return (e = e.toLowerCase()).replace(\"mailto:\", \"\");\n },\n definitions: {\n \"*\": {\n validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5!#$%&'*+/=?^_`{|}~-]\"\n },\n \"-\": {\n validator: \"[0-9A-Za-z-]\"\n }\n },\n onUnMask: function (e, t, i) {\n return e;\n },\n inputmode: \"email\"\n },\n mac: {\n mask: \"##:##:##:##:##:##\"\n },\n vin: {\n mask: \"V{13}9{4}\",\n definitions: {\n V: {\n validator: \"[A-HJ-NPR-Za-hj-npr-z\\\\d]\",\n casing: \"upper\"\n }\n },\n clearIncomplete: !0,\n autoUnmask: !0\n },\n ssn: {\n mask: \"999-99-9999\",\n postValidation: function (e, t, i, n, a, s, l) {\n var c = o.getMaskTemplate.call(this, !0, r.getLastValidPosition.call(this), !0, !0);\n return /^(?!219-09-9999|078-05-1120)(?!666|000|9.{2}).{3}-(?!00).{2}-(?!0{4}).{4}$/.test(c.join(\"\"));\n }\n }\n });\n },\n 207: function (e, t, i) {\n var n = s(i(2394)),\n a = s(i(7184)),\n r = i(8711),\n o = i(2839);\n function s(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var l = n.default.dependencyLib;\n function c(e, t) {\n for (var i = \"\", a = 0; a < e.length; a++) n.default.prototype.definitions[e.charAt(a)] || t.definitions[e.charAt(a)] || t.optionalmarker[0] === e.charAt(a) || t.optionalmarker[1] === e.charAt(a) || t.quantifiermarker[0] === e.charAt(a) || t.quantifiermarker[1] === e.charAt(a) || t.groupmarker[0] === e.charAt(a) || t.groupmarker[1] === e.charAt(a) || t.alternatormarker === e.charAt(a) ? i += \"\\\\\" + e.charAt(a) : i += e.charAt(a);\n return i;\n }\n function u(e, t, i, n) {\n if (e.length > 0 && t > 0 && (!i.digitsOptional || n)) {\n var a = e.indexOf(i.radixPoint),\n r = !1;\n i.negationSymbol.back === e[e.length - 1] && (r = !0, e.length--), -1 === a && (e.push(i.radixPoint), a = e.length - 1);\n for (var o = 1; o <= t; o++) isFinite(e[a + o]) || (e[a + o] = \"0\");\n }\n return r && e.push(i.negationSymbol.back), e;\n }\n function f(e, t) {\n var i = 0;\n for (var n in \"+\" === e && (i = r.seekNext.call(this, t.validPositions.length - 1)), t.tests) if ((n = parseInt(n)) >= i) for (var a = 0, o = t.tests[n].length; a < o; a++) if ((void 0 === t.validPositions[n] || \"-\" === e) && t.tests[n][a].match.def === e) return n + (void 0 !== t.validPositions[n] && \"-\" !== e ? 1 : 0);\n return i;\n }\n function d(e, t) {\n for (var i = -1, n = 0, a = t.validPositions.length; n < a; n++) {\n var r = t.validPositions[n];\n if (r && r.match.def === e) {\n i = n;\n break;\n }\n }\n return i;\n }\n function p(e, t, i, n, a) {\n var r = t.buffer ? t.buffer.indexOf(a.radixPoint) : -1,\n o = (-1 !== r || n && a.jitMasking) && new RegExp(a.definitions[9].validator).test(e);\n return a._radixDance && -1 !== r && o && null == t.validPositions[r] ? {\n insert: {\n pos: r === i ? r + 1 : r,\n c: a.radixPoint\n },\n pos: i\n } : o;\n }\n n.default.extendAliases({\n numeric: {\n mask: function (e) {\n e.repeat = 0, e.groupSeparator === e.radixPoint && e.digits && \"0\" !== e.digits && (\".\" === e.radixPoint ? e.groupSeparator = \",\" : \",\" === e.radixPoint ? e.groupSeparator = \".\" : e.groupSeparator = \"\"), \" \" === e.groupSeparator && (e.skipOptionalPartCharacter = void 0), e.placeholder.length > 1 && (e.placeholder = e.placeholder.charAt(0)), \"radixFocus\" === e.positionCaretOnClick && \"\" === e.placeholder && (e.positionCaretOnClick = \"lvp\");\n var t = \"0\",\n i = e.radixPoint;\n !0 === e.numericInput && void 0 === e.__financeInput ? (t = \"1\", e.positionCaretOnClick = \"radixFocus\" === e.positionCaretOnClick ? \"lvp\" : e.positionCaretOnClick, e.digitsOptional = !1, isNaN(e.digits) && (e.digits = 2), e._radixDance = !1, i = \",\" === e.radixPoint ? \"?\" : \"!\", \"\" !== e.radixPoint && void 0 === e.definitions[i] && (e.definitions[i] = {}, e.definitions[i].validator = \"[\" + e.radixPoint + \"]\", e.definitions[i].placeholder = e.radixPoint, e.definitions[i].static = !0, e.definitions[i].generated = !0)) : (e.__financeInput = !1, e.numericInput = !0);\n var n,\n r = \"[+]\";\n if (r += c(e.prefix, e), \"\" !== e.groupSeparator ? (void 0 === e.definitions[e.groupSeparator] && (e.definitions[e.groupSeparator] = {}, e.definitions[e.groupSeparator].validator = \"[\" + e.groupSeparator + \"]\", e.definitions[e.groupSeparator].placeholder = e.groupSeparator, e.definitions[e.groupSeparator].static = !0, e.definitions[e.groupSeparator].generated = !0), r += e._mask(e)) : r += \"9{+}\", void 0 !== e.digits && 0 !== e.digits) {\n var o = e.digits.toString().split(\",\");\n isFinite(o[0]) && o[1] && isFinite(o[1]) ? r += i + t + \"{\" + e.digits + \"}\" : (isNaN(e.digits) || parseInt(e.digits) > 0) && (e.digitsOptional || e.jitMasking ? (n = r + i + t + \"{0,\" + e.digits + \"}\", e.keepStatic = !0) : r += i + t + \"{\" + e.digits + \"}\");\n } else e.inputmode = \"numeric\";\n return r += c(e.suffix, e), r += \"[-]\", n && (r = [n + c(e.suffix, e) + \"[-]\", r]), e.greedy = !1, function (e) {\n void 0 === e.parseMinMaxOptions && (null !== e.min && (e.min = e.min.toString().replace(new RegExp((0, a.default)(e.groupSeparator), \"g\"), \"\"), \",\" === e.radixPoint && (e.min = e.min.replace(e.radixPoint, \".\")), e.min = isFinite(e.min) ? parseFloat(e.min) : NaN, isNaN(e.min) && (e.min = Number.MIN_VALUE)), null !== e.max && (e.max = e.max.toString().replace(new RegExp((0, a.default)(e.groupSeparator), \"g\"), \"\"), \",\" === e.radixPoint && (e.max = e.max.replace(e.radixPoint, \".\")), e.max = isFinite(e.max) ? parseFloat(e.max) : NaN, isNaN(e.max) && (e.max = Number.MAX_VALUE)), e.parseMinMaxOptions = \"done\");\n }(e), \"\" !== e.radixPoint && e.substituteRadixPoint && (e.substitutes[\".\" == e.radixPoint ? \",\" : \".\"] = e.radixPoint), r;\n },\n _mask: function (e) {\n return \"(\" + e.groupSeparator + \"999){+|1}\";\n },\n digits: \"*\",\n digitsOptional: !0,\n enforceDigitsOnBlur: !1,\n radixPoint: \".\",\n positionCaretOnClick: \"radixFocus\",\n _radixDance: !0,\n groupSeparator: \"\",\n allowMinus: !0,\n negationSymbol: {\n front: \"-\",\n back: \"\"\n },\n prefix: \"\",\n suffix: \"\",\n min: null,\n max: null,\n SetMaxOnOverflow: !1,\n step: 1,\n inputType: \"text\",\n unmaskAsNumber: !1,\n roundingFN: Math.round,\n inputmode: \"decimal\",\n shortcuts: {\n k: \"1000\",\n m: \"1000000\"\n },\n placeholder: \"0\",\n greedy: !1,\n rightAlign: !0,\n insertMode: !0,\n autoUnmask: !1,\n skipOptionalPartCharacter: \"\",\n usePrototypeDefinitions: !1,\n stripLeadingZeroes: !0,\n substituteRadixPoint: !0,\n definitions: {\n 0: {\n validator: p\n },\n 1: {\n validator: p,\n definitionSymbol: \"9\"\n },\n 9: {\n validator: \"[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]\",\n definitionSymbol: \"*\"\n },\n \"+\": {\n validator: function (e, t, i, n, a) {\n return a.allowMinus && (\"-\" === e || e === a.negationSymbol.front);\n }\n },\n \"-\": {\n validator: function (e, t, i, n, a) {\n return a.allowMinus && e === a.negationSymbol.back;\n }\n }\n },\n preValidation: function (e, t, i, n, a, r, o, s) {\n if (!1 !== a.__financeInput && i === a.radixPoint) return !1;\n var l = e.indexOf(a.radixPoint),\n c = t;\n if (t = function (e, t, i, n, a) {\n return a._radixDance && a.numericInput && t !== a.negationSymbol.back && e <= i && (i > 0 || t == a.radixPoint) && (void 0 === n.validPositions[e - 1] || n.validPositions[e - 1].input !== a.negationSymbol.back) && (e -= 1), e;\n }(t, i, l, r, a), \"-\" === i || i === a.negationSymbol.front) {\n if (!0 !== a.allowMinus) return !1;\n var u = !1,\n p = d(\"+\", r),\n h = d(\"-\", r);\n return -1 !== p && (u = [p, h]), !1 !== u ? {\n remove: u,\n caret: c - a.negationSymbol.back.length\n } : {\n insert: [{\n pos: f.call(this, \"+\", r),\n c: a.negationSymbol.front,\n fromIsValid: !0\n }, {\n pos: f.call(this, \"-\", r),\n c: a.negationSymbol.back,\n fromIsValid: void 0\n }],\n caret: c + a.negationSymbol.back.length\n };\n }\n if (i === a.groupSeparator) return {\n caret: c\n };\n if (s) return !0;\n if (-1 !== l && !0 === a._radixDance && !1 === n && i === a.radixPoint && void 0 !== a.digits && (isNaN(a.digits) || parseInt(a.digits) > 0) && l !== t) return {\n caret: a._radixDance && t === l - 1 ? l + 1 : l\n };\n if (!1 === a.__financeInput) if (n) {\n if (a.digitsOptional) return {\n rewritePosition: o.end\n };\n if (!a.digitsOptional) {\n if (o.begin > l && o.end <= l) return i === a.radixPoint ? {\n insert: {\n pos: l + 1,\n c: \"0\",\n fromIsValid: !0\n },\n rewritePosition: l\n } : {\n rewritePosition: l + 1\n };\n if (o.begin < l) return {\n rewritePosition: o.begin - 1\n };\n }\n } else if (!a.showMaskOnHover && !a.showMaskOnFocus && !a.digitsOptional && a.digits > 0 && \"\" === this.__valueGet.call(this.el)) return {\n rewritePosition: l\n };\n return {\n rewritePosition: t\n };\n },\n postValidation: function (e, t, i, n, a, r, o) {\n if (!1 === n) return n;\n if (o) return !0;\n if (null !== a.min || null !== a.max) {\n var s = a.onUnMask(e.slice().reverse().join(\"\"), void 0, l.extend({}, a, {\n unmaskAsNumber: !0\n }));\n if (null !== a.min && s < a.min && (s.toString().length > a.min.toString().length || s < 0)) return !1;\n if (null !== a.max && s > a.max) return !!a.SetMaxOnOverflow && {\n refreshFromBuffer: !0,\n buffer: u(a.max.toString().replace(\".\", a.radixPoint).split(\"\"), a.digits, a).reverse()\n };\n }\n return n;\n },\n onUnMask: function (e, t, i) {\n if (\"\" === t && !0 === i.nullable) return t;\n var n = e.replace(i.prefix, \"\");\n return n = (n = n.replace(i.suffix, \"\")).replace(new RegExp((0, a.default)(i.groupSeparator), \"g\"), \"\"), \"\" !== i.placeholder.charAt(0) && (n = n.replace(new RegExp(i.placeholder.charAt(0), \"g\"), \"0\")), i.unmaskAsNumber ? (\"\" !== i.radixPoint && -1 !== n.indexOf(i.radixPoint) && (n = n.replace(a.default.call(this, i.radixPoint), \".\")), n = (n = n.replace(new RegExp(\"^\" + (0, a.default)(i.negationSymbol.front)), \"-\")).replace(new RegExp((0, a.default)(i.negationSymbol.back) + \"$\"), \"\"), Number(n)) : n;\n },\n isComplete: function (e, t) {\n var i = (t.numericInput ? e.slice().reverse() : e).join(\"\");\n return i = (i = (i = (i = (i = i.replace(new RegExp(\"^\" + (0, a.default)(t.negationSymbol.front)), \"-\")).replace(new RegExp((0, a.default)(t.negationSymbol.back) + \"$\"), \"\")).replace(t.prefix, \"\")).replace(t.suffix, \"\")).replace(new RegExp((0, a.default)(t.groupSeparator) + \"([0-9]{3})\", \"g\"), \"$1\"), \",\" === t.radixPoint && (i = i.replace((0, a.default)(t.radixPoint), \".\")), isFinite(i);\n },\n onBeforeMask: function (e, t) {\n var i = t.radixPoint || \",\";\n isFinite(t.digits) && (t.digits = parseInt(t.digits)), \"number\" != typeof e && \"number\" !== t.inputType || \"\" === i || (e = e.toString().replace(\".\", i));\n var n = \"-\" === e.charAt(0) || e.charAt(0) === t.negationSymbol.front,\n r = e.split(i),\n o = r[0].replace(/[^\\-0-9]/g, \"\"),\n s = r.length > 1 ? r[1].replace(/[^0-9]/g, \"\") : \"\",\n l = r.length > 1;\n e = o + (\"\" !== s ? i + s : s);\n var c = 0;\n if (\"\" !== i && (c = t.digitsOptional ? t.digits < s.length ? t.digits : s.length : t.digits, \"\" !== s || !t.digitsOptional)) {\n var f = Math.pow(10, c || 1);\n e = e.replace((0, a.default)(i), \".\"), isNaN(parseFloat(e)) || (e = (t.roundingFN(parseFloat(e) * f) / f).toFixed(c)), e = e.toString().replace(\".\", i);\n }\n if (0 === t.digits && -1 !== e.indexOf(i) && (e = e.substring(0, e.indexOf(i))), null !== t.min || null !== t.max) {\n var d = e.toString().replace(i, \".\");\n null !== t.min && d < t.min ? e = t.min.toString().replace(\".\", i) : null !== t.max && d > t.max && (e = t.max.toString().replace(\".\", i));\n }\n return n && \"-\" !== e.charAt(0) && (e = \"-\" + e), u(e.toString().split(\"\"), c, t, l).join(\"\");\n },\n onBeforeWrite: function (e, t, i, n) {\n function r(e, t) {\n if (!1 !== n.__financeInput || t) {\n var i = e.indexOf(n.radixPoint);\n -1 !== i && e.splice(i, 1);\n }\n if (\"\" !== n.groupSeparator) for (; -1 !== (i = e.indexOf(n.groupSeparator));) e.splice(i, 1);\n return e;\n }\n var o, s;\n if (n.stripLeadingZeroes && (s = function (e, t) {\n var i = new RegExp(\"(^\" + (\"\" !== t.negationSymbol.front ? (0, a.default)(t.negationSymbol.front) + \"?\" : \"\") + (0, a.default)(t.prefix) + \")(.*)(\" + (0, a.default)(t.suffix) + (\"\" != t.negationSymbol.back ? (0, a.default)(t.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(e.slice().reverse().join(\"\")),\n n = i ? i[2] : \"\",\n r = !1;\n return n && (n = n.split(t.radixPoint.charAt(0))[0], r = new RegExp(\"^[0\" + t.groupSeparator + \"]*\").exec(n)), !(!r || !(r[0].length > 1 || r[0].length > 0 && r[0].length < n.length)) && r;\n }(t, n))) for (var c = t.join(\"\").lastIndexOf(s[0].split(\"\").reverse().join(\"\")) - (s[0] == s.input ? 0 : 1), f = s[0] == s.input ? 1 : 0, d = s[0].length - f; d > 0; d--) delete this.maskset.validPositions[c + d], delete t[c + d];\n if (e) switch (e.type) {\n case \"blur\":\n case \"checkval\":\n if (null !== n.min) {\n var p = n.onUnMask(t.slice().reverse().join(\"\"), void 0, l.extend({}, n, {\n unmaskAsNumber: !0\n }));\n if (null !== n.min && p < n.min) return {\n refreshFromBuffer: !0,\n buffer: u(n.min.toString().replace(\".\", n.radixPoint).split(\"\"), n.digits, n).reverse()\n };\n }\n if (t[t.length - 1] === n.negationSymbol.front) {\n var h = new RegExp(\"(^\" + (\"\" != n.negationSymbol.front ? (0, a.default)(n.negationSymbol.front) + \"?\" : \"\") + (0, a.default)(n.prefix) + \")(.*)(\" + (0, a.default)(n.suffix) + (\"\" != n.negationSymbol.back ? (0, a.default)(n.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(r(t.slice(), !0).reverse().join(\"\"));\n 0 == (h ? h[2] : \"\") && (o = {\n refreshFromBuffer: !0,\n buffer: [0]\n });\n } else if (\"\" !== n.radixPoint) {\n t.indexOf(n.radixPoint) === n.suffix.length && (o && o.buffer ? o.buffer.splice(0, 1 + n.suffix.length) : (t.splice(0, 1 + n.suffix.length), o = {\n refreshFromBuffer: !0,\n buffer: r(t)\n }));\n }\n if (n.enforceDigitsOnBlur) {\n var v = (o = o || {}) && o.buffer || t.slice().reverse();\n o.refreshFromBuffer = !0, o.buffer = u(v, n.digits, n, !0).reverse();\n }\n }\n return o;\n },\n onKeyDown: function (e, t, i, n) {\n var a,\n r = l(this);\n if (3 != e.location) {\n var s,\n c = e.key;\n if ((s = n.shortcuts && n.shortcuts[c]) && s.length > 1) return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) * parseInt(s)), r.trigger(\"setvalue\"), !1;\n }\n if (e.ctrlKey) switch (e.key) {\n case o.keys.ArrowUp:\n return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) + parseInt(n.step)), r.trigger(\"setvalue\"), !1;\n case o.keys.ArrowDown:\n return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) - parseInt(n.step)), r.trigger(\"setvalue\"), !1;\n }\n if (!e.shiftKey && (e.key === o.keys.Delete || e.key === o.keys.Backspace || e.key === o.keys.BACKSPACE_SAFARI) && i.begin !== t.length) {\n if (t[e.key === o.keys.Delete ? i.begin - 1 : i.end] === n.negationSymbol.front) return a = t.slice().reverse(), \"\" !== n.negationSymbol.front && a.shift(), \"\" !== n.negationSymbol.back && a.pop(), r.trigger(\"setvalue\", [a.join(\"\"), i.begin]), !1;\n if (!0 === n._radixDance) {\n var f = t.indexOf(n.radixPoint);\n if (n.digitsOptional) {\n if (0 === f) return (a = t.slice().reverse()).pop(), r.trigger(\"setvalue\", [a.join(\"\"), i.begin >= a.length ? a.length : i.begin]), !1;\n } else if (-1 !== f && (i.begin < f || i.end < f || e.key === o.keys.Delete && (i.begin === f || i.begin - 1 === f))) {\n var d = void 0;\n return i.begin === i.end && (e.key === o.keys.Backspace || e.key === o.keys.BACKSPACE_SAFARI ? i.begin++ : e.key === o.keys.Delete && i.begin - 1 === f && (d = l.extend({}, i), i.begin--, i.end--)), (a = t.slice().reverse()).splice(a.length - i.begin, i.begin - i.end + 1), a = u(a, n.digits, n).join(\"\"), d && (i = d), r.trigger(\"setvalue\", [a, i.begin >= a.length ? f + 1 : i.begin]), !1;\n }\n }\n }\n }\n },\n currency: {\n prefix: \"\",\n groupSeparator: \",\",\n alias: \"numeric\",\n digits: 2,\n digitsOptional: !1\n },\n decimal: {\n alias: \"numeric\"\n },\n integer: {\n alias: \"numeric\",\n inputmode: \"numeric\",\n digits: 0\n },\n percentage: {\n alias: \"numeric\",\n min: 0,\n max: 100,\n suffix: \" %\",\n digits: 0,\n allowMinus: !1\n },\n indianns: {\n alias: \"numeric\",\n _mask: function (e) {\n return \"(\" + e.groupSeparator + \"99){*|1}(\" + e.groupSeparator + \"999){1|1}\";\n },\n groupSeparator: \",\",\n radixPoint: \".\",\n placeholder: \"0\",\n digits: 2,\n digitsOptional: !1\n }\n });\n },\n 9380: function (e, t, i) {\n var n;\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var a = ((n = i(8741)) && n.__esModule ? n : {\n default: n\n }).default ? window : {};\n t.default = a;\n },\n 7760: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.HandleNativePlaceholder = function (e, t) {\n var i = e ? e.inputmask : this;\n if (s.ie) {\n if (e.inputmask._valueGet() !== t && (e.placeholder !== t || \"\" === e.placeholder)) {\n var n = r.getBuffer.call(i).slice(),\n a = e.inputmask._valueGet();\n if (a !== t) {\n var o = r.getLastValidPosition.call(i);\n -1 === o && a === r.getBufferTemplate.call(i).join(\"\") ? n = [] : -1 !== o && u.call(i, n), d(e, n);\n }\n }\n } else e.placeholder !== t && (e.placeholder = t, \"\" === e.placeholder && e.removeAttribute(\"placeholder\"));\n }, t.applyInputValue = c, t.checkVal = f, t.clearOptionalTail = u, t.unmaskedvalue = function (e) {\n var t = e ? e.inputmask : this,\n i = t.opts,\n n = t.maskset;\n if (e) {\n if (void 0 === e.inputmask) return e.value;\n e.inputmask && e.inputmask.refreshValue && c(e, e.inputmask._valueGet(!0));\n }\n for (var a = [], o = n.validPositions, s = 0, l = o.length; s < l; s++) o[s] && o[s].match && (1 != o[s].match.static || Array.isArray(n.metadata) && !0 !== o[s].generatedInput) && a.push(o[s].input);\n var u = 0 === a.length ? \"\" : (t.isRTL ? a.reverse() : a).join(\"\");\n if (\"function\" == typeof i.onUnMask) {\n var f = (t.isRTL ? r.getBuffer.call(t).slice().reverse() : r.getBuffer.call(t)).join(\"\");\n u = i.onUnMask.call(t, f, u, i);\n }\n return u;\n }, t.writeBuffer = d;\n var n = i(2839),\n a = i(4713),\n r = i(8711),\n o = i(7215),\n s = i(9845),\n l = i(6030);\n function c(e, t) {\n var i = e ? e.inputmask : this,\n n = i.opts;\n e.inputmask.refreshValue = !1, \"function\" == typeof n.onBeforeMask && (t = n.onBeforeMask.call(i, t, n) || t), f(e, !0, !1, t = (t || \"\").toString().split(\"\")), i.undoValue = i._valueGet(!0), (n.clearMaskOnLostFocus || n.clearIncomplete) && e.inputmask._valueGet() === r.getBufferTemplate.call(i).join(\"\") && -1 === r.getLastValidPosition.call(i) && e.inputmask._valueSet(\"\");\n }\n function u(e) {\n e.length = 0;\n for (var t, i = a.getMaskTemplate.call(this, !0, 0, !0, void 0, !0); void 0 !== (t = i.shift());) e.push(t);\n return e;\n }\n function f(e, t, i, n, s) {\n var c = e ? e.inputmask : this,\n u = c.maskset,\n f = c.opts,\n p = c.dependencyLib,\n h = n.slice(),\n v = \"\",\n m = -1,\n g = void 0,\n y = f.skipOptionalPartCharacter;\n f.skipOptionalPartCharacter = \"\", r.resetMaskSet.call(c), u.tests = {}, m = f.radixPoint ? r.determineNewCaretPosition.call(c, {\n begin: 0,\n end: 0\n }, !1, !1 === f.__financeInput ? \"radixFocus\" : void 0).begin : 0, u.p = m, c.caretPos = {\n begin: m\n };\n var k = [],\n b = c.caretPos;\n if (h.forEach(function (e, t) {\n if (void 0 !== e) {\n var n = new p.Event(\"_checkval\");\n n.key = e, v += e;\n var o = r.getLastValidPosition.call(c, void 0, !0);\n !function (e, t) {\n for (var i = a.getMaskTemplate.call(c, !0, 0).slice(e, r.seekNext.call(c, e, !1, !1)).join(\"\").replace(/'/g, \"\"), n = i.indexOf(t); n > 0 && \" \" === i[n - 1];) n--;\n var o = 0 === n && !r.isMask.call(c, e) && (a.getTest.call(c, e).match.nativeDef === t.charAt(0) || !0 === a.getTest.call(c, e).match.static && a.getTest.call(c, e).match.nativeDef === \"'\" + t.charAt(0) || \" \" === a.getTest.call(c, e).match.nativeDef && (a.getTest.call(c, e + 1).match.nativeDef === t.charAt(0) || !0 === a.getTest.call(c, e + 1).match.static && a.getTest.call(c, e + 1).match.nativeDef === \"'\" + t.charAt(0)));\n if (!o && n > 0 && !r.isMask.call(c, e, !1, !0)) {\n var s = r.seekNext.call(c, e);\n c.caretPos.begin < s && (c.caretPos = {\n begin: s\n });\n }\n return o;\n }(m, v) ? (g = l.EventHandlers.keypressEvent.call(c, n, !0, !1, i, c.caretPos.begin)) && (m = c.caretPos.begin + 1, v = \"\") : g = l.EventHandlers.keypressEvent.call(c, n, !0, !1, i, o + 1), g ? (void 0 !== g.pos && u.validPositions[g.pos] && !0 === u.validPositions[g.pos].match.static && void 0 === u.validPositions[g.pos].alternation && (k.push(g.pos), c.isRTL || (g.forwardPosition = g.pos + 1)), d.call(c, void 0, r.getBuffer.call(c), g.forwardPosition, n, !1), c.caretPos = {\n begin: g.forwardPosition,\n end: g.forwardPosition\n }, b = c.caretPos) : void 0 === u.validPositions[t] && h[t] === a.getPlaceholder.call(c, t) && r.isMask.call(c, t, !0) ? c.caretPos.begin++ : c.caretPos = b;\n }\n }), k.length > 0) {\n var x,\n P,\n w = r.seekNext.call(c, -1, void 0, !1);\n if (!o.isComplete.call(c, r.getBuffer.call(c)) && k.length <= w || o.isComplete.call(c, r.getBuffer.call(c)) && k.length > 0 && k.length !== w && 0 === k[0]) for (var S = w; void 0 !== (x = k.shift());) {\n var M = new p.Event(\"_checkval\");\n if ((P = u.validPositions[x]).generatedInput = !0, M.key = P.input, (g = l.EventHandlers.keypressEvent.call(c, M, !0, !1, i, S)) && void 0 !== g.pos && g.pos !== x && u.validPositions[g.pos] && !0 === u.validPositions[g.pos].match.static) k.push(g.pos);else if (!g) break;\n S++;\n }\n }\n t && d.call(c, e, r.getBuffer.call(c), g ? g.forwardPosition : c.caretPos.begin, s || new p.Event(\"checkval\"), s && (\"input\" === s.type && c.undoValue !== r.getBuffer.call(c).join(\"\") || \"paste\" === s.type)), f.skipOptionalPartCharacter = y;\n }\n function d(e, t, i, a, s) {\n var l = e ? e.inputmask : this,\n c = l.opts,\n u = l.dependencyLib;\n if (a && \"function\" == typeof c.onBeforeWrite) {\n var f = c.onBeforeWrite.call(l, a, t, i, c);\n if (f) {\n if (f.refreshFromBuffer) {\n var d = f.refreshFromBuffer;\n o.refreshFromBuffer.call(l, !0 === d ? d : d.start, d.end, f.buffer || t), t = r.getBuffer.call(l, !0);\n }\n void 0 !== i && (i = void 0 !== f.caret ? f.caret : i);\n }\n }\n if (void 0 !== e && (e.inputmask._valueSet(t.join(\"\")), void 0 === i || void 0 !== a && \"blur\" === a.type || r.caret.call(l, e, i, void 0, void 0, void 0 !== a && \"keydown\" === a.type && (a.key === n.keys.Delete || a.key === n.keys.Backspace)), !0 === s)) {\n var p = u(e),\n h = e.inputmask._valueGet();\n e.inputmask.skipInputEvent = !0, p.trigger(\"input\"), setTimeout(function () {\n h === r.getBufferTemplate.call(l).join(\"\") ? p.trigger(\"cleared\") : !0 === o.isComplete.call(l, t) && p.trigger(\"complete\");\n }, 0);\n }\n }\n },\n 2394: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var n = i(157),\n a = m(i(4963)),\n r = m(i(9380)),\n o = i(2391),\n s = i(4713),\n l = i(8711),\n c = i(7215),\n u = i(7760),\n f = i(9716),\n d = m(i(7392)),\n p = m(i(3976)),\n h = m(i(8741));\n function v(e) {\n return v = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, v(e);\n }\n function m(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var g = r.default.document,\n y = \"_inputmask_opts\";\n function k(e, t, i) {\n if (h.default) {\n if (!(this instanceof k)) return new k(e, t, i);\n this.dependencyLib = a.default, this.el = void 0, this.events = {}, this.maskset = void 0, !0 !== i && (\"[object Object]\" === Object.prototype.toString.call(e) ? t = e : (t = t || {}, e && (t.alias = e)), this.opts = a.default.extend(!0, {}, this.defaults, t), this.noMasksCache = t && void 0 !== t.definitions, this.userOptions = t || {}, b(this.opts.alias, t, this.opts)), this.refreshValue = !1, this.undoValue = void 0, this.$el = void 0, this.skipInputEvent = !1, this.validationEvent = !1, this.ignorable = !1, this.maxLength, this.mouseEnter = !1, this.clicked = 0, this.originalPlaceholder = void 0, this.isComposing = !1, this.hasAlternator = !1;\n }\n }\n function b(e, t, i) {\n var n = k.prototype.aliases[e];\n return n ? (n.alias && b(n.alias, void 0, i), a.default.extend(!0, i, n), a.default.extend(!0, i, t), !0) : (null === i.mask && (i.mask = e), !1);\n }\n k.prototype = {\n dataAttribute: \"data-inputmask\",\n defaults: p.default,\n definitions: d.default,\n aliases: {},\n masksCache: {},\n get isRTL() {\n return this.opts.isRTL || this.opts.numericInput;\n },\n mask: function (e) {\n var t = this;\n return \"string\" == typeof e && (e = g.getElementById(e) || g.querySelectorAll(e)), (e = e.nodeName ? [e] : Array.isArray(e) ? e : [].slice.call(e)).forEach(function (e, i) {\n var s = a.default.extend(!0, {}, t.opts);\n if (function (e, t, i, n) {\n function o(t, a) {\n var o = \"\" === n ? t : n + \"-\" + t;\n null !== (a = void 0 !== a ? a : e.getAttribute(o)) && (\"string\" == typeof a && (0 === t.indexOf(\"on\") ? a = r.default[a] : \"false\" === a ? a = !1 : \"true\" === a && (a = !0)), i[t] = a);\n }\n if (!0 === t.importDataAttributes) {\n var s,\n l,\n c,\n u,\n f = e.getAttribute(n);\n if (f && \"\" !== f && (f = f.replace(/'/g, '\"'), l = JSON.parse(\"{\" + f + \"}\")), l) for (u in c = void 0, l) if (\"alias\" === u.toLowerCase()) {\n c = l[u];\n break;\n }\n for (s in o(\"alias\", c), i.alias && b(i.alias, i, t), t) {\n if (l) for (u in c = void 0, l) if (u.toLowerCase() === s.toLowerCase()) {\n c = l[u];\n break;\n }\n o(s, c);\n }\n }\n a.default.extend(!0, t, i), (\"rtl\" === e.dir || t.rightAlign) && (e.style.textAlign = \"right\");\n (\"rtl\" === e.dir || t.numericInput) && (e.dir = \"ltr\", e.removeAttribute(\"dir\"), t.isRTL = !0);\n return Object.keys(i).length;\n }(e, s, a.default.extend(!0, {}, t.userOptions), t.dataAttribute)) {\n var l = (0, o.generateMaskSet)(s, t.noMasksCache);\n void 0 !== l && (void 0 !== e.inputmask && (e.inputmask.opts.autoUnmask = !0, e.inputmask.remove()), e.inputmask = new k(void 0, void 0, !0), e.inputmask.opts = s, e.inputmask.noMasksCache = t.noMasksCache, e.inputmask.userOptions = a.default.extend(!0, {}, t.userOptions), e.inputmask.el = e, e.inputmask.$el = (0, a.default)(e), e.inputmask.maskset = l, a.default.data(e, y, t.userOptions), n.mask.call(e.inputmask));\n }\n }), e && e[0] && e[0].inputmask || this;\n },\n option: function (e, t) {\n return \"string\" == typeof e ? this.opts[e] : \"object\" === v(e) ? (a.default.extend(this.userOptions, e), this.el && !0 !== t && this.mask(this.el), this) : void 0;\n },\n unmaskedvalue: function (e) {\n if (this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), void 0 === this.el || void 0 !== e) {\n var t = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n u.checkVal.call(this, void 0, !1, !1, t), \"function\" == typeof this.opts.onBeforeWrite && this.opts.onBeforeWrite.call(this, void 0, l.getBuffer.call(this), 0, this.opts);\n }\n return u.unmaskedvalue.call(this, this.el);\n },\n remove: function () {\n if (this.el) {\n a.default.data(this.el, y, null);\n var e = this.opts.autoUnmask ? (0, u.unmaskedvalue)(this.el) : this._valueGet(this.opts.autoUnmask);\n e !== l.getBufferTemplate.call(this).join(\"\") ? this._valueSet(e, this.opts.autoUnmask) : this._valueSet(\"\"), f.EventRuler.off(this.el), Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this.el), \"value\") && this.__valueGet && Object.defineProperty(this.el, \"value\", {\n get: this.__valueGet,\n set: this.__valueSet,\n configurable: !0\n }) : g.__lookupGetter__ && this.el.__lookupGetter__(\"value\") && this.__valueGet && (this.el.__defineGetter__(\"value\", this.__valueGet), this.el.__defineSetter__(\"value\", this.__valueSet)), this.el.inputmask = void 0;\n }\n return this.el;\n },\n getemptymask: function () {\n return this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), (this.isRTL ? l.getBufferTemplate.call(this).reverse() : l.getBufferTemplate.call(this)).join(\"\");\n },\n hasMaskedValue: function () {\n return !this.opts.autoUnmask;\n },\n isComplete: function () {\n return this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), c.isComplete.call(this, l.getBuffer.call(this));\n },\n getmetadata: function () {\n if (this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), Array.isArray(this.maskset.metadata)) {\n var e = s.getMaskTemplate.call(this, !0, 0, !1).join(\"\");\n return this.maskset.metadata.forEach(function (t) {\n return t.mask !== e || (e = t, !1);\n }), e;\n }\n return this.maskset.metadata;\n },\n isValid: function (e) {\n if (this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), e) {\n var t = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n u.checkVal.call(this, void 0, !0, !1, t);\n } else e = this.isRTL ? l.getBuffer.call(this).slice().reverse().join(\"\") : l.getBuffer.call(this).join(\"\");\n for (var i = l.getBuffer.call(this), n = l.determineLastRequiredPosition.call(this), a = i.length - 1; a > n && !l.isMask.call(this, a); a--);\n return i.splice(n, a + 1 - n), c.isComplete.call(this, i) && e === (this.isRTL ? l.getBuffer.call(this).slice().reverse().join(\"\") : l.getBuffer.call(this).join(\"\"));\n },\n format: function (e, t) {\n this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache);\n var i = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n u.checkVal.call(this, void 0, !0, !1, i);\n var n = this.isRTL ? l.getBuffer.call(this).slice().reverse().join(\"\") : l.getBuffer.call(this).join(\"\");\n return t ? {\n value: n,\n metadata: this.getmetadata()\n } : n;\n },\n setValue: function (e) {\n this.el && (0, a.default)(this.el).trigger(\"setvalue\", [e]);\n },\n analyseMask: o.analyseMask\n }, k.extendDefaults = function (e) {\n a.default.extend(!0, k.prototype.defaults, e);\n }, k.extendDefinitions = function (e) {\n a.default.extend(!0, k.prototype.definitions, e);\n }, k.extendAliases = function (e) {\n a.default.extend(!0, k.prototype.aliases, e);\n }, k.format = function (e, t, i) {\n return k(t).format(e, i);\n }, k.unmask = function (e, t) {\n return k(t).unmaskedvalue(e);\n }, k.isValid = function (e, t) {\n return k(t).isValid(e);\n }, k.remove = function (e) {\n \"string\" == typeof e && (e = g.getElementById(e) || g.querySelectorAll(e)), (e = e.nodeName ? [e] : e).forEach(function (e) {\n e.inputmask && e.inputmask.remove();\n });\n }, k.setValue = function (e, t) {\n \"string\" == typeof e && (e = g.getElementById(e) || g.querySelectorAll(e)), (e = e.nodeName ? [e] : e).forEach(function (e) {\n e.inputmask ? e.inputmask.setValue(t) : (0, a.default)(e).trigger(\"setvalue\", [t]);\n });\n }, k.dependencyLib = a.default, r.default.Inputmask = k;\n var x = k;\n t.default = x;\n },\n 5296: function (e, t, i) {\n function n(e) {\n return n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, n(e);\n }\n var a = h(i(9380)),\n r = h(i(2394)),\n o = h(i(8741));\n function s(e, t) {\n for (var i = 0; i < t.length; i++) {\n var a = t[i];\n a.enumerable = a.enumerable || !1, a.configurable = !0, \"value\" in a && (a.writable = !0), Object.defineProperty(e, (r = a.key, o = void 0, o = function (e, t) {\n if (\"object\" !== n(e) || null === e) return e;\n var i = e[Symbol.toPrimitive];\n if (void 0 !== i) {\n var a = i.call(e, t || \"default\");\n if (\"object\" !== n(a)) return a;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === t ? String : Number)(e);\n }(r, \"string\"), \"symbol\" === n(o) ? o : String(o)), a);\n }\n var r, o;\n }\n function l(e) {\n var t = f();\n return function () {\n var i,\n a = p(e);\n if (t) {\n var r = p(this).constructor;\n i = Reflect.construct(a, arguments, r);\n } else i = a.apply(this, arguments);\n return function (e, t) {\n if (t && (\"object\" === n(t) || \"function\" == typeof t)) return t;\n if (void 0 !== t) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return function (e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }(e);\n }(this, i);\n };\n }\n function c(e) {\n var t = \"function\" == typeof Map ? new Map() : void 0;\n return c = function (e) {\n if (null === e || (i = e, -1 === Function.toString.call(i).indexOf(\"[native code]\"))) return e;\n var i;\n if (\"function\" != typeof e) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== t) {\n if (t.has(e)) return t.get(e);\n t.set(e, n);\n }\n function n() {\n return u(e, arguments, p(this).constructor);\n }\n return n.prototype = Object.create(e.prototype, {\n constructor: {\n value: n,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), d(n, e);\n }, c(e);\n }\n function u(e, t, i) {\n return u = f() ? Reflect.construct.bind() : function (e, t, i) {\n var n = [null];\n n.push.apply(n, t);\n var a = new (Function.bind.apply(e, n))();\n return i && d(a, i.prototype), a;\n }, u.apply(null, arguments);\n }\n function f() {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }\n function d(e, t) {\n return d = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (e, t) {\n return e.__proto__ = t, e;\n }, d(e, t);\n }\n function p(e) {\n return p = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n }, p(e);\n }\n function h(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var v = a.default.document;\n if (o.default && v && v.head && v.head.attachShadow && a.default.customElements && void 0 === a.default.customElements.get(\"input-mask\")) {\n var m = function (e) {\n !function (e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), t && d(e, t);\n }(o, e);\n var t,\n i,\n n,\n a = l(o);\n function o() {\n var e;\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, o);\n var t = (e = a.call(this)).getAttributeNames(),\n i = e.attachShadow({\n mode: \"closed\"\n }),\n n = v.createElement(\"input\");\n for (var s in n.type = \"text\", i.appendChild(n), t) Object.prototype.hasOwnProperty.call(t, s) && n.setAttribute(t[s], e.getAttribute(t[s]));\n var l = new r.default();\n return l.dataAttribute = \"\", l.mask(n), n.inputmask.shadowRoot = i, e;\n }\n return t = o, i && s(t.prototype, i), n && s(t, n), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), t;\n }(c(HTMLElement));\n a.default.customElements.define(\"input-mask\", m);\n }\n },\n 2839: function (e, t) {\n function i(e, t) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e, t) {\n var i = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != i) {\n var n,\n a,\n r,\n o,\n s = [],\n l = !0,\n c = !1;\n try {\n if (r = (i = i.call(e)).next, 0 === t) {\n if (Object(i) !== i) return;\n l = !1;\n } else for (; !(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0);\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return s;\n }\n }(e, t) || function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return n(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return n(e, t);\n }(e, t) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function n(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.keys = t.keyCode = void 0, t.toKey = function (e, t) {\n return r[e] || (t ? String.fromCharCode(e) : String.fromCharCode(e).toLowerCase());\n }, t.toKeyCode = function (e) {\n return a[e];\n };\n var a = {\n AltGraph: 18,\n ArrowDown: 40,\n ArrowLeft: 37,\n ArrowRight: 39,\n ArrowUp: 38,\n Backspace: 8,\n BACKSPACE_SAFARI: 127,\n CapsLock: 20,\n Delete: 46,\n End: 35,\n Enter: 13,\n Escape: 27,\n Home: 36,\n Insert: 45,\n PageDown: 34,\n PageUp: 33,\n Space: 32,\n Tab: 9,\n c: 67,\n x: 88,\n z: 90,\n Shift: 16,\n Control: 17,\n Alt: 18,\n Pause: 19,\n Meta_LEFT: 91,\n Meta_RIGHT: 92,\n ContextMenu: 93,\n Process: 229,\n Unidentified: 229,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123\n };\n t.keyCode = a;\n var r = Object.entries(a).reduce(function (e, t) {\n var n = i(t, 2),\n a = n[0],\n r = n[1];\n return e[r] = void 0 === e[r] ? a : e[r], e;\n }, {}),\n o = Object.entries(a).reduce(function (e, t) {\n var n = i(t, 2),\n a = n[0];\n n[1];\n return e[a] = \"Space\" === a ? \" \" : a, e;\n }, {});\n t.keys = o;\n },\n 2391: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.analyseMask = function (e, t, i) {\n var n,\n o,\n s,\n l,\n c,\n u,\n f = /(?:[?*+]|\\{[0-9+*]+(?:,[0-9+*]*)?(?:\\|[0-9+*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g,\n d = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g,\n p = !1,\n h = new a.default(),\n v = [],\n m = [],\n g = !1;\n function y(e, n, a) {\n a = void 0 !== a ? a : e.matches.length;\n var o = e.matches[a - 1];\n if (t) {\n if (0 === n.indexOf(\"[\") || p && /\\\\d|\\\\s|\\\\w|\\\\p/i.test(n) || \".\" === n) {\n var s = i.casing ? \"i\" : \"\";\n /^\\\\p\\{.*}$/i.test(n) && (s += \"u\"), e.matches.splice(a++, 0, {\n fn: new RegExp(n, s),\n static: !1,\n optionality: !1,\n newBlockMarker: void 0 === o ? \"master\" : o.def !== n,\n casing: null,\n def: n,\n placeholder: void 0,\n nativeDef: n\n });\n } else p && (n = n[n.length - 1]), n.split(\"\").forEach(function (t, n) {\n o = e.matches[a - 1], e.matches.splice(a++, 0, {\n fn: /[a-z]/i.test(i.staticDefinitionSymbol || t) ? new RegExp(\"[\" + (i.staticDefinitionSymbol || t) + \"]\", i.casing ? \"i\" : \"\") : null,\n static: !0,\n optionality: !1,\n newBlockMarker: void 0 === o ? \"master\" : o.def !== t && !0 !== o.static,\n casing: null,\n def: i.staticDefinitionSymbol || t,\n placeholder: void 0 !== i.staticDefinitionSymbol ? t : void 0,\n nativeDef: (p ? \"'\" : \"\") + t\n });\n });\n p = !1;\n } else {\n var l = i.definitions && i.definitions[n] || i.usePrototypeDefinitions && r.default.prototype.definitions[n];\n l && !p ? e.matches.splice(a++, 0, {\n fn: l.validator ? \"string\" == typeof l.validator ? new RegExp(l.validator, i.casing ? \"i\" : \"\") : new function () {\n this.test = l.validator;\n }() : new RegExp(\".\"),\n static: l.static || !1,\n optionality: l.optional || !1,\n defOptionality: l.optional || !1,\n newBlockMarker: void 0 === o || l.optional ? \"master\" : o.def !== (l.definitionSymbol || n),\n casing: l.casing,\n def: l.definitionSymbol || n,\n placeholder: l.placeholder,\n nativeDef: n,\n generated: l.generated\n }) : (e.matches.splice(a++, 0, {\n fn: /[a-z]/i.test(i.staticDefinitionSymbol || n) ? new RegExp(\"[\" + (i.staticDefinitionSymbol || n) + \"]\", i.casing ? \"i\" : \"\") : null,\n static: !0,\n optionality: !1,\n newBlockMarker: void 0 === o ? \"master\" : o.def !== n && !0 !== o.static,\n casing: null,\n def: i.staticDefinitionSymbol || n,\n placeholder: void 0 !== i.staticDefinitionSymbol ? n : void 0,\n nativeDef: (p ? \"'\" : \"\") + n\n }), p = !1);\n }\n }\n function k() {\n if (v.length > 0) {\n if (y(l = v[v.length - 1], o), l.isAlternator) {\n c = v.pop();\n for (var e = 0; e < c.matches.length; e++) c.matches[e].isGroup && (c.matches[e].isGroup = !1);\n v.length > 0 ? (l = v[v.length - 1]).matches.push(c) : h.matches.push(c);\n }\n } else y(h, o);\n }\n function b(e) {\n var t = new a.default(!0);\n return t.openGroup = !1, t.matches = e, t;\n }\n function x() {\n if ((s = v.pop()).openGroup = !1, void 0 !== s) {\n if (v.length > 0) {\n if ((l = v[v.length - 1]).matches.push(s), l.isAlternator) {\n for (var e = (c = v.pop()).matches[0].matches ? c.matches[0].matches.length : 1, t = 0; t < c.matches.length; t++) c.matches[t].isGroup = !1, c.matches[t].alternatorGroup = !1, null === i.keepStatic && e < (c.matches[t].matches ? c.matches[t].matches.length : 1) && (i.keepStatic = !0), e = c.matches[t].matches ? c.matches[t].matches.length : 1;\n v.length > 0 ? (l = v[v.length - 1]).matches.push(c) : h.matches.push(c);\n }\n } else h.matches.push(s);\n } else k();\n }\n function P(e) {\n var t = e.pop();\n return t.isQuantifier && (t = b([e.pop(), t])), t;\n }\n t && (i.optionalmarker[0] = void 0, i.optionalmarker[1] = void 0);\n for (; n = t ? d.exec(e) : f.exec(e);) {\n if (o = n[0], t) {\n switch (o.charAt(0)) {\n case \"?\":\n o = \"{0,1}\";\n break;\n case \"+\":\n case \"*\":\n o = \"{\" + o + \"}\";\n break;\n case \"|\":\n if (0 === v.length) {\n var w = b(h.matches);\n w.openGroup = !0, v.push(w), h.matches = [], g = !0;\n }\n }\n switch (o) {\n case \"\\\\d\":\n o = \"[0-9]\";\n break;\n case \"\\\\p\":\n o += d.exec(e)[0], o += d.exec(e)[0];\n }\n }\n if (p) k();else switch (o.charAt(0)) {\n case \"$\":\n case \"^\":\n t || k();\n break;\n case i.escapeChar:\n p = !0, t && k();\n break;\n case i.optionalmarker[1]:\n case i.groupmarker[1]:\n x();\n break;\n case i.optionalmarker[0]:\n v.push(new a.default(!1, !0));\n break;\n case i.groupmarker[0]:\n v.push(new a.default(!0));\n break;\n case i.quantifiermarker[0]:\n var S = new a.default(!1, !1, !0),\n M = (o = o.replace(/[{}?]/g, \"\")).split(\"|\"),\n _ = M[0].split(\",\"),\n O = isNaN(_[0]) ? _[0] : parseInt(_[0]),\n E = 1 === _.length ? O : isNaN(_[1]) ? _[1] : parseInt(_[1]),\n T = isNaN(M[1]) ? M[1] : parseInt(M[1]);\n \"*\" !== O && \"+\" !== O || (O = \"*\" === E ? 0 : 1), S.quantifier = {\n min: O,\n max: E,\n jit: T\n };\n var j = v.length > 0 ? v[v.length - 1].matches : h.matches;\n (n = j.pop()).isGroup || (n = b([n])), j.push(n), j.push(S);\n break;\n case i.alternatormarker:\n if (v.length > 0) {\n var A = (l = v[v.length - 1]).matches[l.matches.length - 1];\n u = l.openGroup && (void 0 === A.matches || !1 === A.isGroup && !1 === A.isAlternator) ? v.pop() : P(l.matches);\n } else u = P(h.matches);\n if (u.isAlternator) v.push(u);else if (u.alternatorGroup ? (c = v.pop(), u.alternatorGroup = !1) : c = new a.default(!1, !1, !1, !0), c.matches.push(u), v.push(c), u.openGroup) {\n u.openGroup = !1;\n var D = new a.default(!0);\n D.alternatorGroup = !0, v.push(D);\n }\n break;\n default:\n k();\n }\n }\n g && x();\n for (; v.length > 0;) s = v.pop(), h.matches.push(s);\n h.matches.length > 0 && (!function e(n) {\n n && n.matches && n.matches.forEach(function (a, r) {\n var o = n.matches[r + 1];\n (void 0 === o || void 0 === o.matches || !1 === o.isQuantifier) && a && a.isGroup && (a.isGroup = !1, t || (y(a, i.groupmarker[0], 0), !0 !== a.openGroup && y(a, i.groupmarker[1]))), e(a);\n });\n }(h), m.push(h));\n (i.numericInput || i.isRTL) && function e(t) {\n for (var n in t.matches = t.matches.reverse(), t.matches) if (Object.prototype.hasOwnProperty.call(t.matches, n)) {\n var a = parseInt(n);\n if (t.matches[n].isQuantifier && t.matches[a + 1] && t.matches[a + 1].isGroup) {\n var r = t.matches[n];\n t.matches.splice(n, 1), t.matches.splice(a + 1, 0, r);\n }\n void 0 !== t.matches[n].matches ? t.matches[n] = e(t.matches[n]) : t.matches[n] = ((o = t.matches[n]) === i.optionalmarker[0] ? o = i.optionalmarker[1] : o === i.optionalmarker[1] ? o = i.optionalmarker[0] : o === i.groupmarker[0] ? o = i.groupmarker[1] : o === i.groupmarker[1] && (o = i.groupmarker[0]), o);\n }\n var o;\n return t;\n }(m[0]);\n return m;\n }, t.generateMaskSet = function (e, t) {\n var i;\n function a(e, t) {\n var i = t.repeat,\n n = t.groupmarker,\n a = t.quantifiermarker,\n r = t.keepStatic;\n if (i > 0 || \"*\" === i || \"+\" === i) {\n var l = \"*\" === i ? 0 : \"+\" === i ? 1 : i;\n e = n[0] + e + n[1] + a[0] + l + \",\" + i + a[1];\n }\n if (!0 === r) {\n var c = e.match(new RegExp(\"(.)\\\\[([^\\\\]]*)\\\\]\", \"g\"));\n c && c.forEach(function (t, i) {\n var n = function (e, t) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e, t) {\n var i = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != i) {\n var n,\n a,\n r,\n o,\n s = [],\n l = !0,\n c = !1;\n try {\n if (r = (i = i.call(e)).next, 0 === t) {\n if (Object(i) !== i) return;\n l = !1;\n } else for (; !(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0);\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return s;\n }\n }(e, t) || function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return s(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return s(e, t);\n }(e, t) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }(t.split(\"[\"), 2),\n a = n[0],\n r = n[1];\n r = r.replace(\"]\", \"\"), e = e.replace(new RegExp(\"\".concat((0, o.default)(a), \"\\\\[\").concat((0, o.default)(r), \"\\\\]\")), a.charAt(0) === r.charAt(0) ? \"(\".concat(a, \"|\").concat(a).concat(r, \")\") : \"\".concat(a, \"[\").concat(r, \"]\"));\n });\n }\n return e;\n }\n function l(e, i, o) {\n var s,\n l,\n c = !1;\n return null !== e && \"\" !== e || ((c = null !== o.regex) ? e = (e = o.regex).replace(/^(\\^)(.*)(\\$)$/, \"$2\") : (c = !0, e = \".*\")), 1 === e.length && !1 === o.greedy && 0 !== o.repeat && (o.placeholder = \"\"), e = a(e, o), l = c ? \"regex_\" + o.regex : o.numericInput ? e.split(\"\").reverse().join(\"\") : e, null !== o.keepStatic && (l = \"ks_\" + o.keepStatic + l), void 0 === r.default.prototype.masksCache[l] || !0 === t ? (s = {\n mask: e,\n maskToken: r.default.prototype.analyseMask(e, c, o),\n validPositions: [],\n _buffer: void 0,\n buffer: void 0,\n tests: {},\n excludes: {},\n metadata: i,\n maskLength: void 0,\n jitOffset: {}\n }, !0 !== t && (r.default.prototype.masksCache[l] = s, s = n.default.extend(!0, {}, r.default.prototype.masksCache[l]))) : s = n.default.extend(!0, {}, r.default.prototype.masksCache[l]), s;\n }\n \"function\" == typeof e.mask && (e.mask = e.mask(e));\n if (Array.isArray(e.mask)) {\n if (e.mask.length > 1) {\n null === e.keepStatic && (e.keepStatic = !0);\n var c = e.groupmarker[0];\n return (e.isRTL ? e.mask.reverse() : e.mask).forEach(function (t) {\n c.length > 1 && (c += e.alternatormarker), void 0 !== t.mask && \"function\" != typeof t.mask ? c += t.mask : c += t;\n }), l(c += e.groupmarker[1], e.mask, e);\n }\n e.mask = e.mask.pop();\n }\n i = e.mask && void 0 !== e.mask.mask && \"function\" != typeof e.mask.mask ? l(e.mask.mask, e.mask, e) : l(e.mask, e.mask, e);\n null === e.keepStatic && (e.keepStatic = !1);\n return i;\n };\n var n = l(i(4963)),\n a = l(i(9695)),\n r = l(i(2394)),\n o = l(i(7184));\n function s(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n function l(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n },\n 157: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.mask = function () {\n var e = this,\n t = this.opts,\n i = this.el,\n u = this.dependencyLib;\n o.EventRuler.off(i);\n var f = function (t, i) {\n \"textarea\" !== t.tagName.toLowerCase() && i.ignorables.push(n.keys.Enter);\n var s = t.getAttribute(\"type\"),\n l = \"input\" === t.tagName.toLowerCase() && i.supportsInputType.includes(s) || t.isContentEditable || \"textarea\" === t.tagName.toLowerCase();\n if (!l) if (\"input\" === t.tagName.toLowerCase()) {\n var c = document.createElement(\"input\");\n c.setAttribute(\"type\", s), l = \"text\" === c.type, c = null;\n } else l = \"partial\";\n return !1 !== l ? function (t) {\n var n, s;\n function l() {\n return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== a.getLastValidPosition.call(e) || !0 !== i.nullable ? (this.inputmask.shadowRoot || this.ownerDocument).activeElement === this && i.clearMaskOnLostFocus ? (e.isRTL ? r.clearOptionalTail.call(e, a.getBuffer.call(e).slice()).reverse() : r.clearOptionalTail.call(e, a.getBuffer.call(e).slice())).join(\"\") : n.call(this) : \"\" : n.call(this);\n }\n function c(e) {\n s.call(this, e), this.inputmask && (0, r.applyInputValue)(this, e);\n }\n if (!t.inputmask.__valueGet) {\n if (!0 !== i.noValuePatching) {\n if (Object.getOwnPropertyDescriptor) {\n var f = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t), \"value\") : void 0;\n f && f.get && f.set ? (n = f.get, s = f.set, Object.defineProperty(t, \"value\", {\n get: l,\n set: c,\n configurable: !0\n })) : \"input\" !== t.tagName.toLowerCase() && (n = function () {\n return this.textContent;\n }, s = function (e) {\n this.textContent = e;\n }, Object.defineProperty(t, \"value\", {\n get: l,\n set: c,\n configurable: !0\n }));\n } else document.__lookupGetter__ && t.__lookupGetter__(\"value\") && (n = t.__lookupGetter__(\"value\"), s = t.__lookupSetter__(\"value\"), t.__defineGetter__(\"value\", l), t.__defineSetter__(\"value\", c));\n t.inputmask.__valueGet = n, t.inputmask.__valueSet = s;\n }\n t.inputmask._valueGet = function (t) {\n return e.isRTL && !0 !== t ? n.call(this.el).split(\"\").reverse().join(\"\") : n.call(this.el);\n }, t.inputmask._valueSet = function (t, i) {\n s.call(this.el, null == t ? \"\" : !0 !== i && e.isRTL ? t.split(\"\").reverse().join(\"\") : t);\n }, void 0 === n && (n = function () {\n return this.value;\n }, s = function (e) {\n this.value = e;\n }, function (t) {\n if (u.valHooks && (void 0 === u.valHooks[t] || !0 !== u.valHooks[t].inputmaskpatch)) {\n var n = u.valHooks[t] && u.valHooks[t].get ? u.valHooks[t].get : function (e) {\n return e.value;\n },\n o = u.valHooks[t] && u.valHooks[t].set ? u.valHooks[t].set : function (e, t) {\n return e.value = t, e;\n };\n u.valHooks[t] = {\n get: function (t) {\n if (t.inputmask) {\n if (t.inputmask.opts.autoUnmask) return t.inputmask.unmaskedvalue();\n var r = n(t);\n return -1 !== a.getLastValidPosition.call(e, void 0, void 0, t.inputmask.maskset.validPositions) || !0 !== i.nullable ? r : \"\";\n }\n return n(t);\n },\n set: function (e, t) {\n var i = o(e, t);\n return e.inputmask && (0, r.applyInputValue)(e, t), i;\n },\n inputmaskpatch: !0\n };\n }\n }(t.type), function (e) {\n o.EventRuler.on(e, \"mouseenter\", function () {\n var e = this,\n t = e.inputmask._valueGet(!0);\n t != (e.inputmask.isRTL ? a.getBuffer.call(e.inputmask).slice().reverse() : a.getBuffer.call(e.inputmask)).join(\"\") && (0, r.applyInputValue)(e, t);\n });\n }(t));\n }\n }(t) : t.inputmask = void 0, l;\n }(i, t);\n if (!1 !== f) {\n e.originalPlaceholder = i.placeholder, e.maxLength = void 0 !== i ? i.maxLength : void 0, -1 === e.maxLength && (e.maxLength = void 0), \"inputMode\" in i && null === i.getAttribute(\"inputmode\") && (i.inputMode = t.inputmode, i.setAttribute(\"inputmode\", t.inputmode)), !0 === f && (t.showMaskOnFocus = t.showMaskOnFocus && -1 === [\"cc-number\", \"cc-exp\"].indexOf(i.autocomplete), s.iphone && (t.insertModeVisual = !1, i.setAttribute(\"autocorrect\", \"off\")), o.EventRuler.on(i, \"submit\", c.EventHandlers.submitEvent), o.EventRuler.on(i, \"reset\", c.EventHandlers.resetEvent), o.EventRuler.on(i, \"blur\", c.EventHandlers.blurEvent), o.EventRuler.on(i, \"focus\", c.EventHandlers.focusEvent), o.EventRuler.on(i, \"invalid\", c.EventHandlers.invalidEvent), o.EventRuler.on(i, \"click\", c.EventHandlers.clickEvent), o.EventRuler.on(i, \"mouseleave\", c.EventHandlers.mouseleaveEvent), o.EventRuler.on(i, \"mouseenter\", c.EventHandlers.mouseenterEvent), o.EventRuler.on(i, \"paste\", c.EventHandlers.pasteEvent), o.EventRuler.on(i, \"cut\", c.EventHandlers.cutEvent), o.EventRuler.on(i, \"complete\", t.oncomplete), o.EventRuler.on(i, \"incomplete\", t.onincomplete), o.EventRuler.on(i, \"cleared\", t.oncleared), !0 !== t.inputEventOnly && o.EventRuler.on(i, \"keydown\", c.EventHandlers.keyEvent), (s.mobile || t.inputEventOnly) && i.removeAttribute(\"maxLength\"), o.EventRuler.on(i, \"input\", c.EventHandlers.inputFallBackEvent)), o.EventRuler.on(i, \"setvalue\", c.EventHandlers.setValueEvent), a.getBufferTemplate.call(e).join(\"\"), e.undoValue = e._valueGet(!0);\n var d = (i.inputmask.shadowRoot || i.ownerDocument).activeElement;\n if (\"\" !== i.inputmask._valueGet(!0) || !1 === t.clearMaskOnLostFocus || d === i) {\n (0, r.applyInputValue)(i, i.inputmask._valueGet(!0), t);\n var p = a.getBuffer.call(e).slice();\n !1 === l.isComplete.call(e, p) && t.clearIncomplete && a.resetMaskSet.call(e), t.clearMaskOnLostFocus && d !== i && (-1 === a.getLastValidPosition.call(e) ? p = [] : r.clearOptionalTail.call(e, p)), (!1 === t.clearMaskOnLostFocus || t.showMaskOnFocus && d === i || \"\" !== i.inputmask._valueGet(!0)) && (0, r.writeBuffer)(i, p), d === i && a.caret.call(e, i, a.seekNext.call(e, a.getLastValidPosition.call(e)));\n }\n }\n };\n var n = i(2839),\n a = i(8711),\n r = i(7760),\n o = i(9716),\n s = i(9845),\n l = i(7215),\n c = i(6030);\n },\n 9695: function (e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function (e, t, i, n) {\n this.matches = [], this.openGroup = e || !1, this.alternatorGroup = !1, this.isGroup = e || !1, this.isOptional = t || !1, this.isQuantifier = i || !1, this.isAlternator = n || !1, this.quantifier = {\n min: 1,\n max: 1\n };\n };\n },\n 3194: function () {\n Array.prototype.includes || Object.defineProperty(Array.prototype, \"includes\", {\n value: function (e, t) {\n if (null == this) throw new TypeError('\"this\" is null or not defined');\n var i = Object(this),\n n = i.length >>> 0;\n if (0 === n) return !1;\n for (var a = 0 | t, r = Math.max(a >= 0 ? a : n - Math.abs(a), 0); r < n;) {\n if (i[r] === e) return !0;\n r++;\n }\n return !1;\n }\n });\n },\n 9302: function () {\n var e = Function.bind.call(Function.call, Array.prototype.reduce),\n t = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable),\n i = Function.bind.call(Function.call, Array.prototype.concat),\n n = Object.keys;\n Object.entries || (Object.entries = function (a) {\n return e(n(a), function (e, n) {\n return i(e, \"string\" == typeof n && t(a, n) ? [[n, a[n]]] : []);\n }, []);\n });\n },\n 7149: function () {\n function e(t) {\n return e = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, e(t);\n }\n \"function\" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = \"object\" === e(\"test\".__proto__) ? function (e) {\n return e.__proto__;\n } : function (e) {\n return e.constructor.prototype;\n });\n },\n 4013: function () {\n String.prototype.includes || (String.prototype.includes = function (e, t) {\n return \"number\" != typeof t && (t = 0), !(t + e.length > this.length) && -1 !== this.indexOf(e, t);\n });\n },\n 8711: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.caret = function (e, t, i, n, a) {\n var r,\n o = this,\n s = this.opts;\n if (void 0 === t) return \"selectionStart\" in e && \"selectionEnd\" in e ? (t = e.selectionStart, i = e.selectionEnd) : window.getSelection ? (r = window.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode !== e && r.commonAncestorContainer !== e || (t = r.startOffset, i = r.endOffset) : document.selection && document.selection.createRange && (i = (t = 0 - (r = document.selection.createRange()).duplicate().moveStart(\"character\", -e.inputmask._valueGet().length)) + r.text.length), {\n begin: n ? t : c.call(o, t),\n end: n ? i : c.call(o, i)\n };\n if (Array.isArray(t) && (i = o.isRTL ? t[0] : t[1], t = o.isRTL ? t[1] : t[0]), void 0 !== t.begin && (i = o.isRTL ? t.begin : t.end, t = o.isRTL ? t.end : t.begin), \"number\" == typeof t) {\n t = n ? t : c.call(o, t), i = \"number\" == typeof (i = n ? i : c.call(o, i)) ? i : t;\n var l = parseInt(((e.ownerDocument.defaultView || window).getComputedStyle ? (e.ownerDocument.defaultView || window).getComputedStyle(e, null) : e.currentStyle).fontSize) * i;\n if (e.scrollLeft = l > e.scrollWidth ? l : 0, e.inputmask.caretPos = {\n begin: t,\n end: i\n }, s.insertModeVisual && !1 === s.insertMode && t === i && (a || i++), e === (e.inputmask.shadowRoot || e.ownerDocument).activeElement) if (\"setSelectionRange\" in e) e.setSelectionRange(t, i);else if (window.getSelection) {\n if (r = document.createRange(), void 0 === e.firstChild || null === e.firstChild) {\n var u = document.createTextNode(\"\");\n e.appendChild(u);\n }\n r.setStart(e.firstChild, t < e.inputmask._valueGet().length ? t : e.inputmask._valueGet().length), r.setEnd(e.firstChild, i < e.inputmask._valueGet().length ? i : e.inputmask._valueGet().length), r.collapse(!0);\n var f = window.getSelection();\n f.removeAllRanges(), f.addRange(r);\n } else e.createTextRange && ((r = e.createTextRange()).collapse(!0), r.moveEnd(\"character\", i), r.moveStart(\"character\", t), r.select());\n }\n }, t.determineLastRequiredPosition = function (e) {\n var t,\n i,\n r = this,\n s = r.maskset,\n l = r.dependencyLib,\n c = n.getMaskTemplate.call(r, !0, o.call(r), !0, !0),\n u = c.length,\n f = o.call(r),\n d = {},\n p = s.validPositions[f],\n h = void 0 !== p ? p.locator.slice() : void 0;\n for (t = f + 1; t < c.length; t++) h = (i = n.getTestTemplate.call(r, t, h, t - 1)).locator.slice(), d[t] = l.extend(!0, {}, i);\n var v = p && void 0 !== p.alternation ? p.locator[p.alternation] : void 0;\n for (t = u - 1; t > f && ((i = d[t]).match.optionality || i.match.optionalQuantifier && i.match.newBlockMarker || v && (v !== d[t].locator[p.alternation] && 1 != i.match.static || !0 === i.match.static && i.locator[p.alternation] && a.checkAlternationMatch.call(r, i.locator[p.alternation].toString().split(\",\"), v.toString().split(\",\")) && \"\" !== n.getTests.call(r, t)[0].def)) && c[t] === n.getPlaceholder.call(r, t, i.match); t--) u--;\n return e ? {\n l: u,\n def: d[u] ? d[u].match : void 0\n } : u;\n }, t.determineNewCaretPosition = function (e, t, i) {\n var a = this,\n c = a.maskset,\n u = a.opts;\n t && (a.isRTL ? e.end = e.begin : e.begin = e.end);\n if (e.begin === e.end) {\n switch (i = i || u.positionCaretOnClick) {\n case \"none\":\n break;\n case \"select\":\n e = {\n begin: 0,\n end: r.call(a).length\n };\n break;\n case \"ignore\":\n e.end = e.begin = l.call(a, o.call(a));\n break;\n case \"radixFocus\":\n if (a.clicked > 1 && 0 == c.validPositions.length) break;\n if (function (e) {\n if (\"\" !== u.radixPoint && 0 !== u.digits) {\n var t = c.validPositions;\n if (void 0 === t[e] || t[e].input === n.getPlaceholder.call(a, e)) {\n if (e < l.call(a, -1)) return !0;\n var i = r.call(a).indexOf(u.radixPoint);\n if (-1 !== i) {\n for (var o = 0, s = t.length; o < s; o++) if (t[o] && i < o && t[o].input !== n.getPlaceholder.call(a, o)) return !1;\n return !0;\n }\n }\n }\n return !1;\n }(e.begin)) {\n var f = r.call(a).join(\"\").indexOf(u.radixPoint);\n e.end = e.begin = u.numericInput ? l.call(a, f) : f;\n break;\n }\n default:\n var d = e.begin,\n p = o.call(a, d, !0),\n h = l.call(a, -1 !== p || s.call(a, 0) ? p : -1);\n if (d <= h) e.end = e.begin = s.call(a, d, !1, !0) ? d : l.call(a, d);else {\n var v = c.validPositions[p],\n m = n.getTestTemplate.call(a, h, v ? v.match.locator : void 0, v),\n g = n.getPlaceholder.call(a, h, m.match);\n if (\"\" !== g && r.call(a)[h] !== g && !0 !== m.match.optionalQuantifier && !0 !== m.match.newBlockMarker || !s.call(a, h, u.keepStatic, !0) && m.match.def === g) {\n var y = l.call(a, h);\n (d >= y || d === h) && (h = y);\n }\n e.end = e.begin = h;\n }\n }\n return e;\n }\n }, t.getBuffer = r, t.getBufferTemplate = function () {\n var e = this.maskset;\n void 0 === e._buffer && (e._buffer = n.getMaskTemplate.call(this, !1, 1), void 0 === e.buffer && (e.buffer = e._buffer.slice()));\n return e._buffer;\n }, t.getLastValidPosition = o, t.isMask = s, t.resetMaskSet = function (e) {\n var t = this.maskset;\n t.buffer = void 0, !0 !== e && (t.validPositions = [], t.p = 0);\n }, t.seekNext = l, t.seekPrevious = function (e, t) {\n var i = this,\n a = e - 1;\n if (e <= 0) return 0;\n for (; a > 0 && (!0 === t && (!0 !== n.getTest.call(i, a).match.newBlockMarker || !s.call(i, a, void 0, !0)) || !0 !== t && !s.call(i, a, void 0, !0));) a--;\n return a;\n }, t.translatePosition = c;\n var n = i(4713),\n a = i(7215);\n function r(e) {\n var t = this,\n i = t.maskset;\n return void 0 !== i.buffer && !0 !== e || (i.buffer = n.getMaskTemplate.call(t, !0, o.call(t), !0), void 0 === i._buffer && (i._buffer = i.buffer.slice())), i.buffer;\n }\n function o(e, t, i) {\n var n = this.maskset,\n a = -1,\n r = -1,\n o = i || n.validPositions;\n void 0 === e && (e = -1);\n for (var s = 0, l = o.length; s < l; s++) o[s] && (t || !0 !== o[s].generatedInput) && (s <= e && (a = s), s >= e && (r = s));\n return -1 === a || a == e ? r : -1 == r || e - a < r - e ? a : r;\n }\n function s(e, t, i) {\n var a = this,\n r = this.maskset,\n o = n.getTestTemplate.call(a, e).match;\n if (\"\" === o.def && (o = n.getTest.call(a, e).match), !0 !== o.static) return o.fn;\n if (!0 === i && void 0 !== r.validPositions[e] && !0 !== r.validPositions[e].generatedInput) return !0;\n if (!0 !== t && e > -1) {\n if (i) {\n var s = n.getTests.call(a, e);\n return s.length > 1 + (\"\" === s[s.length - 1].match.def ? 1 : 0);\n }\n var l = n.determineTestTemplate.call(a, e, n.getTests.call(a, e)),\n c = n.getPlaceholder.call(a, e, l.match);\n return l.match.def !== c;\n }\n return !1;\n }\n function l(e, t, i) {\n var a = this;\n void 0 === i && (i = !0);\n for (var r = e + 1; \"\" !== n.getTest.call(a, r).match.def && (!0 === t && (!0 !== n.getTest.call(a, r).match.newBlockMarker || !s.call(a, r, void 0, !0)) || !0 !== t && !s.call(a, r, void 0, i));) r++;\n return r;\n }\n function c(e) {\n var t = this.opts,\n i = this.el;\n return !this.isRTL || \"number\" != typeof e || t.greedy && \"\" === t.placeholder || !i || (e = this._valueGet().length - e) < 0 && (e = 0), e;\n }\n },\n 4713: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.determineTestTemplate = c, t.getDecisionTaker = o, t.getMaskTemplate = function (e, t, i, n, a) {\n var r = this,\n o = this.opts,\n u = this.maskset,\n f = o.greedy;\n a && o.greedy && (o.greedy = !1, r.maskset.tests = {});\n t = t || 0;\n var p,\n h,\n v,\n m,\n g = [],\n y = 0;\n do {\n if (!0 === e && u.validPositions[y]) h = (v = a && u.validPositions[y].match.optionality && void 0 === u.validPositions[y + 1] && (!0 === u.validPositions[y].generatedInput || u.validPositions[y].input == o.skipOptionalPartCharacter && y > 0) ? c.call(r, y, d.call(r, y, p, y - 1)) : u.validPositions[y]).match, p = v.locator.slice(), g.push(!0 === i ? v.input : !1 === i ? h.nativeDef : s.call(r, y, h));else {\n h = (v = l.call(r, y, p, y - 1)).match, p = v.locator.slice();\n var k = !0 !== n && (!1 !== o.jitMasking ? o.jitMasking : h.jit);\n (m = (m && h.static && h.def !== o.groupSeparator && null === h.fn || u.validPositions[y - 1] && h.static && h.def !== o.groupSeparator && null === h.fn) && u.tests[y]) || !1 === k || void 0 === k || \"number\" == typeof k && isFinite(k) && k > y ? g.push(!1 === i ? h.nativeDef : s.call(r, g.length, h)) : m = !1;\n }\n y++;\n } while (!0 !== h.static || \"\" !== h.def || t > y);\n \"\" === g[g.length - 1] && g.pop();\n !1 === i && void 0 !== u.maskLength || (u.maskLength = y - 1);\n return o.greedy = f, g;\n }, t.getPlaceholder = s, t.getTest = u, t.getTestTemplate = l, t.getTests = d, t.isSubsetOf = f;\n var n,\n a = (n = i(2394)) && n.__esModule ? n : {\n default: n\n };\n function r(e, t) {\n var i = (null != e.alternation ? e.mloc[o(e)] : e.locator).join(\"\");\n if (\"\" !== i) for (; i.length < t;) i += \"0\";\n return i;\n }\n function o(e) {\n var t = e.locator[e.alternation];\n return \"string\" == typeof t && t.length > 0 && (t = t.split(\",\")[0]), void 0 !== t ? t.toString() : \"\";\n }\n function s(e, t, i) {\n var n = this.opts,\n a = this.maskset;\n if (void 0 !== (t = t || u.call(this, e).match).placeholder || !0 === i) return \"function\" == typeof t.placeholder ? t.placeholder(n) : t.placeholder;\n if (!0 === t.static) {\n if (e > -1 && void 0 === a.validPositions[e]) {\n var r,\n o = d.call(this, e),\n s = [];\n if (o.length > 1 + (\"\" === o[o.length - 1].match.def ? 1 : 0)) for (var l = 0; l < o.length; l++) if (\"\" !== o[l].match.def && !0 !== o[l].match.optionality && !0 !== o[l].match.optionalQuantifier && (!0 === o[l].match.static || void 0 === r || !1 !== o[l].match.fn.test(r.match.def, a, e, !0, n)) && (s.push(o[l]), !0 === o[l].match.static && (r = o[l]), s.length > 1 && /[0-9a-bA-Z]/.test(s[0].match.def))) return n.placeholder.charAt(e % n.placeholder.length);\n }\n return t.def;\n }\n return n.placeholder.charAt(e % n.placeholder.length);\n }\n function l(e, t, i) {\n return this.maskset.validPositions[e] || c.call(this, e, d.call(this, e, t ? t.slice() : t, i));\n }\n function c(e, t) {\n var i = this.opts,\n n = 0,\n a = function (e, t) {\n var i = 0,\n n = !1;\n t.forEach(function (e) {\n e.match.optionality && (0 !== i && i !== e.match.optionality && (n = !0), (0 === i || i > e.match.optionality) && (i = e.match.optionality));\n }), i && (0 == e || 1 == t.length ? i = 0 : n || (i = 0));\n return i;\n }(e, t);\n e = e > 0 ? e - 1 : 0;\n var o,\n s,\n l,\n c = r(u.call(this, e));\n i.greedy && t.length > 1 && \"\" === t[t.length - 1].match.def && (n = 1);\n for (var f = 0; f < t.length - n; f++) {\n var d = t[f];\n o = r(d, c.length);\n var p = Math.abs(o - c);\n (void 0 === s || \"\" !== o && p < s || l && !i.greedy && l.match.optionality && l.match.optionality - a > 0 && \"master\" === l.match.newBlockMarker && (!d.match.optionality || d.match.optionality - a < 1 || !d.match.newBlockMarker) || l && !i.greedy && l.match.optionalQuantifier && !d.match.optionalQuantifier) && (s = p, l = d);\n }\n return l;\n }\n function u(e, t) {\n var i = this.maskset;\n return i.validPositions[e] ? i.validPositions[e] : (t || d.call(this, e))[0];\n }\n function f(e, t, i) {\n function n(e) {\n for (var t, i = [], n = -1, a = 0, r = e.length; a < r; a++) if (\"-\" === e.charAt(a)) for (t = e.charCodeAt(a + 1); ++n < t;) i.push(String.fromCharCode(n));else n = e.charCodeAt(a), i.push(e.charAt(a));\n return i.join(\"\");\n }\n return e.match.def === t.match.nativeDef || !(!(i.regex || e.match.fn instanceof RegExp && t.match.fn instanceof RegExp) || !0 === e.match.static || !0 === t.match.static) && -1 !== n(t.match.fn.toString().replace(/[[\\]/]/g, \"\")).indexOf(n(e.match.fn.toString().replace(/[[\\]/]/g, \"\")));\n }\n function d(e, t, i) {\n var n,\n r,\n o = this,\n s = this.dependencyLib,\n l = this.maskset,\n u = this.opts,\n d = this.el,\n p = l.maskToken,\n h = t ? i : 0,\n v = t ? t.slice() : [0],\n m = [],\n g = !1,\n y = t ? t.join(\"\") : \"\";\n function k(t, i, r, s) {\n function c(r, s, p) {\n function v(e, t) {\n var i = 0 === t.matches.indexOf(e);\n return i || t.matches.every(function (n, a) {\n return !0 === n.isQuantifier ? i = v(e, t.matches[a - 1]) : Object.prototype.hasOwnProperty.call(n, \"matches\") && (i = v(e, n)), !i;\n }), i;\n }\n function x(e, t, i) {\n var n, a;\n if ((l.tests[e] || l.validPositions[e]) && (l.tests[e] || [l.validPositions[e]]).every(function (e, r) {\n if (e.mloc[t]) return n = e, !1;\n var o = void 0 !== i ? i : e.alternation,\n s = void 0 !== e.locator[o] ? e.locator[o].toString().indexOf(t) : -1;\n return (void 0 === a || s < a) && -1 !== s && (n = e, a = s), !0;\n }), n) {\n var r = n.locator[n.alternation];\n return (n.mloc[t] || n.mloc[r] || n.locator).slice((void 0 !== i ? i : n.alternation) + 1);\n }\n return void 0 !== i ? x(e, t) : void 0;\n }\n function P(e, t) {\n var i = e.alternation,\n n = void 0 === t || i === t.alternation && -1 === e.locator[i].toString().indexOf(t.locator[i]);\n if (!n && i > t.alternation) for (var a = t.alternation; a < i; a++) if (e.locator[a] !== t.locator[a]) {\n i = a, n = !0;\n break;\n }\n if (n) {\n e.mloc = e.mloc || {};\n var r = e.locator[i];\n if (void 0 !== r) {\n if (\"string\" == typeof r && (r = r.split(\",\")[0]), void 0 === e.mloc[r] && (e.mloc[r] = e.locator.slice()), void 0 !== t) {\n for (var o in t.mloc) \"string\" == typeof o && (o = o.split(\",\")[0]), void 0 === e.mloc[o] && (e.mloc[o] = t.mloc[o]);\n e.locator[i] = Object.keys(e.mloc).join(\",\");\n }\n return !0;\n }\n e.alternation = void 0;\n }\n return !1;\n }\n function w(e, t) {\n if (e.locator.length !== t.locator.length) return !1;\n for (var i = e.alternation + 1; i < e.locator.length; i++) if (e.locator[i] !== t.locator[i]) return !1;\n return !0;\n }\n if (h > e + u._maxTestPos) throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + l.mask;\n if (h === e && void 0 === r.matches) {\n if (m.push({\n match: r,\n locator: s.reverse(),\n cd: y,\n mloc: {}\n }), !r.optionality || void 0 !== p || !(u.definitions && u.definitions[r.nativeDef] && u.definitions[r.nativeDef].optional || a.default.prototype.definitions[r.nativeDef] && a.default.prototype.definitions[r.nativeDef].optional)) return !0;\n g = !0, h = e;\n } else if (void 0 !== r.matches) {\n if (r.isGroup && p !== r) return function () {\n if (r = c(t.matches[t.matches.indexOf(r) + 1], s, p)) return !0;\n }();\n if (r.isOptional) return function () {\n var t = r,\n a = m.length;\n if (r = k(r, i, s, p), m.length > 0) {\n if (m.forEach(function (e, t) {\n t >= a && (e.match.optionality = e.match.optionality ? e.match.optionality + 1 : 1);\n }), n = m[m.length - 1].match, void 0 !== p || !v(n, t)) return r;\n g = !0, h = e;\n }\n }();\n if (r.isAlternator) return function () {\n o.hasAlternator = !0;\n var n,\n a,\n v,\n y = r,\n k = [],\n b = m.slice(),\n S = s.length,\n M = !1,\n _ = i.length > 0 ? i.shift() : -1;\n if (-1 === _ || \"string\" == typeof _) {\n var O,\n E = h,\n T = i.slice(),\n j = [];\n if (\"string\" == typeof _) j = _.split(\",\");else for (O = 0; O < y.matches.length; O++) j.push(O.toString());\n if (void 0 !== l.excludes[e]) {\n for (var A = j.slice(), D = 0, B = l.excludes[e].length; D < B; D++) {\n var C = l.excludes[e][D].toString().split(\":\");\n s.length == C[1] && j.splice(j.indexOf(C[0]), 1);\n }\n 0 === j.length && (delete l.excludes[e], j = A);\n }\n (!0 === u.keepStatic || isFinite(parseInt(u.keepStatic)) && E >= u.keepStatic) && (j = j.slice(0, 1));\n for (var R = 0; R < j.length; R++) {\n O = parseInt(j[R]), m = [], i = \"string\" == typeof _ && x(h, O, S) || T.slice();\n var L = y.matches[O];\n if (L && c(L, [O].concat(s), p)) r = !0;else if (0 === R && (M = !0), L && L.matches && L.matches.length > y.matches[0].matches.length) break;\n n = m.slice(), h = E, m = [];\n for (var F = 0; F < n.length; F++) {\n var I = n[F],\n N = !1;\n I.match.jit = I.match.jit || M, I.alternation = I.alternation || S, P(I);\n for (var V = 0; V < k.length; V++) {\n var G = k[V];\n if (\"string\" != typeof _ || void 0 !== I.alternation && j.includes(I.locator[I.alternation].toString())) {\n if (I.match.nativeDef === G.match.nativeDef) {\n N = !0, P(G, I);\n break;\n }\n if (f(I, G, u)) {\n P(I, G) && (N = !0, k.splice(k.indexOf(G), 0, I));\n break;\n }\n if (f(G, I, u)) {\n P(G, I);\n break;\n }\n if (v = G, !0 === (a = I).match.static && !0 !== v.match.static && v.match.fn.test(a.match.def, l, e, !1, u, !1)) {\n w(I, G) || void 0 !== d.inputmask.userOptions.keepStatic ? P(I, G) && (N = !0, k.splice(k.indexOf(G), 0, I)) : u.keepStatic = !0;\n break;\n }\n }\n }\n N || k.push(I);\n }\n }\n m = b.concat(k), h = e, g = m.length > 0, r = k.length > 0, i = T.slice();\n } else r = c(y.matches[_] || t.matches[_], [_].concat(s), p);\n if (r) return !0;\n }();\n if (r.isQuantifier && p !== t.matches[t.matches.indexOf(r) - 1]) return function () {\n for (var a = r, o = !1, f = i.length > 0 ? i.shift() : 0; f < (isNaN(a.quantifier.max) ? f + 1 : a.quantifier.max) && h <= e; f++) {\n var d = t.matches[t.matches.indexOf(a) - 1];\n if (r = c(d, [f].concat(s), d)) {\n if (m.forEach(function (t, i) {\n (n = b(d, t.match) ? t.match : m[m.length - 1].match).optionalQuantifier = f >= a.quantifier.min, n.jit = (f + 1) * (d.matches.indexOf(n) + 1) > a.quantifier.jit, n.optionalQuantifier && v(n, d) && (g = !0, h = e, u.greedy && null == l.validPositions[e - 1] && f > a.quantifier.min && -1 != [\"*\", \"+\"].indexOf(a.quantifier.max) && (m.pop(), y = void 0), o = !0, r = !1), !o && n.jit && (l.jitOffset[e] = d.matches.length - d.matches.indexOf(n));\n }), o) break;\n return !0;\n }\n }\n }();\n if (r = k(r, i, s, p)) return !0;\n } else h++;\n }\n for (var p = i.length > 0 ? i.shift() : 0; p < t.matches.length; p++) if (!0 !== t.matches[p].isQuantifier) {\n var v = c(t.matches[p], [p].concat(r), s);\n if (v && h === e) return v;\n if (h > e) break;\n }\n }\n function b(e, t) {\n var i = -1 != e.matches.indexOf(t);\n return i || e.matches.forEach(function (e, n) {\n void 0 === e.matches || i || (i = b(e, t));\n }), i;\n }\n if (e > -1) {\n if (void 0 === t) {\n for (var x, P = e - 1; void 0 === (x = l.validPositions[P] || l.tests[P]) && P > -1;) P--;\n void 0 !== x && P > -1 && (v = function (e, t) {\n var i,\n n = [];\n return Array.isArray(t) || (t = [t]), t.length > 0 && (void 0 === t[0].alternation || !0 === u.keepStatic ? 0 === (n = c.call(o, e, t.slice()).locator.slice()).length && (n = t[0].locator.slice()) : t.forEach(function (e) {\n \"\" !== e.def && (0 === n.length ? (i = e.alternation, n = e.locator.slice()) : e.locator[i] && -1 === n[i].toString().indexOf(e.locator[i]) && (n[i] += \",\" + e.locator[i]));\n })), n;\n }(P, x), y = v.join(\"\"), h = P);\n }\n if (l.tests[e] && l.tests[e][0].cd === y) return l.tests[e];\n for (var w = v.shift(); w < p.length; w++) {\n if (k(p[w], v, [w]) && h === e || h > e) break;\n }\n }\n return (0 === m.length || g) && m.push({\n match: {\n fn: null,\n static: !0,\n optionality: !1,\n casing: null,\n def: \"\",\n placeholder: \"\"\n },\n locator: [],\n mloc: {},\n cd: y\n }), void 0 !== t && l.tests[e] ? r = s.extend(!0, [], m) : (l.tests[e] = s.extend(!0, [], m), r = l.tests[e]), m.forEach(function (e) {\n e.match.optionality = e.match.defOptionality || !1;\n }), r;\n }\n },\n 7215: function (e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.alternate = s, t.checkAlternationMatch = function (e, t, i) {\n for (var n, a = this.opts.greedy ? t : t.slice(0, 1), r = !1, o = void 0 !== i ? i.split(\",\") : [], s = 0; s < o.length; s++) -1 !== (n = e.indexOf(o[s])) && e.splice(n, 1);\n for (var l = 0; l < e.length; l++) if (a.includes(e[l])) {\n r = !0;\n break;\n }\n return r;\n }, t.handleRemove = function (e, t, i, o, l) {\n var c = this,\n u = this.maskset,\n f = this.opts;\n if ((f.numericInput || c.isRTL) && (t === a.keys.Backspace ? t = a.keys.Delete : t === a.keys.Delete && (t = a.keys.Backspace), c.isRTL)) {\n var d = i.end;\n i.end = i.begin, i.begin = d;\n }\n var p,\n h = r.getLastValidPosition.call(c, void 0, !0);\n i.end >= r.getBuffer.call(c).length && h >= i.end && (i.end = h + 1);\n t === a.keys.Backspace ? i.end - i.begin < 1 && (i.begin = r.seekPrevious.call(c, i.begin)) : t === a.keys.Delete && i.begin === i.end && (i.end = r.isMask.call(c, i.end, !0, !0) ? i.end + 1 : r.seekNext.call(c, i.end) + 1);\n if (!1 !== (p = v.call(c, i))) {\n if (!0 !== o && !1 !== f.keepStatic || null !== f.regex && -1 !== n.getTest.call(c, i.begin).match.def.indexOf(\"|\")) {\n var m = s.call(c, !0);\n if (m) {\n var g = void 0 !== m.caret ? m.caret : m.pos ? r.seekNext.call(c, m.pos.begin ? m.pos.begin : m.pos) : r.getLastValidPosition.call(c, -1, !0);\n (t !== a.keys.Delete || i.begin > g) && i.begin;\n }\n }\n !0 !== o && (u.p = t === a.keys.Delete ? i.begin + p : i.begin, u.p = r.determineNewCaretPosition.call(c, {\n begin: u.p,\n end: u.p\n }, !1, !1 === f.insertMode && t === a.keys.Backspace ? \"none\" : void 0).begin);\n }\n }, t.isComplete = c, t.isSelection = u, t.isValid = f, t.refreshFromBuffer = p, t.revalidateMask = v;\n var n = i(4713),\n a = i(2839),\n r = i(8711),\n o = i(6030);\n function s(e, t, i, a, o, l) {\n var c,\n u,\n d,\n p,\n h,\n v,\n m,\n g,\n y,\n k,\n b,\n x = this,\n P = this.dependencyLib,\n w = this.opts,\n S = x.maskset,\n M = P.extend(!0, [], S.validPositions),\n _ = P.extend(!0, {}, S.tests),\n O = !1,\n E = !1,\n T = void 0 !== o ? o : r.getLastValidPosition.call(x);\n if (l && (k = l.begin, b = l.end, l.begin > l.end && (k = l.end, b = l.begin)), -1 === T && void 0 === o) c = 0, u = (p = n.getTest.call(x, c)).alternation;else for (; T >= 0; T--) if ((d = S.validPositions[T]) && void 0 !== d.alternation) {\n if (T <= (e || 0) && p && p.locator[d.alternation] !== d.locator[d.alternation]) break;\n c = T, u = S.validPositions[c].alternation, p = d;\n }\n if (void 0 !== u) {\n m = parseInt(c), S.excludes[m] = S.excludes[m] || [], !0 !== e && S.excludes[m].push((0, n.getDecisionTaker)(p) + \":\" + p.alternation);\n var j = [],\n A = -1;\n for (h = m; h < r.getLastValidPosition.call(x, void 0, !0) + 1; h++) -1 === A && e <= h && void 0 !== t && (j.push(t), A = j.length - 1), (v = S.validPositions[h]) && !0 !== v.generatedInput && (void 0 === l || h < k || h >= b) && j.push(v.input), delete S.validPositions[h];\n for (-1 === A && void 0 !== t && (j.push(t), A = j.length - 1); void 0 !== S.excludes[m] && S.excludes[m].length < 10;) {\n for (S.tests = {}, r.resetMaskSet.call(x, !0), O = !0, h = 0; h < j.length && (g = O.caret || r.getLastValidPosition.call(x, void 0, !0) + 1, y = j[h], O = f.call(x, g, y, !1, a, !0)); h++) h === A && (E = O), 1 == e && O && (E = {\n caretPos: h\n });\n if (O) break;\n if (r.resetMaskSet.call(x), p = n.getTest.call(x, m), S.validPositions = P.extend(!0, [], M), S.tests = P.extend(!0, {}, _), !S.excludes[m]) {\n E = s.call(x, e, t, i, a, m - 1, l);\n break;\n }\n var D = (0, n.getDecisionTaker)(p);\n if (-1 !== S.excludes[m].indexOf(D + \":\" + p.alternation)) {\n E = s.call(x, e, t, i, a, m - 1, l);\n break;\n }\n for (S.excludes[m].push(D + \":\" + p.alternation), h = m; h < r.getLastValidPosition.call(x, void 0, !0) + 1; h++) delete S.validPositions[h];\n }\n }\n return E && !1 === w.keepStatic || delete S.excludes[m], E;\n }\n function l(e, t, i) {\n var n = this.opts,\n r = this.maskset;\n switch (n.casing || t.casing) {\n case \"upper\":\n e = e.toUpperCase();\n break;\n case \"lower\":\n e = e.toLowerCase();\n break;\n case \"title\":\n var o = r.validPositions[i - 1];\n e = 0 === i || o && o.input === String.fromCharCode(a.keyCode.Space) ? e.toUpperCase() : e.toLowerCase();\n break;\n default:\n if (\"function\" == typeof n.casing) {\n var s = Array.prototype.slice.call(arguments);\n s.push(r.validPositions), e = n.casing.apply(this, s);\n }\n }\n return e;\n }\n function c(e) {\n var t = this,\n i = this.opts,\n a = this.maskset;\n if (\"function\" == typeof i.isComplete) return i.isComplete(e, i);\n if (\"*\" !== i.repeat) {\n var o = !1,\n s = r.determineLastRequiredPosition.call(t, !0),\n l = r.seekPrevious.call(t, s.l);\n if (void 0 === s.def || s.def.newBlockMarker || s.def.optionality || s.def.optionalQuantifier) {\n o = !0;\n for (var c = 0; c <= l; c++) {\n var u = n.getTestTemplate.call(t, c).match;\n if (!0 !== u.static && void 0 === a.validPositions[c] && !0 !== u.optionality && !0 !== u.optionalQuantifier || !0 === u.static && e[c] !== n.getPlaceholder.call(t, c, u)) {\n o = !1;\n break;\n }\n }\n }\n return o;\n }\n }\n function u(e) {\n var t = this.opts.insertMode ? 0 : 1;\n return this.isRTL ? e.begin - e.end > t : e.end - e.begin > t;\n }\n function f(e, t, i, a, o, d, m) {\n var g = this,\n y = this.dependencyLib,\n k = this.opts,\n b = g.maskset;\n i = !0 === i;\n var x = e;\n function P(e) {\n if (void 0 !== e) {\n if (void 0 !== e.remove && (Array.isArray(e.remove) || (e.remove = [e.remove]), e.remove.sort(function (e, t) {\n return g.isRTL ? e.pos - t.pos : t.pos - e.pos;\n }).forEach(function (e) {\n v.call(g, {\n begin: e,\n end: e + 1\n });\n }), e.remove = void 0), void 0 !== e.insert && (Array.isArray(e.insert) || (e.insert = [e.insert]), e.insert.sort(function (e, t) {\n return g.isRTL ? t.pos - e.pos : e.pos - t.pos;\n }).forEach(function (e) {\n \"\" !== e.c && f.call(g, e.pos, e.c, void 0 === e.strict || e.strict, void 0 !== e.fromIsValid ? e.fromIsValid : a);\n }), e.insert = void 0), e.refreshFromBuffer && e.buffer) {\n var t = e.refreshFromBuffer;\n p.call(g, !0 === t ? t : t.start, t.end, e.buffer), e.refreshFromBuffer = void 0;\n }\n void 0 !== e.rewritePosition && (x = e.rewritePosition, e = !0);\n }\n return e;\n }\n function w(t, i, o) {\n var s = !1;\n return n.getTests.call(g, t).every(function (c, f) {\n var d = c.match;\n if (r.getBuffer.call(g, !0), !1 !== (s = (!d.jit || void 0 !== b.validPositions[r.seekPrevious.call(g, t)]) && (null != d.fn ? d.fn.test(i, b, t, o, k, u.call(g, e)) : (i === d.def || i === k.skipOptionalPartCharacter) && \"\" !== d.def && {\n c: n.getPlaceholder.call(g, t, d, !0) || d.def,\n pos: t\n }))) {\n var p = void 0 !== s.c ? s.c : i,\n h = t;\n return p = p === k.skipOptionalPartCharacter && !0 === d.static ? n.getPlaceholder.call(g, t, d, !0) || d.def : p, !0 !== (s = P(s)) && void 0 !== s.pos && s.pos !== t && (h = s.pos), !0 !== s && void 0 === s.pos && void 0 === s.c ? !1 : (!1 === v.call(g, e, y.extend({}, c, {\n input: l.call(g, p, d, h)\n }), a, h) && (s = !1), !1);\n }\n return !0;\n }), s;\n }\n void 0 !== e.begin && (x = g.isRTL ? e.end : e.begin);\n var S = !0,\n M = y.extend(!0, {}, b.validPositions);\n if (!1 === k.keepStatic && void 0 !== b.excludes[x] && !0 !== o && !0 !== a) for (var _ = x; _ < (g.isRTL ? e.begin : e.end); _++) void 0 !== b.excludes[_] && (b.excludes[_] = void 0, delete b.tests[_]);\n if (\"function\" == typeof k.preValidation && !0 !== a && !0 !== d && (S = P(S = k.preValidation.call(g, r.getBuffer.call(g), x, t, u.call(g, e), k, b, e, i || o))), !0 === S) {\n if (S = w(x, t, i), (!i || !0 === a) && !1 === S && !0 !== d) {\n var O = b.validPositions[x];\n if (!O || !0 !== O.match.static || O.match.def !== t && t !== k.skipOptionalPartCharacter) {\n if (k.insertMode || void 0 === b.validPositions[r.seekNext.call(g, x)] || e.end > x) {\n var E = !1;\n if (b.jitOffset[x] && void 0 === b.validPositions[r.seekNext.call(g, x)] && !1 !== (S = f.call(g, x + b.jitOffset[x], t, !0, !0)) && (!0 !== o && (S.caret = x), E = !0), e.end > x && (b.validPositions[x] = void 0), !E && !r.isMask.call(g, x, k.keepStatic && 0 === x)) for (var T = x + 1, j = r.seekNext.call(g, x, !1, 0 !== x); T <= j; T++) if (!1 !== (S = w(T, t, i))) {\n S = h.call(g, x, void 0 !== S.pos ? S.pos : T) || S, x = T;\n break;\n }\n }\n } else S = {\n caret: r.seekNext.call(g, x)\n };\n }\n g.hasAlternator && !0 !== o && !i && (!1 === S && k.keepStatic && (c.call(g, r.getBuffer.call(g)) || 0 === x) ? S = s.call(g, x, t, i, a, void 0, e) : (u.call(g, e) && b.tests[x] && b.tests[x].length > 1 && k.keepStatic || 1 == S && !0 !== k.numericInput && b.tests[x] && b.tests[x].length > 1 && r.getLastValidPosition.call(g, void 0, !0) > x) && (S = s.call(g, !0))), !0 === S && (S = {\n pos: x\n });\n }\n if (\"function\" == typeof k.postValidation && !0 !== a && !0 !== d) {\n var A = k.postValidation.call(g, r.getBuffer.call(g, !0), void 0 !== e.begin ? g.isRTL ? e.end : e.begin : e, t, S, k, b, i, m);\n void 0 !== A && (S = !0 === A ? S : A);\n }\n S && void 0 === S.pos && (S.pos = x), !1 === S || !0 === d ? (r.resetMaskSet.call(g, !0), b.validPositions = y.extend(!0, [], M)) : h.call(g, void 0, x, !0);\n var D = P(S);\n void 0 !== g.maxLength && r.getBuffer.call(g).length > g.maxLength && !a && (r.resetMaskSet.call(g, !0), b.validPositions = y.extend(!0, [], M), D = !1);\n return D;\n }\n function d(e, t, i) {\n for (var a = this.maskset, r = !1, o = n.getTests.call(this, e), s = 0; s < o.length; s++) {\n if (o[s].match && (o[s].match.nativeDef === t.match[i.shiftPositions ? \"def\" : \"nativeDef\"] && (!i.shiftPositions || !t.match.static) || o[s].match.nativeDef === t.match.nativeDef || i.regex && !o[s].match.static && o[s].match.fn.test(t.input, a, e, !1, i))) {\n r = !0;\n break;\n }\n if (o[s].match && o[s].match.def === t.match.nativeDef) {\n r = void 0;\n break;\n }\n }\n return !1 === r && void 0 !== a.jitOffset[e] && (r = d.call(this, e + a.jitOffset[e], t, i)), r;\n }\n function p(e, t, i) {\n var n,\n a,\n s = this,\n l = this.maskset,\n c = this.opts,\n u = this.dependencyLib,\n f = c.skipOptionalPartCharacter,\n d = s.isRTL ? i.slice().reverse() : i;\n if (c.skipOptionalPartCharacter = \"\", !0 === e) r.resetMaskSet.call(s), l.tests = {}, e = 0, t = i.length, a = r.determineNewCaretPosition.call(s, {\n begin: 0,\n end: 0\n }, !1).begin;else {\n for (n = e; n < t; n++) delete l.validPositions[n];\n a = e;\n }\n var p = new u.Event(\"keypress\");\n for (n = e; n < t; n++) {\n p.key = d[n].toString(), s.ignorable = !1;\n var h = o.EventHandlers.keypressEvent.call(s, p, !0, !1, !1, a);\n !1 !== h && void 0 !== h && (a = h.forwardPosition);\n }\n c.skipOptionalPartCharacter = f;\n }\n function h(e, t, i) {\n var a = this,\n o = this.maskset,\n s = this.dependencyLib;\n if (void 0 === e) for (e = t - 1; e > 0 && !o.validPositions[e]; e--);\n for (var l = e; l < t; l++) {\n if (void 0 === o.validPositions[l] && !r.isMask.call(a, l, !1)) if (0 == l ? n.getTest.call(a, l) : o.validPositions[l - 1]) {\n var c = n.getTests.call(a, l).slice();\n \"\" === c[c.length - 1].match.def && c.pop();\n var u,\n d = n.determineTestTemplate.call(a, l, c);\n if (d && (!0 !== d.match.jit || \"master\" === d.match.newBlockMarker && (u = o.validPositions[l + 1]) && !0 === u.match.optionalQuantifier) && ((d = s.extend({}, d, {\n input: n.getPlaceholder.call(a, l, d.match, !0) || d.match.def\n })).generatedInput = !0, v.call(a, l, d, !0), !0 !== i)) {\n var p = o.validPositions[t].input;\n return o.validPositions[t] = void 0, f.call(a, t, p, !0, !0);\n }\n }\n }\n }\n function v(e, t, i, a) {\n var o = this,\n s = this.maskset,\n l = this.opts,\n c = this.dependencyLib;\n function u(e, t, i) {\n var n = t[e];\n if (void 0 !== n && !0 === n.match.static && !0 !== n.match.optionality && (void 0 === t[0] || void 0 === t[0].alternation)) {\n var a = i.begin <= e - 1 ? t[e - 1] && !0 === t[e - 1].match.static && t[e - 1] : t[e - 1],\n r = i.end > e + 1 ? t[e + 1] && !0 === t[e + 1].match.static && t[e + 1] : t[e + 1];\n return a && r;\n }\n return !1;\n }\n var p = 0,\n h = void 0 !== e.begin ? e.begin : e,\n v = void 0 !== e.end ? e.end : e,\n m = !0;\n if (e.begin > e.end && (h = e.end, v = e.begin), a = void 0 !== a ? a : h, void 0 === i && (h !== v || l.insertMode && void 0 !== s.validPositions[a] || void 0 === t || t.match.optionalQuantifier || t.match.optionality)) {\n var g,\n y = c.extend(!0, {}, s.validPositions),\n k = r.getLastValidPosition.call(o, void 0, !0);\n for (s.p = h, g = k; g >= h; g--) delete s.validPositions[g], void 0 === t && delete s.tests[g + 1];\n var b,\n x,\n P = a,\n w = P;\n for (t && (s.validPositions[a] = c.extend(!0, {}, t), w++, P++), g = t ? v : v - 1; g <= k; g++) {\n if (void 0 !== (b = y[g]) && !0 !== b.generatedInput && (g >= v || g >= h && u(g, y, {\n begin: h,\n end: v\n }))) {\n for (; \"\" !== n.getTest.call(o, w).match.def;) {\n if (!1 !== (x = d.call(o, w, b, l)) || \"+\" === b.match.def) {\n \"+\" === b.match.def && r.getBuffer.call(o, !0);\n var S = f.call(o, w, b.input, \"+\" !== b.match.def, !0);\n if (m = !1 !== S, P = (S.pos || w) + 1, !m && x) break;\n } else m = !1;\n if (m) {\n void 0 === t && b.match.static && g === e.begin && p++;\n break;\n }\n if (!m && r.getBuffer.call(o), w > s.maskLength) break;\n w++;\n }\n \"\" == n.getTest.call(o, w).match.def && (m = !1), w = P;\n }\n if (!m) break;\n }\n if (!m) return s.validPositions = c.extend(!0, [], y), r.resetMaskSet.call(o, !0), !1;\n } else t && n.getTest.call(o, a).match.cd === t.match.cd && (s.validPositions[a] = c.extend(!0, {}, t));\n return r.resetMaskSet.call(o, !0), p;\n }\n }\n },\n t = {};\n function i(n) {\n var a = t[n];\n if (void 0 !== a) return a.exports;\n var r = t[n] = {\n exports: {}\n };\n return e[n](r, r.exports, i), r.exports;\n }\n var n = {};\n return function () {\n var e,\n t = n;\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0, i(7149), i(3194), i(9302), i(4013), i(3851), i(219), i(207), i(5296);\n var a = ((e = i(2394)) && e.__esModule ? e : {\n default: e\n }).default;\n t.default = a;\n }(), n;\n }();\n});","/*!\n * AdminLTE v3.2.0 (https://adminlte.io)\n * Copyright 2014-2022 Colorlib <https://colorlib.com>\n * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE)\n */\n!function (e, t) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? t(exports, require(\"jquery\")) : \"function\" == typeof define && define.amd ? define([\"exports\", \"jquery\"], t) : t((e = \"undefined\" != typeof globalThis ? globalThis : e || self).adminlte = {}, e.jQuery);\n}(this, function (e, t) {\n \"use strict\";\n\n function a(e) {\n return e && \"object\" == typeof e && \"default\" in e ? e : {\n default: e\n };\n }\n var n = a(t),\n i = \"CardRefresh\",\n o = \"lte.cardrefresh\",\n l = n.default.fn[i],\n s = \"card\",\n r = '[data-card-widget=\"card-refresh\"]',\n d = {\n source: \"\",\n sourceSelector: \"\",\n params: {},\n trigger: r,\n content: \".card-body\",\n loadInContent: !0,\n loadOnInit: !0,\n loadErrorTemplate: !0,\n responseType: \"\",\n overlayTemplate: '<div class=\"overlay\"><i class=\"fas fa-2x fa-sync-alt fa-spin\"></i></div>',\n errorTemplate: '<span class=\"text-danger\"></span>',\n onLoadStart: function () {},\n onLoadDone: function (e) {\n return e;\n },\n onLoadFail: function (e, t, a) {}\n },\n f = function () {\n function e(e, t) {\n if (this._element = e, this._parent = e.parents(\".card\").first(), this._settings = n.default.extend({}, d, t), this._overlay = n.default(this._settings.overlayTemplate), e.hasClass(s) && (this._parent = e), \"\" === this._settings.source) throw new Error(\"Source url was not defined. Please specify a url in your CardRefresh source option.\");\n }\n var t = e.prototype;\n return t.load = function () {\n var e = this;\n this._addOverlay(), this._settings.onLoadStart.call(n.default(this)), n.default.get(this._settings.source, this._settings.params, function (t) {\n e._settings.loadInContent && (\"\" !== e._settings.sourceSelector && (t = n.default(t).find(e._settings.sourceSelector).html()), e._parent.find(e._settings.content).html(t)), e._settings.onLoadDone.call(n.default(e), t), e._removeOverlay();\n }, \"\" !== this._settings.responseType && this._settings.responseType).fail(function (t, a, i) {\n if (e._removeOverlay(), e._settings.loadErrorTemplate) {\n var o = n.default(e._settings.errorTemplate).text(i);\n e._parent.find(e._settings.content).empty().append(o);\n }\n e._settings.onLoadFail.call(n.default(e), t, a, i);\n }), n.default(this._element).trigger(n.default.Event(\"loaded.lte.cardrefresh\"));\n }, t._addOverlay = function () {\n this._parent.append(this._overlay), n.default(this._element).trigger(n.default.Event(\"overlay.added.lte.cardrefresh\"));\n }, t._removeOverlay = function () {\n this._parent.find(this._overlay).remove(), n.default(this._element).trigger(n.default.Event(\"overlay.removed.lte.cardrefresh\"));\n }, t._init = function () {\n var e = this;\n n.default(this).find(this._settings.trigger).on(\"click\", function () {\n e.load();\n }), this._settings.loadOnInit && this.load();\n }, e._jQueryInterface = function (t) {\n var a = n.default(this).data(o),\n i = n.default.extend({}, d, n.default(this).data());\n a || (a = new e(n.default(this), i), n.default(this).data(o, \"string\" == typeof t ? a : t)), \"string\" == typeof t && /load/.test(t) ? a[t]() : a._init(n.default(this));\n }, e;\n }();\n n.default(document).on(\"click\", r, function (e) {\n e && e.preventDefault(), f._jQueryInterface.call(n.default(this), \"load\");\n }), n.default(function () {\n n.default(r).each(function () {\n f._jQueryInterface.call(n.default(this));\n });\n }), n.default.fn[i] = f._jQueryInterface, n.default.fn[i].Constructor = f, n.default.fn[i].noConflict = function () {\n return n.default.fn[i] = l, f._jQueryInterface;\n };\n var u = \"CardWidget\",\n c = \"lte.cardwidget\",\n h = n.default.fn[u],\n g = \"card\",\n p = \"collapsed-card\",\n m = \"collapsing-card\",\n v = \"expanding-card\",\n _ = \"was-collapsed\",\n b = \"maximized-card\",\n y = '[data-card-widget=\"remove\"]',\n C = '[data-card-widget=\"collapse\"]',\n w = '[data-card-widget=\"maximize\"]',\n x = {\n animationSpeed: \"normal\",\n collapseTrigger: C,\n removeTrigger: y,\n maximizeTrigger: w,\n collapseIcon: \"fa-minus\",\n expandIcon: \"fa-plus\",\n maximizeIcon: \"fa-expand\",\n minimizeIcon: \"fa-compress\"\n },\n I = function () {\n function e(e, t) {\n this._element = e, this._parent = e.parents(\".card\").first(), e.hasClass(g) && (this._parent = e), this._settings = n.default.extend({}, x, t);\n }\n var t = e.prototype;\n return t.collapse = function () {\n var e = this;\n this._parent.addClass(m).children(\".card-body, .card-footer\").slideUp(this._settings.animationSpeed, function () {\n e._parent.addClass(p).removeClass(m);\n }), this._parent.find(\"> .card-header \" + this._settings.collapseTrigger + \" .\" + this._settings.collapseIcon).addClass(this._settings.expandIcon).removeClass(this._settings.collapseIcon), this._element.trigger(n.default.Event(\"collapsed.lte.cardwidget\"), this._parent);\n }, t.expand = function () {\n var e = this;\n this._parent.addClass(v).children(\".card-body, .card-footer\").slideDown(this._settings.animationSpeed, function () {\n e._parent.removeClass(p).removeClass(v);\n }), this._parent.find(\"> .card-header \" + this._settings.collapseTrigger + \" .\" + this._settings.expandIcon).addClass(this._settings.collapseIcon).removeClass(this._settings.expandIcon), this._element.trigger(n.default.Event(\"expanded.lte.cardwidget\"), this._parent);\n }, t.remove = function () {\n this._parent.slideUp(), this._element.trigger(n.default.Event(\"removed.lte.cardwidget\"), this._parent);\n }, t.toggle = function () {\n this._parent.hasClass(p) ? this.expand() : this.collapse();\n }, t.maximize = function () {\n this._parent.find(this._settings.maximizeTrigger + \" .\" + this._settings.maximizeIcon).addClass(this._settings.minimizeIcon).removeClass(this._settings.maximizeIcon), this._parent.css({\n height: this._parent.height(),\n width: this._parent.width(),\n transition: \"all .15s\"\n }).delay(150).queue(function () {\n var e = n.default(this);\n e.addClass(b), n.default(\"html\").addClass(b), e.hasClass(p) && e.addClass(_), e.dequeue();\n }), this._element.trigger(n.default.Event(\"maximized.lte.cardwidget\"), this._parent);\n }, t.minimize = function () {\n this._parent.find(this._settings.maximizeTrigger + \" .\" + this._settings.minimizeIcon).addClass(this._settings.maximizeIcon).removeClass(this._settings.minimizeIcon), this._parent.css(\"cssText\", \"height: \" + this._parent[0].style.height + \" !important; width: \" + this._parent[0].style.width + \" !important; transition: all .15s;\").delay(10).queue(function () {\n var e = n.default(this);\n e.removeClass(b), n.default(\"html\").removeClass(b), e.css({\n height: \"inherit\",\n width: \"inherit\"\n }), e.hasClass(_) && e.removeClass(_), e.dequeue();\n }), this._element.trigger(n.default.Event(\"minimized.lte.cardwidget\"), this._parent);\n }, t.toggleMaximize = function () {\n this._parent.hasClass(b) ? this.minimize() : this.maximize();\n }, t._init = function (e) {\n var t = this;\n this._parent = e, n.default(this).find(this._settings.collapseTrigger).click(function () {\n t.toggle();\n }), n.default(this).find(this._settings.maximizeTrigger).click(function () {\n t.toggleMaximize();\n }), n.default(this).find(this._settings.removeTrigger).click(function () {\n t.remove();\n });\n }, e._jQueryInterface = function (t) {\n var a = n.default(this).data(c),\n i = n.default.extend({}, x, n.default(this).data());\n a || (a = new e(n.default(this), i), n.default(this).data(c, \"string\" == typeof t ? a : t)), \"string\" == typeof t && /collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/.test(t) ? a[t]() : \"object\" == typeof t && a._init(n.default(this));\n }, e;\n }();\n n.default(document).on(\"click\", C, function (e) {\n e && e.preventDefault(), I._jQueryInterface.call(n.default(this), \"toggle\");\n }), n.default(document).on(\"click\", y, function (e) {\n e && e.preventDefault(), I._jQueryInterface.call(n.default(this), \"remove\");\n }), n.default(document).on(\"click\", w, function (e) {\n e && e.preventDefault(), I._jQueryInterface.call(n.default(this), \"toggleMaximize\");\n }), n.default.fn[u] = I._jQueryInterface, n.default.fn[u].Constructor = I, n.default.fn[u].noConflict = function () {\n return n.default.fn[u] = h, I._jQueryInterface;\n };\n var T = \"ControlSidebar\",\n S = \"lte.controlsidebar\",\n j = n.default.fn[T],\n k = \".control-sidebar\",\n Q = \".control-sidebar-content\",\n H = '[data-widget=\"control-sidebar\"]',\n z = \".main-header\",\n F = \".main-footer\",\n E = \"control-sidebar-animate\",\n L = \"control-sidebar-open\",\n D = \"control-sidebar-slide-open\",\n R = \"layout-fixed\",\n A = {\n controlsidebarSlide: !0,\n scrollbarTheme: \"os-theme-light\",\n scrollbarAutoHide: \"l\",\n target: k,\n animationSpeed: 300\n },\n M = function () {\n function e(e, t) {\n this._element = e, this._config = t;\n }\n var t = e.prototype;\n return t.collapse = function () {\n var e = this,\n t = n.default(\"body\"),\n a = n.default(\"html\");\n this._config.controlsidebarSlide ? (a.addClass(E), t.removeClass(D).delay(300).queue(function () {\n n.default(k).hide(), a.removeClass(E), n.default(this).dequeue();\n })) : t.removeClass(L), n.default(this._element).trigger(n.default.Event(\"collapsed.lte.controlsidebar\")), setTimeout(function () {\n n.default(e._element).trigger(n.default.Event(\"collapsed-done.lte.controlsidebar\"));\n }, this._config.animationSpeed);\n }, t.show = function (e) {\n void 0 === e && (e = !1);\n var t = n.default(\"body\"),\n a = n.default(\"html\");\n e && n.default(k).hide(), this._config.controlsidebarSlide ? (a.addClass(E), n.default(this._config.target).show().delay(10).queue(function () {\n t.addClass(D).delay(300).queue(function () {\n a.removeClass(E), n.default(this).dequeue();\n }), n.default(this).dequeue();\n })) : t.addClass(L), this._fixHeight(), this._fixScrollHeight(), n.default(this._element).trigger(n.default.Event(\"expanded.lte.controlsidebar\"));\n }, t.toggle = function () {\n var e = n.default(\"body\"),\n t = this._config.target,\n a = !n.default(t).is(\":visible\"),\n i = e.hasClass(L) || e.hasClass(D),\n o = a && (e.hasClass(L) || e.hasClass(D));\n a || o ? this.show(a) : i && this.collapse();\n }, t._init = function () {\n var e = this,\n t = n.default(\"body\");\n t.hasClass(L) || t.hasClass(D) ? (n.default(k).not(this._config.target).hide(), n.default(this._config.target).css(\"display\", \"block\")) : n.default(k).hide(), this._fixHeight(), this._fixScrollHeight(), n.default(window).resize(function () {\n e._fixHeight(), e._fixScrollHeight();\n }), n.default(window).scroll(function () {\n var t = n.default(\"body\");\n (t.hasClass(L) || t.hasClass(D)) && e._fixScrollHeight();\n });\n }, t._isNavbarFixed = function () {\n var e = n.default(\"body\");\n return e.hasClass(\"layout-navbar-fixed\") || e.hasClass(\"layout-sm-navbar-fixed\") || e.hasClass(\"layout-md-navbar-fixed\") || e.hasClass(\"layout-lg-navbar-fixed\") || e.hasClass(\"layout-xl-navbar-fixed\");\n }, t._isFooterFixed = function () {\n var e = n.default(\"body\");\n return e.hasClass(\"layout-footer-fixed\") || e.hasClass(\"layout-sm-footer-fixed\") || e.hasClass(\"layout-md-footer-fixed\") || e.hasClass(\"layout-lg-footer-fixed\") || e.hasClass(\"layout-xl-footer-fixed\");\n }, t._fixScrollHeight = function () {\n var e = n.default(\"body\"),\n t = n.default(this._config.target);\n if (e.hasClass(R)) {\n var a = {\n scroll: n.default(document).height(),\n window: n.default(window).height(),\n header: n.default(z).outerHeight(),\n footer: n.default(F).outerHeight()\n },\n i = Math.abs(a.window + n.default(window).scrollTop() - a.scroll),\n o = n.default(window).scrollTop(),\n l = this._isNavbarFixed() && \"fixed\" === n.default(z).css(\"position\"),\n s = this._isFooterFixed() && \"fixed\" === n.default(F).css(\"position\"),\n r = n.default(this._config.target + \", \" + this._config.target + \" \" + Q);\n if (0 === o && 0 === i) t.css({\n bottom: a.footer,\n top: a.header\n }), r.css(\"height\", a.window - (a.header + a.footer));else if (i <= a.footer) {\n if (!1 === s) {\n var d = a.header - o;\n t.css(\"bottom\", a.footer - i).css(\"top\", d >= 0 ? d : 0), r.css(\"height\", a.window - (a.footer - i));\n } else t.css(\"bottom\", a.footer);\n } else o <= a.header ? !1 === l ? (t.css(\"top\", a.header - o), r.css(\"height\", a.window - (a.header - o))) : t.css(\"top\", a.header) : !1 === l ? (t.css(\"top\", 0), r.css(\"height\", a.window)) : t.css(\"top\", a.header);\n s && l ? (r.css(\"height\", \"100%\"), t.css(\"height\", \"\")) : (s || l) && (r.css(\"height\", \"100%\"), r.css(\"height\", \"\"));\n }\n }, t._fixHeight = function () {\n var e = n.default(\"body\"),\n t = n.default(this._config.target + \" \" + Q);\n if (e.hasClass(R)) {\n var a = n.default(window).height(),\n i = n.default(z).outerHeight(),\n o = n.default(F).outerHeight(),\n l = a - i;\n this._isFooterFixed() && \"fixed\" === n.default(F).css(\"position\") && (l = a - i - o), t.css(\"height\", l), \"undefined\" != typeof n.default.fn.overlayScrollbars && t.overlayScrollbars({\n className: this._config.scrollbarTheme,\n sizeAutoCapable: !0,\n scrollbars: {\n autoHide: this._config.scrollbarAutoHide,\n clickScrolling: !0\n }\n });\n } else t.attr(\"style\", \"\");\n }, e._jQueryInterface = function (t) {\n return this.each(function () {\n var a = n.default(this).data(S),\n i = n.default.extend({}, A, n.default(this).data());\n if (a || (a = new e(this, i), n.default(this).data(S, a)), \"undefined\" === a[t]) throw new Error(t + \" is not a function\");\n a[t]();\n });\n }, e;\n }();\n n.default(document).on(\"click\", H, function (e) {\n e.preventDefault(), M._jQueryInterface.call(n.default(this), \"toggle\");\n }), n.default(document).ready(function () {\n M._jQueryInterface.call(n.default(H), \"_init\");\n }), n.default.fn[T] = M._jQueryInterface, n.default.fn[T].Constructor = M, n.default.fn[T].noConflict = function () {\n return n.default.fn[T] = j, M._jQueryInterface;\n };\n var q = \"DirectChat\",\n O = \"lte.directchat\",\n N = n.default.fn[q],\n P = function () {\n function e(e) {\n this._element = e;\n }\n return e.prototype.toggle = function () {\n n.default(this._element).parents(\".direct-chat\").first().toggleClass(\"direct-chat-contacts-open\"), n.default(this._element).trigger(n.default.Event(\"toggled.lte.directchat\"));\n }, e._jQueryInterface = function (t) {\n return this.each(function () {\n var a = n.default(this).data(O);\n a || (a = new e(n.default(this)), n.default(this).data(O, a)), a[t]();\n });\n }, e;\n }();\n n.default(document).on(\"click\", '[data-widget=\"chat-pane-toggle\"]', function (e) {\n e && e.preventDefault(), P._jQueryInterface.call(n.default(this), \"toggle\");\n }), n.default.fn[q] = P._jQueryInterface, n.default.fn[q].Constructor = P, n.default.fn[q].noConflict = function () {\n return n.default.fn[q] = N, P._jQueryInterface;\n };\n var U = \"Dropdown\",\n B = \"lte.dropdown\",\n $ = n.default.fn[U],\n J = \".dropdown-menu\",\n W = {},\n V = function () {\n function e(e, t) {\n this._config = t, this._element = e;\n }\n var t = e.prototype;\n return t.toggleSubmenu = function () {\n this._element.siblings().show().toggleClass(\"show\"), this._element.next().hasClass(\"show\") || this._element.parents(J).first().find(\".show\").removeClass(\"show\").hide(), this._element.parents(\"li.nav-item.dropdown.show\").on(\"hidden.bs.dropdown\", function () {\n n.default(\".dropdown-submenu .show\").removeClass(\"show\").hide();\n });\n }, t.fixPosition = function () {\n var e = n.default(\".dropdown-menu.show\");\n if (0 !== e.length) {\n e.hasClass(\"dropdown-menu-right\") ? e.css({\n left: \"inherit\",\n right: 0\n }) : e.css({\n left: 0,\n right: \"inherit\"\n });\n var t = e.offset(),\n a = e.width(),\n i = n.default(window).width() - t.left;\n t.left < 0 ? e.css({\n left: \"inherit\",\n right: t.left - 5\n }) : i < a && e.css({\n left: \"inherit\",\n right: 0\n });\n }\n }, e._jQueryInterface = function (t) {\n return this.each(function () {\n var a = n.default(this).data(B),\n i = n.default.extend({}, W, n.default(this).data());\n a || (a = new e(n.default(this), i), n.default(this).data(B, a)), \"toggleSubmenu\" !== t && \"fixPosition\" !== t || a[t]();\n });\n }, e;\n }();\n n.default('.dropdown-menu [data-toggle=\"dropdown\"]').on(\"click\", function (e) {\n e.preventDefault(), e.stopPropagation(), V._jQueryInterface.call(n.default(this), \"toggleSubmenu\");\n }), n.default('.navbar [data-toggle=\"dropdown\"]').on(\"click\", function (e) {\n e.preventDefault(), n.default(e.target).parent().hasClass(\"dropdown-submenu\") || setTimeout(function () {\n V._jQueryInterface.call(n.default(this), \"fixPosition\");\n }, 1);\n }), n.default.fn[U] = V._jQueryInterface, n.default.fn[U].Constructor = V, n.default.fn[U].noConflict = function () {\n return n.default.fn[U] = $, V._jQueryInterface;\n };\n var G = \"ExpandableTable\",\n K = \"lte.expandableTable\",\n X = n.default.fn[G],\n Y = \".expandable-body\",\n Z = '[data-widget=\"expandable-table\"]',\n ee = \"aria-expanded\",\n te = function () {\n function e(e, t) {\n this._options = t, this._element = e;\n }\n var t = e.prototype;\n return t.init = function () {\n n.default(Z).each(function (e, t) {\n var a = n.default(t).attr(ee),\n i = n.default(t).next(Y).children().first().children();\n \"true\" === a ? i.show() : \"false\" === a && (i.hide(), i.parent().parent().addClass(\"d-none\"));\n });\n }, t.toggleRow = function () {\n var e = this._element;\n \"TR\" !== e[0].nodeName && \"TR\" !== (e = e.parent())[0].nodeName && (e = e.parent());\n var t = e.attr(ee),\n a = e.next(Y).children().first().children();\n a.stop(), \"true\" === t ? (a.slideUp(500, function () {\n e.next(Y).addClass(\"d-none\");\n }), e.attr(ee, \"false\"), e.trigger(n.default.Event(\"collapsed.lte.expandableTable\"))) : \"false\" === t && (e.next(Y).removeClass(\"d-none\"), a.slideDown(500), e.attr(ee, \"true\"), e.trigger(n.default.Event(\"expanded.lte.expandableTable\")));\n }, e._jQueryInterface = function (t) {\n return this.each(function () {\n var a = n.default(this).data(K);\n a || (a = new e(n.default(this)), n.default(this).data(K, a)), \"string\" == typeof t && /init|toggleRow/.test(t) && a[t]();\n });\n }, e;\n }();\n n.default(\".expandable-table\").ready(function () {\n te._jQueryInterface.call(n.default(this), \"init\");\n }), n.default(document).on(\"click\", Z, function () {\n te._jQueryInterface.call(n.default(this), \"toggleRow\");\n }), n.default.fn[G] = te._jQueryInterface, n.default.fn[G].Constructor = te, n.default.fn[G].noConflict = function () {\n return n.default.fn[G] = X, te._jQueryInterface;\n };\n var ae = \"Fullscreen\",\n ne = \"lte.fullscreen\",\n ie = n.default.fn[ae],\n oe = '[data-widget=\"fullscreen\"]',\n le = oe + \" i\",\n se = {\n minimizeIcon: \"fa-compress-arrows-alt\",\n maximizeIcon: \"fa-expand-arrows-alt\"\n },\n re = function () {\n function e(e, t) {\n this.element = e, this.options = n.default.extend({}, se, t);\n }\n var t = e.prototype;\n return t.toggle = function () {\n document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement ? this.windowed() : this.fullscreen();\n }, t.toggleIcon = function () {\n document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement ? n.default(le).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon) : n.default(le).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon);\n }, t.fullscreen = function () {\n document.documentElement.requestFullscreen ? document.documentElement.requestFullscreen() : document.documentElement.webkitRequestFullscreen ? document.documentElement.webkitRequestFullscreen() : document.documentElement.msRequestFullscreen && document.documentElement.msRequestFullscreen();\n }, t.windowed = function () {\n document.exitFullscreen ? document.exitFullscreen() : document.webkitExitFullscreen ? document.webkitExitFullscreen() : document.msExitFullscreen && document.msExitFullscreen();\n }, e._jQueryInterface = function (t) {\n var a = n.default(this).data(ne);\n a || (a = n.default(this).data());\n var i = n.default.extend({}, se, \"object\" == typeof t ? t : a),\n o = new e(n.default(this), i);\n n.default(this).data(ne, \"object\" == typeof t ? t : a), \"string\" == typeof t && /toggle|toggleIcon|fullscreen|windowed/.test(t) ? o[t]() : o.init();\n }, e;\n }();\n n.default(document).on(\"click\", oe, function () {\n re._jQueryInterface.call(n.default(this), \"toggle\");\n }), n.default(document).on(\"webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange\", function () {\n re._jQueryInterface.call(n.default(oe), \"toggleIcon\");\n }), n.default.fn[ae] = re._jQueryInterface, n.default.fn[ae].Constructor = re, n.default.fn[ae].noConflict = function () {\n return n.default.fn[ae] = ie, re._jQueryInterface;\n };\n var de = \"lte.iframe\",\n fe = n.default.fn.IFrame,\n ue = '[data-widget=\"iframe\"]',\n ce = '[data-widget=\"iframe-fullscreen\"]',\n he = \".content-wrapper\",\n ge = \".content-wrapper iframe\",\n pe = \".content-wrapper.iframe-mode .nav\",\n me = \".content-wrapper.iframe-mode .navbar-nav\",\n ve = me + \" .nav-item\",\n _e = me + \" .nav-link\",\n be = \".content-wrapper.iframe-mode .tab-content\",\n ye = be + \" .tab-empty\",\n Ce = be + \" .tab-loading\",\n we = be + \" .tab-pane\",\n xe = \".main-sidebar .nav-item > a.nav-link\",\n Ie = \".main-header .nav-item a.nav-link\",\n Te = \".main-header a.dropdown-item\",\n Se = \"iframe-mode\",\n je = \"iframe-mode-fullscreen\",\n ke = {\n onTabClick: function (e) {\n return e;\n },\n onTabChanged: function (e) {\n return e;\n },\n onTabCreated: function (e) {\n return e;\n },\n autoIframeMode: !0,\n autoItemActive: !0,\n autoShowNewTab: !0,\n autoDarkMode: !1,\n allowDuplicates: !1,\n allowReload: !0,\n loadingScreen: !0,\n useNavbarItems: !0,\n scrollOffset: 40,\n scrollBehaviorSwap: !1,\n iconMaximize: \"fa-expand\",\n iconMinimize: \"fa-compress\"\n },\n Qe = function () {\n function e(e, t) {\n this._config = t, this._element = e, this._init();\n }\n var t = e.prototype;\n return t.onTabClick = function (e) {\n this._config.onTabClick(e);\n }, t.onTabChanged = function (e) {\n this._config.onTabChanged(e);\n }, t.onTabCreated = function (e) {\n this._config.onTabCreated(e);\n }, t.createTab = function (e, t, a, i) {\n var o = this,\n l = \"panel-\" + a,\n s = \"tab-\" + a;\n this._config.allowDuplicates && (l += \"-\" + Math.floor(1e3 * Math.random()), s += \"-\" + Math.floor(1e3 * Math.random()));\n var r = '<li class=\"nav-item\" role=\"presentation\"><a href=\"#\" class=\"btn-iframe-close\" data-widget=\"iframe-close\" data-type=\"only-this\"><i class=\"fas fa-times\"></i></a><a class=\"nav-link\" data-toggle=\"row\" id=\"' + s + '\" href=\"#' + l + '\" role=\"tab\" aria-controls=\"' + l + '\" aria-selected=\"false\">' + e + \"</a></li>\";\n n.default(me).append(unescape(escape(r)));\n var d = '<div class=\"tab-pane fade\" id=\"' + l + '\" role=\"tabpanel\" aria-labelledby=\"' + s + '\"><iframe src=\"' + t + '\"></iframe></div>';\n if (n.default(be).append(unescape(escape(d))), i) if (this._config.loadingScreen) {\n var f = n.default(Ce);\n f.fadeIn(), n.default(l + \" iframe\").ready(function () {\n \"number\" == typeof o._config.loadingScreen ? (o.switchTab(\"#\" + s), setTimeout(function () {\n f.fadeOut();\n }, o._config.loadingScreen)) : (o.switchTab(\"#\" + s), f.fadeOut());\n });\n } else this.switchTab(\"#\" + s);\n this.onTabCreated(n.default(\"#\" + s));\n }, t.openTabSidebar = function (e, t) {\n void 0 === t && (t = this._config.autoShowNewTab);\n var a = n.default(e).clone();\n void 0 === a.attr(\"href\") && (a = n.default(e).parent(\"a\").clone()), a.find(\".right, .search-path\").remove();\n var i = a.find(\"p\").text();\n \"\" === i && (i = a.text());\n var o = a.attr(\"href\");\n if (\"#\" !== o && \"\" !== o && void 0 !== o) {\n var l = unescape(o).replace(\"./\", \"\").replace(/[\"#&'./:=?[\\]]/gi, \"-\").replace(/(--)/gi, \"\"),\n s = \"tab-\" + l;\n if (!this._config.allowDuplicates && n.default(\"#\" + s).length > 0) return this.switchTab(\"#\" + s, this._config.allowReload);\n (!this._config.allowDuplicates && 0 === n.default(\"#\" + s).length || this._config.allowDuplicates) && this.createTab(i, o, l, t);\n }\n }, t.switchTab = function (e, t) {\n var a = this;\n void 0 === t && (t = !1);\n var i = n.default(e),\n o = i.attr(\"href\");\n if (n.default(ye).hide(), t) {\n var l = n.default(Ce);\n this._config.loadingScreen ? l.show(0, function () {\n n.default(o + \" iframe\").attr(\"src\", n.default(o + \" iframe\").attr(\"src\")).ready(function () {\n a._config.loadingScreen && (\"number\" == typeof a._config.loadingScreen ? setTimeout(function () {\n l.fadeOut();\n }, a._config.loadingScreen) : l.fadeOut());\n });\n }) : n.default(o + \" iframe\").attr(\"src\", n.default(o + \" iframe\").attr(\"src\"));\n }\n n.default(me + \" .active\").tab(\"dispose\").removeClass(\"active\"), this._fixHeight(), i.tab(\"show\"), i.parents(\"li\").addClass(\"active\"), this.onTabChanged(i), this._config.autoItemActive && this._setItemActive(n.default(o + \" iframe\").attr(\"src\"));\n }, t.removeActiveTab = function (e, t) {\n if (\"all\" == e) n.default(ve).remove(), n.default(we).remove(), n.default(ye).show();else if (\"all-other\" == e) n.default(ve + \":not(.active)\").remove(), n.default(we + \":not(.active)\").remove();else if (\"only-this\" == e) {\n var a = n.default(t),\n i = a.parent(\".nav-item\"),\n o = i.parent(),\n l = i.index(),\n s = a.siblings(\".nav-link\").attr(\"aria-controls\");\n if (i.remove(), n.default(\"#\" + s).remove(), n.default(be).children().length == n.default(ye + \", \" + Ce).length) n.default(ye).show();else {\n var r = l - 1;\n this.switchTab(o.children().eq(r).find(\"a.nav-link\"));\n }\n } else {\n var d = n.default(ve + \".active\"),\n f = d.parent(),\n u = d.index();\n if (d.remove(), n.default(we + \".active\").remove(), n.default(be).children().length == n.default(ye + \", \" + Ce).length) n.default(ye).show();else {\n var c = u - 1;\n this.switchTab(f.children().eq(c).find(\"a.nav-link\"));\n }\n }\n }, t.toggleFullscreen = function () {\n n.default(\"body\").hasClass(je) ? (n.default(ce + \" i\").removeClass(this._config.iconMinimize).addClass(this._config.iconMaximize), n.default(\"body\").removeClass(je), n.default(ye + \", \" + Ce).height(\"100%\"), n.default(he).height(\"100%\"), n.default(ge).height(\"100%\")) : (n.default(ce + \" i\").removeClass(this._config.iconMaximize).addClass(this._config.iconMinimize), n.default(\"body\").addClass(je)), n.default(window).trigger(\"resize\"), this._fixHeight(!0);\n }, t._init = function () {\n var e = n.default(be).children().length > 2;\n if (this._setupListeners(), this._fixHeight(!0), e) {\n var t = n.default(\"\" + we).first();\n console.log(t);\n var a = \"#tab-\" + t.attr(\"id\").replace(\"panel-\", \"\");\n this.switchTab(a, !0);\n }\n }, t._initFrameElement = function () {\n if (window.frameElement && this._config.autoIframeMode) {\n var e = n.default(\"body\");\n e.addClass(Se), this._config.autoDarkMode && e.addClass(\"dark-mode\");\n }\n }, t._navScroll = function (e) {\n var t = n.default(me).scrollLeft();\n n.default(me).animate({\n scrollLeft: t + e\n }, 250, \"linear\");\n }, t._setupListeners = function () {\n var e = this;\n n.default(window).on(\"resize\", function () {\n setTimeout(function () {\n e._fixHeight();\n }, 1);\n }), n.default(he).hasClass(Se) && (n.default(document).on(\"click\", xe + \", .sidebar-search-results .list-group-item\", function (t) {\n t.preventDefault(), e.openTabSidebar(t.target);\n }), this._config.useNavbarItems && n.default(document).on(\"click\", Ie + \", \" + Te, function (t) {\n t.preventDefault(), e.openTabSidebar(t.target);\n })), n.default(document).on(\"click\", _e, function (t) {\n t.preventDefault(), e.onTabClick(t.target), e.switchTab(t.target);\n }), n.default(document).on(\"click\", _e, function (t) {\n t.preventDefault(), e.onTabClick(t.target), e.switchTab(t.target);\n }), n.default(document).on(\"click\", '[data-widget=\"iframe-close\"]', function (t) {\n t.preventDefault();\n var a = t.target;\n \"I\" == a.nodeName && (a = t.target.offsetParent), e.removeActiveTab(a.attributes[\"data-type\"] ? a.attributes[\"data-type\"].nodeValue : null, a);\n }), n.default(document).on(\"click\", ce, function (t) {\n t.preventDefault(), e.toggleFullscreen();\n });\n var t = !1,\n a = null;\n n.default(document).on(\"mousedown\", '[data-widget=\"iframe-scrollleft\"]', function (n) {\n n.preventDefault(), clearInterval(a);\n var i = e._config.scrollOffset;\n e._config.scrollBehaviorSwap || (i = -i), t = !0, e._navScroll(i), a = setInterval(function () {\n e._navScroll(i);\n }, 250);\n }), n.default(document).on(\"mousedown\", '[data-widget=\"iframe-scrollright\"]', function (n) {\n n.preventDefault(), clearInterval(a);\n var i = e._config.scrollOffset;\n e._config.scrollBehaviorSwap && (i = -i), t = !0, e._navScroll(i), a = setInterval(function () {\n e._navScroll(i);\n }, 250);\n }), n.default(document).on(\"mouseup\", function () {\n t && (t = !1, clearInterval(a), a = null);\n });\n }, t._setItemActive = function (e) {\n n.default(xe + \", \" + Te).removeClass(\"active\"), n.default(Ie).parent().removeClass(\"active\");\n var t = n.default(Ie + '[href$=\"' + e + '\"]'),\n a = n.default('.main-header a.dropdown-item[href$=\"' + e + '\"]'),\n i = n.default(xe + '[href$=\"' + e + '\"]');\n t.each(function (e, t) {\n n.default(t).parent().addClass(\"active\");\n }), a.each(function (e, t) {\n n.default(t).addClass(\"active\");\n }), i.each(function (e, t) {\n n.default(t).addClass(\"active\"), n.default(t).parents(\".nav-treeview\").prevAll(\".nav-link\").addClass(\"active\");\n });\n }, t._fixHeight = function (e) {\n if (void 0 === e && (e = !1), n.default(\"body\").hasClass(je)) {\n var t = n.default(window).height(),\n a = n.default(pe).outerHeight();\n n.default(ye + \", \" + Ce + \", \" + ge).height(t - a), n.default(he).height(t);\n } else {\n var i = parseFloat(n.default(he).css(\"height\")),\n o = n.default(pe).outerHeight();\n 1 == e ? setTimeout(function () {\n n.default(ye + \", \" + Ce).height(i - o);\n }, 50) : n.default(ge).height(i - o);\n }\n }, e._jQueryInterface = function (t) {\n if (n.default(ue).length > 0) {\n var a = n.default(this).data(de);\n a || (a = n.default(this).data());\n var i = n.default.extend({}, ke, \"object\" == typeof t ? t : a);\n localStorage.setItem(\"AdminLTE:IFrame:Options\", JSON.stringify(i));\n var o = new e(n.default(this), i);\n n.default(this).data(de, \"object\" == typeof t ? t : a), \"string\" == typeof t && /createTab|openTabSidebar|switchTab|removeActiveTab/.test(t) && o[t]();\n } else new e(n.default(this), JSON.parse(localStorage.getItem(\"AdminLTE:IFrame:Options\")))._initFrameElement();\n }, e;\n }();\n n.default(window).on(\"load\", function () {\n Qe._jQueryInterface.call(n.default(ue));\n }), n.default.fn.IFrame = Qe._jQueryInterface, n.default.fn.IFrame.Constructor = Qe, n.default.fn.IFrame.noConflict = function () {\n return n.default.fn.IFrame = fe, Qe._jQueryInterface;\n };\n var He = \"lte.layout\",\n ze = n.default.fn.Layout,\n Fe = \".main-header\",\n Ee = \".main-sidebar\",\n Le = \".main-sidebar .sidebar\",\n De = \".main-footer\",\n Re = \"sidebar-focused\",\n Ae = {\n scrollbarTheme: \"os-theme-light\",\n scrollbarAutoHide: \"l\",\n panelAutoHeight: !0,\n panelAutoHeightMode: \"min-height\",\n preloadDuration: 200,\n loginRegisterAutoHeight: !0\n },\n Me = function () {\n function e(e, t) {\n this._config = t, this._element = e;\n }\n var t = e.prototype;\n return t.fixLayoutHeight = function (e) {\n void 0 === e && (e = null);\n var t = n.default(\"body\"),\n a = 0;\n (t.hasClass(\"control-sidebar-slide-open\") || t.hasClass(\"control-sidebar-open\") || \"control_sidebar\" === e) && (a = n.default(\".control-sidebar-content\").outerHeight());\n var i = {\n window: n.default(window).height(),\n header: n.default(Fe).length > 0 ? n.default(Fe).outerHeight() : 0,\n footer: n.default(De).length > 0 ? n.default(De).outerHeight() : 0,\n sidebar: n.default(Le).length > 0 ? n.default(Le).height() : 0,\n controlSidebar: a\n },\n o = this._max(i),\n l = this._config.panelAutoHeight;\n !0 === l && (l = 0);\n var s = n.default(\".content-wrapper\");\n !1 !== l && (o === i.controlSidebar ? s.css(this._config.panelAutoHeightMode, o + l) : o === i.window ? s.css(this._config.panelAutoHeightMode, o + l - i.header - i.footer) : s.css(this._config.panelAutoHeightMode, o + l - i.header), this._isFooterFixed() && s.css(this._config.panelAutoHeightMode, parseFloat(s.css(this._config.panelAutoHeightMode)) + i.footer)), t.hasClass(\"layout-fixed\") && (\"undefined\" != typeof n.default.fn.overlayScrollbars ? n.default(Le).overlayScrollbars({\n className: this._config.scrollbarTheme,\n sizeAutoCapable: !0,\n scrollbars: {\n autoHide: this._config.scrollbarAutoHide,\n clickScrolling: !0\n }\n }) : n.default(Le).css(\"overflow-y\", \"auto\"));\n }, t.fixLoginRegisterHeight = function () {\n var e = n.default(\"body\"),\n t = n.default(\".login-box, .register-box\");\n if (e.hasClass(\"iframe-mode\")) e.css(\"height\", \"100%\"), n.default(\".wrapper\").css(\"height\", \"100%\"), n.default(\"html\").css(\"height\", \"100%\");else if (0 === t.length) e.css(\"height\", \"auto\"), n.default(\"html\").css(\"height\", \"auto\");else {\n var a = t.height();\n e.css(this._config.panelAutoHeightMode) !== a && e.css(this._config.panelAutoHeightMode, a);\n }\n }, t._init = function () {\n var e = this;\n this.fixLayoutHeight(), !0 === this._config.loginRegisterAutoHeight ? this.fixLoginRegisterHeight() : this._config.loginRegisterAutoHeight === parseInt(this._config.loginRegisterAutoHeight, 10) && setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight), n.default(Le).on(\"collapsed.lte.treeview expanded.lte.treeview\", function () {\n e.fixLayoutHeight();\n }), n.default(Ee).on(\"mouseenter mouseleave\", function () {\n n.default(\"body\").hasClass(\"sidebar-collapse\") && e.fixLayoutHeight();\n }), n.default('[data-widget=\"pushmenu\"]').on(\"collapsed.lte.pushmenu shown.lte.pushmenu\", function () {\n setTimeout(function () {\n e.fixLayoutHeight();\n }, 300);\n }), n.default('[data-widget=\"control-sidebar\"]').on(\"collapsed.lte.controlsidebar\", function () {\n e.fixLayoutHeight();\n }).on(\"expanded.lte.controlsidebar\", function () {\n e.fixLayoutHeight(\"control_sidebar\");\n }), n.default(window).resize(function () {\n e.fixLayoutHeight();\n }), setTimeout(function () {\n n.default(\"body.hold-transition\").removeClass(\"hold-transition\");\n }, 50), setTimeout(function () {\n var e = n.default(\".preloader\");\n e && (e.css(\"height\", 0), setTimeout(function () {\n e.children().hide();\n }, 200));\n }, this._config.preloadDuration);\n }, t._max = function (e) {\n var t = 0;\n return Object.keys(e).forEach(function (a) {\n e[a] > t && (t = e[a]);\n }), t;\n }, t._isFooterFixed = function () {\n return \"fixed\" === n.default(De).css(\"position\");\n }, e._jQueryInterface = function (t) {\n return void 0 === t && (t = \"\"), this.each(function () {\n var a = n.default(this).data(He),\n i = n.default.extend({}, Ae, n.default(this).data());\n a || (a = new e(n.default(this), i), n.default(this).data(He, a)), \"init\" === t || \"\" === t ? a._init() : \"fixLayoutHeight\" !== t && \"fixLoginRegisterHeight\" !== t || a[t]();\n });\n }, e;\n }();\n n.default(window).on(\"load\", function () {\n Me._jQueryInterface.call(n.default(\"body\"));\n }), n.default(Le + \" a\").on(\"focusin\", function () {\n n.default(Ee).addClass(Re);\n }).on(\"focusout\", function () {\n n.default(Ee).removeClass(Re);\n }), n.default.fn.Layout = Me._jQueryInterface, n.default.fn.Layout.Constructor = Me, n.default.fn.Layout.noConflict = function () {\n return n.default.fn.Layout = ze, Me._jQueryInterface;\n };\n var qe = \"PushMenu\",\n Oe = \"lte.pushmenu\",\n Ne = \".\" + Oe,\n Pe = n.default.fn[qe],\n Ue = '[data-widget=\"pushmenu\"]',\n Be = \"body\",\n $e = \"sidebar-collapse\",\n Je = \"sidebar-open\",\n We = \"sidebar-is-opening\",\n Ve = \"sidebar-closed\",\n Ge = {\n autoCollapseSize: 992,\n enableRemember: !1,\n noTransitionAfterReload: !0,\n animationSpeed: 300\n },\n Ke = function () {\n function e(e, t) {\n this._element = e, this._options = n.default.extend({}, Ge, t), 0 === n.default(\"#sidebar-overlay\").length && this._addOverlay(), this._init();\n }\n var t = e.prototype;\n return t.expand = function () {\n var e = n.default(Be);\n this._options.autoCollapseSize && n.default(window).width() <= this._options.autoCollapseSize && e.addClass(Je), e.addClass(We).removeClass(\"sidebar-collapse sidebar-closed\").delay(50).queue(function () {\n e.removeClass(We), n.default(this).dequeue();\n }), this._options.enableRemember && localStorage.setItem(\"remember\" + Ne, Je), n.default(this._element).trigger(n.default.Event(\"shown.lte.pushmenu\"));\n }, t.collapse = function () {\n var e = this,\n t = n.default(Be);\n this._options.autoCollapseSize && n.default(window).width() <= this._options.autoCollapseSize && t.removeClass(Je).addClass(Ve), t.addClass($e), this._options.enableRemember && localStorage.setItem(\"remember\" + Ne, $e), n.default(this._element).trigger(n.default.Event(\"collapsed.lte.pushmenu\")), setTimeout(function () {\n n.default(e._element).trigger(n.default.Event(\"collapsed-done.lte.pushmenu\"));\n }, this._options.animationSpeed);\n }, t.toggle = function () {\n n.default(Be).hasClass($e) ? this.expand() : this.collapse();\n }, t.autoCollapse = function (e) {\n if (void 0 === e && (e = !1), this._options.autoCollapseSize) {\n var t = n.default(Be);\n n.default(window).width() <= this._options.autoCollapseSize ? t.hasClass(Je) || this.collapse() : !0 === e && (t.hasClass(Je) ? t.removeClass(Je) : t.hasClass(Ve) && this.expand());\n }\n }, t.remember = function () {\n if (this._options.enableRemember) {\n var e = n.default(\"body\");\n localStorage.getItem(\"remember\" + Ne) === $e ? this._options.noTransitionAfterReload ? e.addClass(\"hold-transition\").addClass($e).delay(50).queue(function () {\n n.default(this).removeClass(\"hold-transition\"), n.default(this).dequeue();\n }) : e.addClass($e) : this._options.noTransitionAfterReload ? e.addClass(\"hold-transition\").removeClass($e).delay(50).queue(function () {\n n.default(this).removeClass(\"hold-transition\"), n.default(this).dequeue();\n }) : e.removeClass($e);\n }\n }, t._init = function () {\n var e = this;\n this.remember(), this.autoCollapse(), n.default(window).resize(function () {\n e.autoCollapse(!0);\n });\n }, t._addOverlay = function () {\n var e = this,\n t = n.default(\"<div />\", {\n id: \"sidebar-overlay\"\n });\n t.on(\"click\", function () {\n e.collapse();\n }), n.default(\".wrapper\").append(t);\n }, e._jQueryInterface = function (t) {\n return this.each(function () {\n var a = n.default(this).data(Oe),\n i = n.default.extend({}, Ge, n.default(this).data());\n a || (a = new e(this, i), n.default(this).data(Oe, a)), \"string\" == typeof t && /collapse|expand|toggle/.test(t) && a[t]();\n });\n }, e;\n }();\n n.default(document).on(\"click\", Ue, function (e) {\n e.preventDefault();\n var t = e.currentTarget;\n \"pushmenu\" !== n.default(t).data(\"widget\") && (t = n.default(t).closest(Ue)), Ke._jQueryInterface.call(n.default(t), \"toggle\");\n }), n.default(window).on(\"load\", function () {\n Ke._jQueryInterface.call(n.default(Ue));\n }), n.default.fn[qe] = Ke._jQueryInterface, n.default.fn[qe].Constructor = Ke, n.default.fn[qe].noConflict = function () {\n return n.default.fn[qe] = Pe, Ke._jQueryInterface;\n };\n var Xe = \"SidebarSearch\",\n Ye = \"lte.sidebar-search\",\n Ze = n.default.fn[Xe],\n et = \"sidebar-search-open\",\n tt = \"fa-search\",\n at = \"fa-times\",\n nt = \"sidebar-search-results\",\n it = \"list-group\",\n ot = '[data-widget=\"sidebar-search\"]',\n lt = ot + \" .form-control\",\n st = ot + \" .btn\",\n rt = st + \" i\",\n dt = \".sidebar-search-results\",\n ft = \".sidebar-search-results .list-group\",\n ut = {\n arrowSign: \"->\",\n minLength: 3,\n maxResults: 7,\n highlightName: !0,\n highlightPath: !1,\n highlightClass: \"text-light\",\n notFoundText: \"No element found!\"\n },\n ct = [],\n ht = function () {\n function e(e, t) {\n this.element = e, this.options = n.default.extend({}, ut, t), this.items = [];\n }\n var a = e.prototype;\n return a.init = function () {\n var e = this;\n 0 !== n.default(ot).length && (0 === n.default(ot).next(dt).length && n.default(ot).after(n.default(\"<div />\", {\n class: nt\n })), 0 === n.default(dt).children(\".list-group\").length && n.default(dt).append(n.default(\"<div />\", {\n class: it\n })), this._addNotFound(), n.default(\".main-sidebar .nav-sidebar\").children().each(function (t, a) {\n e._parseItem(a);\n }));\n }, a.search = function () {\n var e = this,\n t = n.default(lt).val().toLowerCase();\n if (t.length < this.options.minLength) return n.default(ft).empty(), this._addNotFound(), void this.close();\n var a = ct.filter(function (e) {\n return e.name.toLowerCase().includes(t);\n }),\n i = n.default(a.slice(0, this.options.maxResults));\n n.default(ft).empty(), 0 === i.length ? this._addNotFound() : i.each(function (t, a) {\n n.default(ft).append(e._renderItem(escape(a.name), encodeURI(a.link), a.path));\n }), this.open();\n }, a.open = function () {\n n.default(ot).parent().addClass(et), n.default(rt).removeClass(tt).addClass(at);\n }, a.close = function () {\n n.default(ot).parent().removeClass(et), n.default(rt).removeClass(at).addClass(tt);\n }, a.toggle = function () {\n n.default(ot).parent().hasClass(et) ? this.close() : this.open();\n }, a._parseItem = function (e, t) {\n var a = this;\n if (void 0 === t && (t = []), !n.default(e).hasClass(\"nav-header\")) {\n var i = {},\n o = n.default(e).clone().find(\"> .nav-link\"),\n l = n.default(e).clone().find(\"> .nav-treeview\"),\n s = o.attr(\"href\"),\n r = o.find(\"p\").children().remove().end().text();\n if (i.name = this._trimText(r), i.link = s, i.path = t, 0 === l.length) ct.push(i);else {\n var d = i.path.concat([i.name]);\n l.children().each(function (e, t) {\n a._parseItem(t, d);\n });\n }\n }\n }, a._trimText = function (e) {\n return t.trim(e.replace(/(\\r\\n|\\n|\\r)/gm, \" \"));\n }, a._renderItem = function (e, t, a) {\n var i = this;\n if (a = a.join(\" \" + this.options.arrowSign + \" \"), e = unescape(e), t = decodeURI(t), this.options.highlightName || this.options.highlightPath) {\n var o = n.default(lt).val().toLowerCase(),\n l = new RegExp(o, \"gi\");\n this.options.highlightName && (e = e.replace(l, function (e) {\n return '<strong class=\"' + i.options.highlightClass + '\">' + e + \"</strong>\";\n })), this.options.highlightPath && (a = a.replace(l, function (e) {\n return '<strong class=\"' + i.options.highlightClass + '\">' + e + \"</strong>\";\n }));\n }\n var s = n.default(\"<a/>\", {\n href: decodeURIComponent(t),\n class: \"list-group-item\"\n }),\n r = n.default(\"<div/>\", {\n class: \"search-title\"\n }).html(e),\n d = n.default(\"<div/>\", {\n class: \"search-path\"\n }).html(a);\n return s.append(r).append(d), s;\n }, a._addNotFound = function () {\n n.default(ft).append(this._renderItem(this.options.notFoundText, \"#\", []));\n }, e._jQueryInterface = function (t) {\n var a = n.default(this).data(Ye);\n a || (a = n.default(this).data());\n var i = n.default.extend({}, ut, \"object\" == typeof t ? t : a),\n o = new e(n.default(this), i);\n n.default(this).data(Ye, \"object\" == typeof t ? t : a), \"string\" == typeof t && /init|toggle|close|open|search/.test(t) ? o[t]() : o.init();\n }, e;\n }();\n n.default(document).on(\"click\", st, function (e) {\n e.preventDefault(), ht._jQueryInterface.call(n.default(ot), \"toggle\");\n }), n.default(document).on(\"keyup\", lt, function (e) {\n return 38 == e.keyCode ? (e.preventDefault(), void n.default(ft).children().last().focus()) : 40 == e.keyCode ? (e.preventDefault(), void n.default(ft).children().first().focus()) : void setTimeout(function () {\n ht._jQueryInterface.call(n.default(ot), \"search\");\n }, 100);\n }), n.default(document).on(\"keydown\", ft, function (e) {\n var t = n.default(\":focus\");\n 38 == e.keyCode && (e.preventDefault(), t.is(\":first-child\") ? t.siblings().last().focus() : t.prev().focus()), 40 == e.keyCode && (e.preventDefault(), t.is(\":last-child\") ? t.siblings().first().focus() : t.next().focus());\n }), n.default(window).on(\"load\", function () {\n ht._jQueryInterface.call(n.default(ot), \"init\");\n }), n.default.fn[Xe] = ht._jQueryInterface, n.default.fn[Xe].Constructor = ht, n.default.fn[Xe].noConflict = function () {\n return n.default.fn[Xe] = Ze, ht._jQueryInterface;\n };\n var gt = \"NavbarSearch\",\n pt = \"lte.navbar-search\",\n mt = n.default.fn[gt],\n vt = '[data-widget=\"navbar-search\"]',\n _t = \".form-control\",\n bt = \"navbar-search-open\",\n yt = {\n resetOnClose: !0,\n target: \".navbar-search-block\"\n },\n Ct = function () {\n function e(e, t) {\n this._element = e, this._config = n.default.extend({}, yt, t);\n }\n var t = e.prototype;\n return t.open = function () {\n n.default(this._config.target).css(\"display\", \"flex\").hide().fadeIn().addClass(bt), n.default(this._config.target + \" \" + _t).focus();\n }, t.close = function () {\n n.default(this._config.target).fadeOut().removeClass(bt), this._config.resetOnClose && n.default(this._config.target + \" \" + _t).val(\"\");\n }, t.toggle = function () {\n n.default(this._config.target).hasClass(bt) ? this.close() : this.open();\n }, e._jQueryInterface = function (t) {\n return this.each(function () {\n var a = n.default(this).data(pt),\n i = n.default.extend({}, yt, n.default(this).data());\n if (a || (a = new e(this, i), n.default(this).data(pt, a)), !/toggle|close|open/.test(t)) throw new Error(\"Undefined method \" + t);\n a[t]();\n });\n }, e;\n }();\n n.default(document).on(\"click\", vt, function (e) {\n e.preventDefault();\n var t = n.default(e.currentTarget);\n \"navbar-search\" !== t.data(\"widget\") && (t = t.closest(vt)), Ct._jQueryInterface.call(t, \"toggle\");\n }), n.default.fn[gt] = Ct._jQueryInterface, n.default.fn[gt].Constructor = Ct, n.default.fn[gt].noConflict = function () {\n return n.default.fn[gt] = mt, Ct._jQueryInterface;\n };\n var wt = n.default.fn.Toasts,\n xt = \"topRight\",\n It = \"topLeft\",\n Tt = \"bottomRight\",\n St = \"bottomLeft\",\n jt = {\n position: xt,\n fixed: !0,\n autohide: !1,\n autoremove: !0,\n delay: 1e3,\n fade: !0,\n icon: null,\n image: null,\n imageAlt: null,\n imageHeight: \"25px\",\n title: null,\n subtitle: null,\n close: !0,\n body: null,\n class: null\n },\n kt = function () {\n function e(e, t) {\n this._config = t, this._prepareContainer(), n.default(\"body\").trigger(n.default.Event(\"init.lte.toasts\"));\n }\n var t = e.prototype;\n return t.create = function () {\n var e = n.default('<div class=\"toast\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\"/>');\n e.data(\"autohide\", this._config.autohide), e.data(\"animation\", this._config.fade), this._config.class && e.addClass(this._config.class), this._config.delay && 500 != this._config.delay && e.data(\"delay\", this._config.delay);\n var t = n.default('<div class=\"toast-header\">');\n if (null != this._config.image) {\n var a = n.default(\"<img />\").addClass(\"rounded mr-2\").attr(\"src\", this._config.image).attr(\"alt\", this._config.imageAlt);\n null != this._config.imageHeight && a.height(this._config.imageHeight).width(\"auto\"), t.append(a);\n }\n if (null != this._config.icon && t.append(n.default(\"<i />\").addClass(\"mr-2\").addClass(this._config.icon)), null != this._config.title && t.append(n.default(\"<strong />\").addClass(\"mr-auto\").html(this._config.title)), null != this._config.subtitle && t.append(n.default(\"<small />\").html(this._config.subtitle)), 1 == this._config.close) {\n var i = n.default('<button data-dismiss=\"toast\" />').attr(\"type\", \"button\").addClass(\"ml-2 mb-1 close\").attr(\"aria-label\", \"Close\").append('<span aria-hidden=\"true\">×</span>');\n null == this._config.title && i.toggleClass(\"ml-2 ml-auto\"), t.append(i);\n }\n e.append(t), null != this._config.body && e.append(n.default('<div class=\"toast-body\" />').html(this._config.body)), n.default(this._getContainerId()).prepend(e);\n var o = n.default(\"body\");\n o.trigger(n.default.Event(\"created.lte.toasts\")), e.toast(\"show\"), this._config.autoremove && e.on(\"hidden.bs.toast\", function () {\n n.default(this).delay(200).remove(), o.trigger(n.default.Event(\"removed.lte.toasts\"));\n });\n }, t._getContainerId = function () {\n return this._config.position == xt ? \"#toastsContainerTopRight\" : this._config.position == It ? \"#toastsContainerTopLeft\" : this._config.position == Tt ? \"#toastsContainerBottomRight\" : this._config.position == St ? \"#toastsContainerBottomLeft\" : void 0;\n }, t._prepareContainer = function () {\n if (0 === n.default(this._getContainerId()).length) {\n var e = n.default(\"<div />\").attr(\"id\", this._getContainerId().replace(\"#\", \"\"));\n this._config.position == xt ? e.addClass(\"toasts-top-right\") : this._config.position == It ? e.addClass(\"toasts-top-left\") : this._config.position == Tt ? e.addClass(\"toasts-bottom-right\") : this._config.position == St && e.addClass(\"toasts-bottom-left\"), n.default(\"body\").append(e);\n }\n this._config.fixed ? n.default(this._getContainerId()).addClass(\"fixed\") : n.default(this._getContainerId()).removeClass(\"fixed\");\n }, e._jQueryInterface = function (t, a) {\n return this.each(function () {\n var i = n.default.extend({}, jt, a),\n o = new e(n.default(this), i);\n \"create\" === t && o[t]();\n });\n }, e;\n }();\n n.default.fn.Toasts = kt._jQueryInterface, n.default.fn.Toasts.Constructor = kt, n.default.fn.Toasts.noConflict = function () {\n return n.default.fn.Toasts = wt, kt._jQueryInterface;\n };\n var Qt = \"TodoList\",\n Ht = \"lte.todolist\",\n zt = n.default.fn[Qt],\n Ft = \"done\",\n Et = {\n onCheck: function (e) {\n return e;\n },\n onUnCheck: function (e) {\n return e;\n }\n },\n Lt = function () {\n function e(e, t) {\n this._config = t, this._element = e, this._init();\n }\n var t = e.prototype;\n return t.toggle = function (e) {\n e.parents(\"li\").toggleClass(Ft), n.default(e).prop(\"checked\") ? this.check(e) : this.unCheck(n.default(e));\n }, t.check = function (e) {\n this._config.onCheck.call(e);\n }, t.unCheck = function (e) {\n this._config.onUnCheck.call(e);\n }, t._init = function () {\n var e = this,\n t = this._element;\n t.find(\"input:checkbox:checked\").parents(\"li\").toggleClass(Ft), t.on(\"change\", \"input:checkbox\", function (t) {\n e.toggle(n.default(t.target));\n });\n }, e._jQueryInterface = function (t) {\n return this.each(function () {\n var a = n.default(this).data(Ht);\n a || (a = n.default(this).data());\n var i = n.default.extend({}, Et, \"object\" == typeof t ? t : a),\n o = new e(n.default(this), i);\n n.default(this).data(Ht, \"object\" == typeof t ? t : a), \"init\" === t && o[t]();\n });\n }, e;\n }();\n n.default(window).on(\"load\", function () {\n Lt._jQueryInterface.call(n.default('[data-widget=\"todo-list\"]'));\n }), n.default.fn[Qt] = Lt._jQueryInterface, n.default.fn[Qt].Constructor = Lt, n.default.fn[Qt].noConflict = function () {\n return n.default.fn[Qt] = zt, Lt._jQueryInterface;\n };\n var Dt = \"Treeview\",\n Rt = \"lte.treeview\",\n At = n.default.fn[Dt],\n Mt = \".nav-item\",\n qt = \".nav-treeview\",\n Ot = \".menu-open\",\n Nt = '[data-widget=\"treeview\"]',\n Pt = \"menu-open\",\n Ut = \"menu-is-opening\",\n Bt = {\n trigger: Nt + \" .nav-link\",\n animationSpeed: 300,\n accordion: !0,\n expandSidebar: !1,\n sidebarButtonSelector: '[data-widget=\"pushmenu\"]'\n },\n $t = function () {\n function e(e, t) {\n this._config = t, this._element = e;\n }\n var t = e.prototype;\n return t.init = function () {\n n.default(\".nav-item.menu-open .nav-treeview.menu-open\").css(\"display\", \"block\"), this._setupListeners();\n }, t.expand = function (e, t) {\n var a = this,\n i = n.default.Event(\"expanded.lte.treeview\");\n if (this._config.accordion) {\n var o = t.siblings(Ot).first(),\n l = o.find(qt).first();\n this.collapse(l, o);\n }\n t.addClass(Ut), e.stop().slideDown(this._config.animationSpeed, function () {\n t.addClass(Pt), n.default(a._element).trigger(i);\n }), this._config.expandSidebar && this._expandSidebar();\n }, t.collapse = function (e, t) {\n var a = this,\n i = n.default.Event(\"collapsed.lte.treeview\");\n t.removeClass(\"menu-is-opening menu-open\"), e.stop().slideUp(this._config.animationSpeed, function () {\n n.default(a._element).trigger(i), e.find(\".menu-open > .nav-treeview\").slideUp(), e.find(Ot).removeClass(\"menu-is-opening menu-open\");\n });\n }, t.toggle = function (e) {\n var t = n.default(e.currentTarget),\n a = t.parent(),\n i = a.find(\"> .nav-treeview\");\n if (i.is(qt) || (a.is(Mt) || (i = a.parent().find(\"> .nav-treeview\")), i.is(qt))) {\n e.preventDefault();\n var o = t.parents(Mt).first();\n o.hasClass(Pt) ? this.collapse(n.default(i), o) : this.expand(n.default(i), o);\n }\n }, t._setupListeners = function () {\n var e = this,\n t = void 0 !== this._element.attr(\"id\") ? \"#\" + this._element.attr(\"id\") : \"\";\n n.default(document).on(\"click\", \"\" + t + this._config.trigger, function (t) {\n e.toggle(t);\n });\n }, t._expandSidebar = function () {\n n.default(\"body\").hasClass(\"sidebar-collapse\") && n.default(this._config.sidebarButtonSelector).PushMenu(\"expand\");\n }, e._jQueryInterface = function (t) {\n return this.each(function () {\n var a = n.default(this).data(Rt),\n i = n.default.extend({}, Bt, n.default(this).data());\n a || (a = new e(n.default(this), i), n.default(this).data(Rt, a)), \"init\" === t && a[t]();\n });\n }, e;\n }();\n n.default(window).on(\"load.lte.treeview\", function () {\n n.default(Nt).each(function () {\n $t._jQueryInterface.call(n.default(this), \"init\");\n });\n }), n.default.fn[Dt] = $t._jQueryInterface, n.default.fn[Dt].Constructor = $t, n.default.fn[Dt].noConflict = function () {\n return n.default.fn[Dt] = At, $t._jQueryInterface;\n }, e.CardRefresh = f, e.CardWidget = I, e.ControlSidebar = M, e.DirectChat = P, e.Dropdown = V, e.ExpandableTable = te, e.Fullscreen = re, e.IFrame = Qe, e.Layout = Me, e.NavbarSearch = Ct, e.PushMenu = Ke, e.SidebarSearch = ht, e.Toasts = kt, e.TodoList = Lt, e.Treeview = $t, Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n});","require('./angular');\nmodule.exports = angular;","require('./angular-route');\nmodule.exports = 'ngRoute';","/**\n * @license AngularJS v1.8.3\n * (c) 2010-2020 Google LLC. http://angularjs.org\n * License: MIT\n */\n(function (window, angular) {\n 'use strict';\n\n /* global shallowCopy: true */\n\n /**\n * Creates a shallow copy of an object, an array or a primitive.\n *\n * Assumes that there are no proto properties for objects.\n */\n function shallowCopy(src, dst) {\n if (isArray(src)) {\n dst = dst || [];\n for (var i = 0, ii = src.length; i < ii; i++) {\n dst[i] = src[i];\n }\n } else if (isObject(src)) {\n dst = dst || {};\n for (var key in src) {\n if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {\n dst[key] = src[key];\n }\n }\n }\n return dst || src;\n }\n\n /* global routeToRegExp: true */\n\n /**\n * @param {string} path - The path to parse. (It is assumed to have query and hash stripped off.)\n * @param {Object} opts - Options.\n * @return {Object} - An object containing an array of path parameter names (`keys`) and a regular\n * expression (`regexp`) that can be used to identify a matching URL and extract the path\n * parameter values.\n *\n * @description\n * Parses the given path, extracting path parameter names and a regular expression to match URLs.\n *\n * Originally inspired by `pathRexp` in `visionmedia/express/lib/utils.js`.\n */\n function routeToRegExp(path, opts) {\n var keys = [];\n var pattern = path.replace(/([().])/g, '\\\\$1').replace(/(\\/)?:(\\w+)(\\*\\?|[?*])?/g, function (_, slash, key, option) {\n var optional = option === '?' || option === '*?';\n var star = option === '*' || option === '*?';\n keys.push({\n name: key,\n optional: optional\n });\n slash = slash || '';\n return (optional ? '(?:' + slash : slash + '(?:') + (star ? '(.+?)' : '([^/]+)') + (optional ? '?)?' : ')');\n }).replace(/([/$*])/g, '\\\\$1');\n if (opts.ignoreTrailingSlashes) {\n pattern = pattern.replace(/\\/+$/, '') + '/*';\n }\n return {\n keys: keys,\n regexp: new RegExp('^' + pattern + '(?:[?#]|$)', opts.caseInsensitiveMatch ? 'i' : '')\n };\n }\n\n /* global routeToRegExp: false */\n /* global shallowCopy: false */\n\n // `isArray` and `isObject` are necessary for `shallowCopy()` (included via `src/shallowCopy.js`).\n // They are initialized inside the `$RouteProvider`, to ensure `window.angular` is available.\n var isArray;\n var isObject;\n var isDefined;\n var noop;\n\n /**\n * @ngdoc module\n * @name ngRoute\n * @description\n *\n * The `ngRoute` module provides routing and deeplinking services and directives for AngularJS apps.\n *\n * ## Example\n * See {@link ngRoute.$route#examples $route} for an example of configuring and using `ngRoute`.\n *\n */\n /* global -ngRouteModule */\n var ngRouteModule = angular.module('ngRoute', []).info({\n angularVersion: '1.8.3'\n }).provider('$route', $RouteProvider).\n // Ensure `$route` will be instantiated in time to capture the initial `$locationChangeSuccess`\n // event (unless explicitly disabled). This is necessary in case `ngView` is included in an\n // asynchronously loaded template.\n run(instantiateRoute);\n var $routeMinErr = angular.$$minErr('ngRoute');\n var isEagerInstantiationEnabled;\n\n /**\n * @ngdoc provider\n * @name $routeProvider\n * @this\n *\n * @description\n *\n * Used for configuring routes.\n *\n * ## Example\n * See {@link ngRoute.$route#examples $route} for an example of configuring and using `ngRoute`.\n *\n * ## Dependencies\n * Requires the {@link ngRoute `ngRoute`} module to be installed.\n */\n function $RouteProvider() {\n isArray = angular.isArray;\n isObject = angular.isObject;\n isDefined = angular.isDefined;\n noop = angular.noop;\n function inherit(parent, extra) {\n return angular.extend(Object.create(parent), extra);\n }\n var routes = {};\n\n /**\n * @ngdoc method\n * @name $routeProvider#when\n *\n * @param {string} path Route path (matched against `$location.path`). If `$location.path`\n * contains redundant trailing slash or is missing one, the route will still match and the\n * `$location.path` will be updated to add or drop the trailing slash to exactly match the\n * route definition.\n *\n * * `path` can contain named groups starting with a colon: e.g. `:name`. All characters up\n * to the next slash are matched and stored in `$routeParams` under the given `name`\n * when the route matches.\n * * `path` can contain named groups starting with a colon and ending with a star:\n * e.g.`:name*`. All characters are eagerly stored in `$routeParams` under the given `name`\n * when the route matches.\n * * `path` can contain optional named groups with a question mark: e.g.`:name?`.\n *\n * For example, routes like `/color/:color/largecode/:largecode*\\/edit` will match\n * `/color/brown/largecode/code/with/slashes/edit` and extract:\n *\n * * `color: brown`\n * * `largecode: code/with/slashes`.\n *\n *\n * @param {Object} route Mapping information to be assigned to `$route.current` on route\n * match.\n *\n * Object properties:\n *\n * - `controller` – `{(string|Function)=}` – Controller fn that should be associated with\n * newly created scope or the name of a {@link angular.Module#controller registered\n * controller} if passed as a string.\n * - `controllerAs` – `{string=}` – An identifier name for a reference to the controller.\n * If present, the controller will be published to scope under the `controllerAs` name.\n * - `template` – `{(string|Function)=}` – html template as a string or a function that\n * returns an html template as a string which should be used by {@link\n * ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude ngInclude} directives.\n * This property takes precedence over `templateUrl`.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - `{Array.<Object>}` - route parameters extracted from the current\n * `$location.path()` by applying the current route\n *\n * One of `template` or `templateUrl` is required.\n *\n * - `templateUrl` – `{(string|Function)=}` – path or function that returns a path to an html\n * template that should be used by {@link ngRoute.directive:ngView ngView}.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - `{Array.<Object>}` - route parameters extracted from the current\n * `$location.path()` by applying the current route\n *\n * One of `templateUrl` or `template` is required.\n *\n * - `resolve` - `{Object.<string, Function>=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the router\n * will wait for them all to be resolved or one to be rejected before the controller is\n * instantiated.\n * If all the promises are resolved successfully, the values of the resolved promises are\n * injected and {@link ngRoute.$route#$routeChangeSuccess $routeChangeSuccess} event is\n * fired. If any of the promises are rejected the\n * {@link ngRoute.$route#$routeChangeError $routeChangeError} event is fired.\n * For easier access to the resolved dependencies from the template, the `resolve` map will\n * be available on the scope of the route, under `$resolve` (by default) or a custom name\n * specified by the `resolveAs` property (see below). This can be particularly useful, when\n * working with {@link angular.Module#component components} as route templates.<br />\n * <div class=\"alert alert-warning\">\n * **Note:** If your scope already contains a property with this name, it will be hidden\n * or overwritten. Make sure, you specify an appropriate name for this property, that\n * does not collide with other properties on the scope.\n * </div>\n * The map object is:\n *\n * - `key` – `{string}`: a name of a dependency to be injected into the controller.\n * - `factory` - `{string|Function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is {@link auto.$injector#invoke injected}\n * and the return value is treated as the dependency. If the result is a promise, it is\n * resolved before its value is injected into the controller. Be aware that\n * `ngRoute.$routeParams` will still refer to the previous route within these resolve\n * functions. Use `$route.current.params` to access the new route parameters, instead.\n *\n * - `resolveAs` - `{string=}` - The name under which the `resolve` map will be available on\n * the scope of the route. If omitted, defaults to `$resolve`.\n *\n * - `redirectTo` – `{(string|Function)=}` – value to update\n * {@link ng.$location $location} path with and trigger route redirection.\n *\n * If `redirectTo` is a function, it will be called with the following parameters:\n *\n * - `{Object.<string>}` - route parameters extracted from the current\n * `$location.path()` by applying the current route templateUrl.\n * - `{string}` - current `$location.path()`\n * - `{Object}` - current `$location.search()`\n *\n * The custom `redirectTo` function is expected to return a string which will be used\n * to update `$location.url()`. If the function throws an error, no further processing will\n * take place and the {@link ngRoute.$route#$routeChangeError $routeChangeError} event will\n * be fired.\n *\n * Routes that specify `redirectTo` will not have their controllers, template functions\n * or resolves called, the `$location` will be changed to the redirect url and route\n * processing will stop. The exception to this is if the `redirectTo` is a function that\n * returns `undefined`. In this case the route transition occurs as though there was no\n * redirection.\n *\n * - `resolveRedirectTo` – `{Function=}` – a function that will (eventually) return the value\n * to update {@link ng.$location $location} URL with and trigger route redirection. In\n * contrast to `redirectTo`, dependencies can be injected into `resolveRedirectTo` and the\n * return value can be either a string or a promise that will be resolved to a string.\n *\n * Similar to `redirectTo`, if the return value is `undefined` (or a promise that gets\n * resolved to `undefined`), no redirection takes place and the route transition occurs as\n * though there was no redirection.\n *\n * If the function throws an error or the returned promise gets rejected, no further\n * processing will take place and the\n * {@link ngRoute.$route#$routeChangeError $routeChangeError} event will be fired.\n *\n * `redirectTo` takes precedence over `resolveRedirectTo`, so specifying both on the same\n * route definition, will cause the latter to be ignored.\n *\n * - `[reloadOnUrl=true]` - `{boolean=}` - reload route when any part of the URL changes\n * (including the path) even if the new URL maps to the same route.\n *\n * If the option is set to `false` and the URL in the browser changes, but the new URL maps\n * to the same route, then a `$routeUpdate` event is broadcasted on the root scope (without\n * reloading the route).\n *\n * - `[reloadOnSearch=true]` - `{boolean=}` - reload route when only `$location.search()`\n * or `$location.hash()` changes.\n *\n * If the option is set to `false` and the URL in the browser changes, then a `$routeUpdate`\n * event is broadcasted on the root scope (without reloading the route).\n *\n * <div class=\"alert alert-warning\">\n * **Note:** This option has no effect if `reloadOnUrl` is set to `false`.\n * </div>\n *\n * - `[caseInsensitiveMatch=false]` - `{boolean=}` - match routes without being case sensitive\n *\n * If the option is set to `true`, then the particular route can be matched without being\n * case sensitive\n *\n * @returns {Object} self\n *\n * @description\n * Adds a new route definition to the `$route` service.\n */\n this.when = function (path, route) {\n //copy original route object to preserve params inherited from proto chain\n var routeCopy = shallowCopy(route);\n if (angular.isUndefined(routeCopy.reloadOnUrl)) {\n routeCopy.reloadOnUrl = true;\n }\n if (angular.isUndefined(routeCopy.reloadOnSearch)) {\n routeCopy.reloadOnSearch = true;\n }\n if (angular.isUndefined(routeCopy.caseInsensitiveMatch)) {\n routeCopy.caseInsensitiveMatch = this.caseInsensitiveMatch;\n }\n routes[path] = angular.extend(routeCopy, {\n originalPath: path\n }, path && routeToRegExp(path, routeCopy));\n\n // create redirection for trailing slashes\n if (path) {\n var redirectPath = path[path.length - 1] === '/' ? path.substr(0, path.length - 1) : path + '/';\n routes[redirectPath] = angular.extend({\n originalPath: path,\n redirectTo: path\n }, routeToRegExp(redirectPath, routeCopy));\n }\n return this;\n };\n\n /**\n * @ngdoc property\n * @name $routeProvider#caseInsensitiveMatch\n * @description\n *\n * A boolean property indicating if routes defined\n * using this provider should be matched using a case insensitive\n * algorithm. Defaults to `false`.\n */\n this.caseInsensitiveMatch = false;\n\n /**\n * @ngdoc method\n * @name $routeProvider#otherwise\n *\n * @description\n * Sets route definition that will be used on route change when no other route definition\n * is matched.\n *\n * @param {Object|string} params Mapping information to be assigned to `$route.current`.\n * If called with a string, the value maps to `redirectTo`.\n * @returns {Object} self\n */\n this.otherwise = function (params) {\n if (typeof params === 'string') {\n params = {\n redirectTo: params\n };\n }\n this.when(null, params);\n return this;\n };\n\n /**\n * @ngdoc method\n * @name $routeProvider#eagerInstantiationEnabled\n * @kind function\n *\n * @description\n * Call this method as a setter to enable/disable eager instantiation of the\n * {@link ngRoute.$route $route} service upon application bootstrap. You can also call it as a\n * getter (i.e. without any arguments) to get the current value of the\n * `eagerInstantiationEnabled` flag.\n *\n * Instantiating `$route` early is necessary for capturing the initial\n * {@link ng.$location#$locationChangeStart $locationChangeStart} event and navigating to the\n * appropriate route. Usually, `$route` is instantiated in time by the\n * {@link ngRoute.ngView ngView} directive. Yet, in cases where `ngView` is included in an\n * asynchronously loaded template (e.g. in another directive's template), the directive factory\n * might not be called soon enough for `$route` to be instantiated _before_ the initial\n * `$locationChangeSuccess` event is fired. Eager instantiation ensures that `$route` is always\n * instantiated in time, regardless of when `ngView` will be loaded.\n *\n * The default value is true.\n *\n * **Note**:<br />\n * You may want to disable the default behavior when unit-testing modules that depend on\n * `ngRoute`, in order to avoid an unexpected request for the default route's template.\n *\n * @param {boolean=} enabled - If provided, update the internal `eagerInstantiationEnabled` flag.\n *\n * @returns {*} The current value of the `eagerInstantiationEnabled` flag if used as a getter or\n * itself (for chaining) if used as a setter.\n */\n isEagerInstantiationEnabled = true;\n this.eagerInstantiationEnabled = function eagerInstantiationEnabled(enabled) {\n if (isDefined(enabled)) {\n isEagerInstantiationEnabled = enabled;\n return this;\n }\n return isEagerInstantiationEnabled;\n };\n this.$get = ['$rootScope', '$location', '$routeParams', '$q', '$injector', '$templateRequest', '$sce', '$browser', function ($rootScope, $location, $routeParams, $q, $injector, $templateRequest, $sce, $browser) {\n /**\n * @ngdoc service\n * @name $route\n * @requires $location\n * @requires $routeParams\n *\n * @property {Object} current Reference to the current route definition.\n * The route definition contains:\n *\n * - `controller`: The controller constructor as defined in the route definition.\n * - `locals`: A map of locals which is used by {@link ng.$controller $controller} service for\n * controller instantiation. The `locals` contain\n * the resolved values of the `resolve` map. Additionally the `locals` also contain:\n *\n * - `$scope` - The current route scope.\n * - `$template` - The current route template HTML.\n *\n * The `locals` will be assigned to the route scope's `$resolve` property. You can override\n * the property name, using `resolveAs` in the route definition. See\n * {@link ngRoute.$routeProvider $routeProvider} for more info.\n *\n * @property {Object} routes Object with all route configuration Objects as its properties.\n *\n * @description\n * `$route` is used for deep-linking URLs to controllers and views (HTML partials).\n * It watches `$location.url()` and tries to map the path to an existing route definition.\n *\n * Requires the {@link ngRoute `ngRoute`} module to be installed.\n *\n * You can define routes through {@link ngRoute.$routeProvider $routeProvider}'s API.\n *\n * The `$route` service is typically used in conjunction with the\n * {@link ngRoute.directive:ngView `ngView`} directive and the\n * {@link ngRoute.$routeParams `$routeParams`} service.\n *\n * @example\n * This example shows how changing the URL hash causes the `$route` to match a route against the\n * URL, and the `ngView` pulls in the partial.\n *\n * <example name=\"$route-service\" module=\"ngRouteExample\"\n * deps=\"angular-route.js\" fixBase=\"true\">\n * <file name=\"index.html\">\n * <div ng-controller=\"MainController\">\n * Choose:\n * <a href=\"Book/Moby\">Moby</a> |\n * <a href=\"Book/Moby/ch/1\">Moby: Ch1</a> |\n * <a href=\"Book/Gatsby\">Gatsby</a> |\n * <a href=\"Book/Gatsby/ch/4?key=value\">Gatsby: Ch4</a> |\n * <a href=\"Book/Scarlet\">Scarlet Letter</a><br/>\n *\n * <div ng-view></div>\n *\n * <hr />\n *\n * <pre>$location.path() = {{$location.path()}}</pre>\n * <pre>$route.current.templateUrl = {{$route.current.templateUrl}}</pre>\n * <pre>$route.current.params = {{$route.current.params}}</pre>\n * <pre>$route.current.scope.name = {{$route.current.scope.name}}</pre>\n * <pre>$routeParams = {{$routeParams}}</pre>\n * </div>\n * </file>\n *\n * <file name=\"book.html\">\n * controller: {{name}}<br />\n * Book Id: {{params.bookId}}<br />\n * </file>\n *\n * <file name=\"chapter.html\">\n * controller: {{name}}<br />\n * Book Id: {{params.bookId}}<br />\n * Chapter Id: {{params.chapterId}}\n * </file>\n *\n * <file name=\"script.js\">\n * angular.module('ngRouteExample', ['ngRoute'])\n *\n * .controller('MainController', function($scope, $route, $routeParams, $location) {\n * $scope.$route = $route;\n * $scope.$location = $location;\n * $scope.$routeParams = $routeParams;\n * })\n *\n * .controller('BookController', function($scope, $routeParams) {\n * $scope.name = 'BookController';\n * $scope.params = $routeParams;\n * })\n *\n * .controller('ChapterController', function($scope, $routeParams) {\n * $scope.name = 'ChapterController';\n * $scope.params = $routeParams;\n * })\n *\n * .config(function($routeProvider, $locationProvider) {\n * $routeProvider\n * .when('/Book/:bookId', {\n * templateUrl: 'book.html',\n * controller: 'BookController',\n * resolve: {\n * // I will cause a 1 second delay\n * delay: function($q, $timeout) {\n * var delay = $q.defer();\n * $timeout(delay.resolve, 1000);\n * return delay.promise;\n * }\n * }\n * })\n * .when('/Book/:bookId/ch/:chapterId', {\n * templateUrl: 'chapter.html',\n * controller: 'ChapterController'\n * });\n *\n * // configure html5 to get links working on jsfiddle\n * $locationProvider.html5Mode(true);\n * });\n *\n * </file>\n *\n * <file name=\"protractor.js\" type=\"protractor\">\n * it('should load and compile correct template', function() {\n * element(by.linkText('Moby: Ch1')).click();\n * var content = element(by.css('[ng-view]')).getText();\n * expect(content).toMatch(/controller: ChapterController/);\n * expect(content).toMatch(/Book Id: Moby/);\n * expect(content).toMatch(/Chapter Id: 1/);\n *\n * element(by.partialLinkText('Scarlet')).click();\n *\n * content = element(by.css('[ng-view]')).getText();\n * expect(content).toMatch(/controller: BookController/);\n * expect(content).toMatch(/Book Id: Scarlet/);\n * });\n * </file>\n * </example>\n */\n\n /**\n * @ngdoc event\n * @name $route#$routeChangeStart\n * @eventType broadcast on root scope\n * @description\n * Broadcasted before a route change. At this point the route services starts\n * resolving all of the dependencies needed for the route change to occur.\n * Typically this involves fetching the view template as well as any dependencies\n * defined in `resolve` route property. Once all of the dependencies are resolved\n * `$routeChangeSuccess` is fired.\n *\n * The route change (and the `$location` change that triggered it) can be prevented\n * by calling `preventDefault` method of the event. See {@link ng.$rootScope.Scope#$on}\n * for more details about event object.\n *\n * @param {Object} angularEvent Synthetic event object.\n * @param {Route} next Future route information.\n * @param {Route} current Current route information.\n */\n\n /**\n * @ngdoc event\n * @name $route#$routeChangeSuccess\n * @eventType broadcast on root scope\n * @description\n * Broadcasted after a route change has happened successfully.\n * The `resolve` dependencies are now available in the `current.locals` property.\n *\n * {@link ngRoute.directive:ngView ngView} listens for the directive\n * to instantiate the controller and render the view.\n *\n * @param {Object} angularEvent Synthetic event object.\n * @param {Route} current Current route information.\n * @param {Route|Undefined} previous Previous route information, or undefined if current is\n * first route entered.\n */\n\n /**\n * @ngdoc event\n * @name $route#$routeChangeError\n * @eventType broadcast on root scope\n * @description\n * Broadcasted if a redirection function fails or any redirection or resolve promises are\n * rejected.\n *\n * @param {Object} angularEvent Synthetic event object\n * @param {Route} current Current route information.\n * @param {Route} previous Previous route information.\n * @param {Route} rejection The thrown error or the rejection reason of the promise. Usually\n * the rejection reason is the error that caused the promise to get rejected.\n */\n\n /**\n * @ngdoc event\n * @name $route#$routeUpdate\n * @eventType broadcast on root scope\n * @description\n * Broadcasted if the same instance of a route (including template, controller instance,\n * resolved dependencies, etc.) is being reused. This can happen if either `reloadOnSearch` or\n * `reloadOnUrl` has been set to `false`.\n *\n * @param {Object} angularEvent Synthetic event object\n * @param {Route} current Current/previous route information.\n */\n\n var forceReload = false,\n preparedRoute,\n preparedRouteIsUpdateOnly,\n $route = {\n routes: routes,\n /**\n * @ngdoc method\n * @name $route#reload\n *\n * @description\n * Causes `$route` service to reload the current route even if\n * {@link ng.$location $location} hasn't changed.\n *\n * As a result of that, {@link ngRoute.directive:ngView ngView}\n * creates new scope and reinstantiates the controller.\n */\n reload: function () {\n forceReload = true;\n var fakeLocationEvent = {\n defaultPrevented: false,\n preventDefault: function fakePreventDefault() {\n this.defaultPrevented = true;\n forceReload = false;\n }\n };\n $rootScope.$evalAsync(function () {\n prepareRoute(fakeLocationEvent);\n if (!fakeLocationEvent.defaultPrevented) commitRoute();\n });\n },\n /**\n * @ngdoc method\n * @name $route#updateParams\n *\n * @description\n * Causes `$route` service to update the current URL, replacing\n * current route parameters with those specified in `newParams`.\n * Provided property names that match the route's path segment\n * definitions will be interpolated into the location's path, while\n * remaining properties will be treated as query params.\n *\n * @param {!Object<string, string>} newParams mapping of URL parameter names to values\n */\n updateParams: function (newParams) {\n if (this.current && this.current.$$route) {\n newParams = angular.extend({}, this.current.params, newParams);\n $location.path(interpolate(this.current.$$route.originalPath, newParams));\n // interpolate modifies newParams, only query params are left\n $location.search(newParams);\n } else {\n throw $routeMinErr('norout', 'Tried updating route with no current route');\n }\n }\n };\n $rootScope.$on('$locationChangeStart', prepareRoute);\n $rootScope.$on('$locationChangeSuccess', commitRoute);\n return $route;\n\n /////////////////////////////////////////////////////\n\n /**\n * @param on {string} current url\n * @param route {Object} route regexp to match the url against\n * @return {?Object}\n *\n * @description\n * Check if the route matches the current url.\n *\n * Inspired by match in\n * visionmedia/express/lib/router/router.js.\n */\n function switchRouteMatcher(on, route) {\n var keys = route.keys,\n params = {};\n if (!route.regexp) return null;\n var m = route.regexp.exec(on);\n if (!m) return null;\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = keys[i - 1];\n var val = m[i];\n if (key && val) {\n params[key.name] = val;\n }\n }\n return params;\n }\n function prepareRoute($locationEvent) {\n var lastRoute = $route.current;\n preparedRoute = parseRoute();\n preparedRouteIsUpdateOnly = isNavigationUpdateOnly(preparedRoute, lastRoute);\n if (!preparedRouteIsUpdateOnly && (lastRoute || preparedRoute)) {\n if ($rootScope.$broadcast('$routeChangeStart', preparedRoute, lastRoute).defaultPrevented) {\n if ($locationEvent) {\n $locationEvent.preventDefault();\n }\n }\n }\n }\n function commitRoute() {\n var lastRoute = $route.current;\n var nextRoute = preparedRoute;\n if (preparedRouteIsUpdateOnly) {\n lastRoute.params = nextRoute.params;\n angular.copy(lastRoute.params, $routeParams);\n $rootScope.$broadcast('$routeUpdate', lastRoute);\n } else if (nextRoute || lastRoute) {\n forceReload = false;\n $route.current = nextRoute;\n var nextRoutePromise = $q.resolve(nextRoute);\n $browser.$$incOutstandingRequestCount('$route');\n nextRoutePromise.then(getRedirectionData).then(handlePossibleRedirection).then(function (keepProcessingRoute) {\n return keepProcessingRoute && nextRoutePromise.then(resolveLocals).then(function (locals) {\n // after route change\n if (nextRoute === $route.current) {\n if (nextRoute) {\n nextRoute.locals = locals;\n angular.copy(nextRoute.params, $routeParams);\n }\n $rootScope.$broadcast('$routeChangeSuccess', nextRoute, lastRoute);\n }\n });\n }).catch(function (error) {\n if (nextRoute === $route.current) {\n $rootScope.$broadcast('$routeChangeError', nextRoute, lastRoute, error);\n }\n }).finally(function () {\n // Because `commitRoute()` is called from a `$rootScope.$evalAsync` block (see\n // `$locationWatch`), this `$$completeOutstandingRequest()` call will not cause\n // `outstandingRequestCount` to hit zero. This is important in case we are redirecting\n // to a new route which also requires some asynchronous work.\n\n $browser.$$completeOutstandingRequest(noop, '$route');\n });\n }\n }\n function getRedirectionData(route) {\n var data = {\n route: route,\n hasRedirection: false\n };\n if (route) {\n if (route.redirectTo) {\n if (angular.isString(route.redirectTo)) {\n data.path = interpolate(route.redirectTo, route.params);\n data.search = route.params;\n data.hasRedirection = true;\n } else {\n var oldPath = $location.path();\n var oldSearch = $location.search();\n var newUrl = route.redirectTo(route.pathParams, oldPath, oldSearch);\n if (angular.isDefined(newUrl)) {\n data.url = newUrl;\n data.hasRedirection = true;\n }\n }\n } else if (route.resolveRedirectTo) {\n return $q.resolve($injector.invoke(route.resolveRedirectTo)).then(function (newUrl) {\n if (angular.isDefined(newUrl)) {\n data.url = newUrl;\n data.hasRedirection = true;\n }\n return data;\n });\n }\n }\n return data;\n }\n function handlePossibleRedirection(data) {\n var keepProcessingRoute = true;\n if (data.route !== $route.current) {\n keepProcessingRoute = false;\n } else if (data.hasRedirection) {\n var oldUrl = $location.url();\n var newUrl = data.url;\n if (newUrl) {\n $location.url(newUrl).replace();\n } else {\n newUrl = $location.path(data.path).search(data.search).replace().url();\n }\n if (newUrl !== oldUrl) {\n // Exit out and don't process current next value,\n // wait for next location change from redirect\n keepProcessingRoute = false;\n }\n }\n return keepProcessingRoute;\n }\n function resolveLocals(route) {\n if (route) {\n var locals = angular.extend({}, route.resolve);\n angular.forEach(locals, function (value, key) {\n locals[key] = angular.isString(value) ? $injector.get(value) : $injector.invoke(value, null, null, key);\n });\n var template = getTemplateFor(route);\n if (angular.isDefined(template)) {\n locals['$template'] = template;\n }\n return $q.all(locals);\n }\n }\n function getTemplateFor(route) {\n var template, templateUrl;\n if (angular.isDefined(template = route.template)) {\n if (angular.isFunction(template)) {\n template = template(route.params);\n }\n } else if (angular.isDefined(templateUrl = route.templateUrl)) {\n if (angular.isFunction(templateUrl)) {\n templateUrl = templateUrl(route.params);\n }\n if (angular.isDefined(templateUrl)) {\n route.loadedTemplateUrl = $sce.valueOf(templateUrl);\n template = $templateRequest(templateUrl);\n }\n }\n return template;\n }\n\n /**\n * @returns {Object} the current active route, by matching it against the URL\n */\n function parseRoute() {\n // Match a route\n var params, match;\n angular.forEach(routes, function (route, path) {\n if (!match && (params = switchRouteMatcher($location.path(), route))) {\n match = inherit(route, {\n params: angular.extend({}, $location.search(), params),\n pathParams: params\n });\n match.$$route = route;\n }\n });\n // No route matched; fallback to \"otherwise\" route\n return match || routes[null] && inherit(routes[null], {\n params: {},\n pathParams: {}\n });\n }\n\n /**\n * @param {Object} newRoute - The new route configuration (as returned by `parseRoute()`).\n * @param {Object} oldRoute - The previous route configuration (as returned by `parseRoute()`).\n * @returns {boolean} Whether this is an \"update-only\" navigation, i.e. the URL maps to the same\n * route and it can be reused (based on the config and the type of change).\n */\n function isNavigationUpdateOnly(newRoute, oldRoute) {\n // IF this is not a forced reload\n return !forceReload\n // AND both `newRoute`/`oldRoute` are defined\n && newRoute && oldRoute\n // AND they map to the same Route Definition Object\n && newRoute.$$route === oldRoute.$$route\n // AND `reloadOnUrl` is disabled\n && (!newRoute.reloadOnUrl\n // OR `reloadOnSearch` is disabled\n || !newRoute.reloadOnSearch\n // AND both routes have the same path params\n && angular.equals(newRoute.pathParams, oldRoute.pathParams));\n }\n\n /**\n * @returns {string} interpolation of the redirect path with the parameters\n */\n function interpolate(string, params) {\n var result = [];\n angular.forEach((string || '').split(':'), function (segment, i) {\n if (i === 0) {\n result.push(segment);\n } else {\n var segmentMatch = segment.match(/(\\w+)(?:[?*])?(.*)/);\n var key = segmentMatch[1];\n result.push(params[key]);\n result.push(segmentMatch[2] || '');\n delete params[key];\n }\n });\n return result.join('');\n }\n }];\n }\n instantiateRoute.$inject = ['$injector'];\n function instantiateRoute($injector) {\n if (isEagerInstantiationEnabled) {\n // Instantiate `$route`\n $injector.get('$route');\n }\n }\n ngRouteModule.provider('$routeParams', $RouteParamsProvider);\n\n /**\n * @ngdoc service\n * @name $routeParams\n * @requires $route\n * @this\n *\n * @description\n * The `$routeParams` service allows you to retrieve the current set of route parameters.\n *\n * Requires the {@link ngRoute `ngRoute`} module to be installed.\n *\n * The route parameters are a combination of {@link ng.$location `$location`}'s\n * {@link ng.$location#search `search()`} and {@link ng.$location#path `path()`}.\n * The `path` parameters are extracted when the {@link ngRoute.$route `$route`} path is matched.\n *\n * In case of parameter name collision, `path` params take precedence over `search` params.\n *\n * The service guarantees that the identity of the `$routeParams` object will remain unchanged\n * (but its properties will likely change) even when a route change occurs.\n *\n * Note that the `$routeParams` are only updated *after* a route change completes successfully.\n * This means that you cannot rely on `$routeParams` being correct in route resolve functions.\n * Instead you can use `$route.current.params` to access the new route's parameters.\n *\n * @example\n * ```js\n * // Given:\n * // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby\n * // Route: /Chapter/:chapterId/Section/:sectionId\n * //\n * // Then\n * $routeParams ==> {chapterId:'1', sectionId:'2', search:'moby'}\n * ```\n */\n function $RouteParamsProvider() {\n this.$get = function () {\n return {};\n };\n }\n ngRouteModule.directive('ngView', ngViewFactory);\n ngRouteModule.directive('ngView', ngViewFillContentFactory);\n\n /**\n * @ngdoc directive\n * @name ngView\n * @restrict ECA\n *\n * @description\n * `ngView` is a directive that complements the {@link ngRoute.$route $route} service by\n * including the rendered template of the current route into the main layout (`index.html`) file.\n * Every time the current route changes, the included view changes with it according to the\n * configuration of the `$route` service.\n *\n * Requires the {@link ngRoute `ngRoute`} module to be installed.\n *\n * @animations\n * | Animation | Occurs |\n * |----------------------------------|-------------------------------------|\n * | {@link ng.$animate#enter enter} | when the new element is inserted to the DOM |\n * | {@link ng.$animate#leave leave} | when the old element is removed from to the DOM |\n *\n * The enter and leave animation occur concurrently.\n *\n * @scope\n * @priority 400\n * @param {string=} onload Expression to evaluate whenever the view updates.\n *\n * @param {string=} autoscroll Whether `ngView` should call {@link ng.$anchorScroll\n * $anchorScroll} to scroll the viewport after the view is updated.\n *\n * - If the attribute is not set, disable scrolling.\n * - If the attribute is set without value, enable scrolling.\n * - Otherwise enable scrolling only if the `autoscroll` attribute value evaluated\n * as an expression yields a truthy value.\n * @example\n <example name=\"ngView-directive\" module=\"ngViewExample\"\n deps=\"angular-route.js;angular-animate.js\"\n animations=\"true\" fixBase=\"true\">\n <file name=\"index.html\">\n <div ng-controller=\"MainCtrl as main\">\n Choose:\n <a href=\"Book/Moby\">Moby</a> |\n <a href=\"Book/Moby/ch/1\">Moby: Ch1</a> |\n <a href=\"Book/Gatsby\">Gatsby</a> |\n <a href=\"Book/Gatsby/ch/4?key=value\">Gatsby: Ch4</a> |\n <a href=\"Book/Scarlet\">Scarlet Letter</a><br/>\n \n <div class=\"view-animate-container\">\n <div ng-view class=\"view-animate\"></div>\n </div>\n <hr />\n \n <pre>$location.path() = {{main.$location.path()}}</pre>\n <pre>$route.current.templateUrl = {{main.$route.current.templateUrl}}</pre>\n <pre>$route.current.params = {{main.$route.current.params}}</pre>\n <pre>$routeParams = {{main.$routeParams}}</pre>\n </div>\n </file>\n \n <file name=\"book.html\">\n <div>\n controller: {{book.name}}<br />\n Book Id: {{book.params.bookId}}<br />\n </div>\n </file>\n \n <file name=\"chapter.html\">\n <div>\n controller: {{chapter.name}}<br />\n Book Id: {{chapter.params.bookId}}<br />\n Chapter Id: {{chapter.params.chapterId}}\n </div>\n </file>\n \n <file name=\"animations.css\">\n .view-animate-container {\n position:relative;\n height:100px!important;\n background:white;\n border:1px solid black;\n height:40px;\n overflow:hidden;\n }\n \n .view-animate {\n padding:10px;\n }\n \n .view-animate.ng-enter, .view-animate.ng-leave {\n transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;\n \n display:block;\n width:100%;\n border-left:1px solid black;\n \n position:absolute;\n top:0;\n left:0;\n right:0;\n bottom:0;\n padding:10px;\n }\n \n .view-animate.ng-enter {\n left:100%;\n }\n .view-animate.ng-enter.ng-enter-active {\n left:0;\n }\n .view-animate.ng-leave.ng-leave-active {\n left:-100%;\n }\n </file>\n \n <file name=\"script.js\">\n angular.module('ngViewExample', ['ngRoute', 'ngAnimate'])\n .config(['$routeProvider', '$locationProvider',\n function($routeProvider, $locationProvider) {\n $routeProvider\n .when('/Book/:bookId', {\n templateUrl: 'book.html',\n controller: 'BookCtrl',\n controllerAs: 'book'\n })\n .when('/Book/:bookId/ch/:chapterId', {\n templateUrl: 'chapter.html',\n controller: 'ChapterCtrl',\n controllerAs: 'chapter'\n });\n \n $locationProvider.html5Mode(true);\n }])\n .controller('MainCtrl', ['$route', '$routeParams', '$location',\n function MainCtrl($route, $routeParams, $location) {\n this.$route = $route;\n this.$location = $location;\n this.$routeParams = $routeParams;\n }])\n .controller('BookCtrl', ['$routeParams', function BookCtrl($routeParams) {\n this.name = 'BookCtrl';\n this.params = $routeParams;\n }])\n .controller('ChapterCtrl', ['$routeParams', function ChapterCtrl($routeParams) {\n this.name = 'ChapterCtrl';\n this.params = $routeParams;\n }]);\n \n </file>\n \n <file name=\"protractor.js\" type=\"protractor\">\n it('should load and compile correct template', function() {\n element(by.linkText('Moby: Ch1')).click();\n var content = element(by.css('[ng-view]')).getText();\n expect(content).toMatch(/controller: ChapterCtrl/);\n expect(content).toMatch(/Book Id: Moby/);\n expect(content).toMatch(/Chapter Id: 1/);\n \n element(by.partialLinkText('Scarlet')).click();\n \n content = element(by.css('[ng-view]')).getText();\n expect(content).toMatch(/controller: BookCtrl/);\n expect(content).toMatch(/Book Id: Scarlet/);\n });\n </file>\n </example>\n */\n\n /**\n * @ngdoc event\n * @name ngView#$viewContentLoaded\n * @eventType emit on the current ngView scope\n * @description\n * Emitted every time the ngView content is reloaded.\n */\n ngViewFactory.$inject = ['$route', '$anchorScroll', '$animate'];\n function ngViewFactory($route, $anchorScroll, $animate) {\n return {\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n link: function (scope, $element, attr, ctrl, $transclude) {\n var currentScope,\n currentElement,\n previousLeaveAnimation,\n autoScrollExp = attr.autoscroll,\n onloadExp = attr.onload || '';\n scope.$on('$routeChangeSuccess', update);\n update();\n function cleanupLastView() {\n if (previousLeaveAnimation) {\n $animate.cancel(previousLeaveAnimation);\n previousLeaveAnimation = null;\n }\n if (currentScope) {\n currentScope.$destroy();\n currentScope = null;\n }\n if (currentElement) {\n previousLeaveAnimation = $animate.leave(currentElement);\n previousLeaveAnimation.done(function (response) {\n if (response !== false) previousLeaveAnimation = null;\n });\n currentElement = null;\n }\n }\n function update() {\n var locals = $route.current && $route.current.locals,\n template = locals && locals.$template;\n if (angular.isDefined(template)) {\n var newScope = scope.$new();\n var current = $route.current;\n\n // Note: This will also link all children of ng-view that were contained in the original\n // html. If that content contains controllers, ... they could pollute/change the scope.\n // However, using ng-view on an element with additional content does not make sense...\n // Note: We can't remove them in the cloneAttchFn of $transclude as that\n // function is called before linking the content, which would apply child\n // directives to non existing elements.\n var clone = $transclude(newScope, function (clone) {\n $animate.enter(clone, null, currentElement || $element).done(function onNgViewEnter(response) {\n if (response !== false && angular.isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))) {\n $anchorScroll();\n }\n });\n cleanupLastView();\n });\n currentElement = clone;\n currentScope = current.scope = newScope;\n currentScope.$emit('$viewContentLoaded');\n currentScope.$eval(onloadExp);\n } else {\n cleanupLastView();\n }\n }\n }\n };\n }\n\n // This directive is called during the $transclude call of the first `ngView` directive.\n // It will replace and compile the content of the element with the loaded template.\n // We need this directive so that the element content is already filled when\n // the link function of another directive on the same element as ngView\n // is called.\n ngViewFillContentFactory.$inject = ['$compile', '$controller', '$route'];\n function ngViewFillContentFactory($compile, $controller, $route) {\n return {\n restrict: 'ECA',\n priority: -400,\n link: function (scope, $element) {\n var current = $route.current,\n locals = current.locals;\n $element.html(locals.$template);\n var link = $compile($element.contents());\n if (current.controller) {\n locals.$scope = scope;\n var controller = $controller(current.controller, locals);\n if (current.controllerAs) {\n scope[current.controllerAs] = controller;\n }\n $element.data('$ngControllerController', controller);\n $element.children().data('$ngControllerController', controller);\n }\n scope[current.resolveAs || '$resolve'] = locals;\n link(scope);\n }\n };\n }\n})(window, window.angular);","(function () {\n app.controller('PYTCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n\n $scope.init = function () {}\n\n $scope.changePrice = function (index) {\n let price = Number($scope.pick_your_team_descriptions[index].price);\n if ($scope.pick_your_team_descriptions[index].price == '') return;\n if (isNaN(price) || price < 0) price = 0;\n price = price.toFixed(2);\n $scope.pick_your_team_descriptions[index].price = price;\n }\n\n $scope.changePercentage = function () {\n let percentage = Number($scope.percentage);\n if ($scope.percentage == '') return;\n if (isNaN(percentage) || percentage < 0 || percentage > 100) percentage = 0;\n percentage = percentage.toFixed(2);\n $scope.percentage = percentage;\n }\n \n $scope.submit = function () {\n if (!$scope.source_id) return;\n let params = {\n source_id: $scope.source_id,\n pick_your_team_descriptions: $scope.pick_your_team_descriptions,\n pyt_id: $scope.pick_your_team_id,\n percentage: $scope.percentage,\n notes: $scope.notes\n }\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.submit_url,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: params,\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n toastr.success('Save PYT Break successful');\n location.href = $scope.pick_your_team_id ? $scope.pick_your_teams_url : $scope.box_url;\n } else {\n toastr.error(rs.message);\n }\n });\n },\n });\n }\n }\n ]);\n\n}).call(this);","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nrequire(\"@rails/ujs\").start();\nrequire(\"turbolinks\").start();\nrequire(\"@rails/activestorage\").start();\nrequire(\"channels\");\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\n// Jquery\nimport jquery from 'jquery';\nwindow.$ = window.jquery = jquery;\nwindow.jQuery = window.jquery = jquery;\n\n// Common Lib\nimport 'bootstrap';\nimport Chart from 'chart.js/auto'\nimport moment from 'moment';\nimport 'chartjs-adapter-moment';\nimport 'chartjs-adapter-moment';\n\nglobal.toastr = require('toastr');\n// global.bootbox = require('bootbox');\nglobal.Chart = Chart;\nglobal.moment = moment;\n\nrequire('inputmask');\n// require('@ckeditor/ckeditor5-alignment');\n// require('select2');\n// require('bootstrap-timepicker');\n\n// require('social-share-button');\n\n// Theme + Libraries\nrequire('admin-lte');\n// require.context('admin-lte/dist/img', true);\n// require(\"packs/vendor/jquery.editable.min.js\");\n// require(\"packs/vendor/flipclock.min.js\");\nrequire(\"packs/vendor/jquery.floatingscroll.min.js\");\nrequire(\"packs/vendor/owl.carousel.min.js\");\n// require(\"packs/vendor/bootstrap-datepicker.js\");\n// require(\"packs/vendor/jquery.dataTables.min.js\");\n// require(\"packs/vendor/ckeditor.js\");\n\n// AngularJs\nglobal.angular = require('angular');\nrequire('angular-route');\nrequire(\"packs/base/init\");\nrequire(\"packs/base/angular_app\");\nrequire(\"packs/base/angular_utils\");\n\n// AngularJs Controllers\nglobal.app = angular.module('app');\nrequire(\"packs/pages/dashboard_ctrl\");\nrequire(\"packs/pages/listing_ctrl\");\nrequire(\"packs/pages/raffle_ctrl\");\nrequire(\"packs/pages/follower_ctrl\");\nrequire(\"packs/pages/wax_tracker_ctrl\");\nrequire(\"packs/pages/box_ctrl\");\nrequire(\"packs/pages/search_page_ctrl\");\nrequire(\"packs/pages/bread_crumbs_filter\");\nrequire(\"packs/pages/menu_waxstat_ctrl\");\nrequire(\"packs/pages/pyt_ctrl\");\nrequire(\"packs/pages/checklist_ctrl\");\nrequire(\"packs/pages/price_history_ctrl\");\nrequire(\"packs/pages/sitemap_ctrl\");\nrequire(\"packs/pages/carts_ctrl\");\nrequire(\"packs/pages/store_ctrl\");\nrequire(\"packs/pages/user_ctrl\");\n","(function () {\n app.controller('ChecklistCtrl', [\n \"$scope\", '$timeout', '$sce', \n function ($scope, $timeout, $sce) {\n $scope.init = function () {};\n\n $scope.trust = function (html) {\n return $sce.trustAsHtml(html);\n }\n\n $scope.saveReviewChecklist = function (status) {\n let params = {\n status: status,\n checklist_html: $scope.checklist_html,\n same_box_ids: $('#same_box_ids').val()\n }\n if (status == \"all_same_box\" && !$('#same_box_ids').val() ) {\n toastr.error(\"You don't have the same box right now\");\n return;\n }\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.save_review_checklist_url,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: params,\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n toastr.success(rs.message);\n location.href = $scope.checklist_box_url;\n } else {\n toastr.error(rs.message);\n }\n });\n },\n });\n }\n\n $scope.getChecklistHTML = function () {\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.get_checklist_html_checklist_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: {},\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.checklist_html = `${rs.data}`;\n toastr.success('HTML scraped successfully');\n } else {\n toastr.error(rs.message);\n }\n });\n },\n });\n }\n }\n ]);\n\n}).call(this);","/*!\n * @kurkle/color v0.3.2\n * https://github.com/kurkle/color#readme\n * (c) 2023 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15\n};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => (b & 0xF0) >> 4 === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? map$1[str[7]] << 4 | map$1[str[8]] : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f) : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = function (n) {\n let k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = function (n) {\n let k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return (g - b) / d + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (Array.isArray(a) ? f(a[0], a[1], a[2]) : f(a, b, c)).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255 ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})` : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (v.a < 255 ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})` : `rgb(${v.r}, ${v.g}, ${v.b})`);\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {\n r: 0,\n g: 0,\n b: 0,\n a: 255\n };\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {\n r: input[0],\n g: input[1],\n b: input[2],\n a: 255\n };\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n });\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\nfunction index_esm(input) {\n return new Color(input);\n}\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };","/*!\n * Chart.js v4.1.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */\nfunction noop() {\n /* noop */}\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */\nconst uid = (() => {\n let id = 0;\n return () => id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */\nfunction isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) => typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension) => typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */\nfunction clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for (let i = 0; i < ilen; ++i) {\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': v => v,\n // default resolvers\n x: o => o.x,\n y: o => o.y\n};\n/**\n * @private\n */\nfunction _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = value => typeof value !== 'undefined';\nconst isFunction = value => typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */\nfunction _isBetween(value, start, end) {\n let epsilon = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1e-6;\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\nfunction _lookup(table, value, cmp) {\n cmp = cmp || (index => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */\nconst _lookupByKey = (table, key, value, last) => _lookup(table, value, last ? index => {\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n} : index => table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */\nconst _rlookupByKey = (table, key, value) => _lookup(table, value, index => table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach(key => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach(object => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach(key => {\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/\nconst requestAnimFrame = function () {\n if (typeof window === 'undefined') {\n return function (callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */\nfunction throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */\nfunction debounce(fn, delay) {\n let timeout;\n return function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */\nconst _toLeftRightCenter = align => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */\nfunction _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const iScale = meta.iScale,\n _parsed = meta._parsed;\n const axis = iScale.axis;\n const _iScale$getUserBounds = iScale.getUserBounds(),\n min = _iScale$getUserBounds.min,\n max = _iScale$getUserBounds.max,\n minDefined = _iScale$getUserBounds.minDefined,\n maxDefined = _iScale$getUserBounds.maxDefined;\n if (minDefined) {\n start = _limitValue(Math.min(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, min).lo,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1), start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */\nfunction _scaleRangesChanged(meta) {\n const xScale = meta.xScale,\n yScale = meta.yScale,\n _scaleRanges = meta._scaleRanges;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\nconst atEdge = t => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: t => t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: name => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n }\n }\n }\n });\n}\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([1, 2, 3, 5, 10, 15].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {\n formatters\n};\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: name => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: name => name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: name => name !== 'backdropPadding' && name !== 'callback',\n _indexable: name => name !== 'backdropPadding'\n });\n}\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors, _appliers) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = context => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach(apply => apply(this));\n }\n}\nvar defaults = /* #__PURE__ */new Defaults({\n _scriptable: name => !name.startsWith('on'),\n _indexable: name => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [applyAnimationsDefaults, applyLayoutsDefaults, applyScaleDefaults]);\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction renderText(ctx, text, x, y, font) {\n let opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\nfunction addRoundedRectPath(ctx, rect) {\n const x = rect.x,\n y = rect.y,\n w = rect.w,\n h = rect.h,\n radius = rect.radius;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? prop => valueOrDefault(value[prop], value[props[prop]]) : prop => value[prop] : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */\nfunction toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */\nfunction _addGrace(minmax, grace, beginAtZero) {\n const min = minmax.min,\n max = minmax.max;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\nfunction _createResolver(scopes) {\n let prefixes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];\n let rootScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : scopes;\n let fallback = arguments.length > 3 ? arguments[3] : undefined;\n let getTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : () => scopes[0];\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: scope => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop, () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: ctx => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: scope => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop, () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy) {\n let defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n scriptable: true,\n indexable: true\n };\n const _proxy$_scriptable = proxy._scriptable,\n _scriptable = _proxy$_scriptable === void 0 ? defaults.scriptable : _proxy$_scriptable,\n _proxy$_indexable = proxy._indexable,\n _indexable = _proxy$_indexable === void 0 ? defaults.indexable : _proxy$_indexable,\n _proxy$_allKeys = proxy._allKeys,\n _allKeys = _proxy$_allKeys === void 0 ? defaults.allKeys : _proxy$_allKeys;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n _stack = target._stack;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback, () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const iScale = meta.iScale;\n const _this$_parsing$key = this._parsing.key,\n key = _this$_parsing$key === void 0 ? 'r' : _this$_parsing$key;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = indexAxis => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK) {\n let indexAxis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */\nfunction splineCurveMonotone(points) {\n let indexAxis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter(pt => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `dom` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } dom.Chart\n * @typedef { import('../../types').ChartEvent } ChartEvent\n */ /**\n * @private\n */\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = element => element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */\nfunction getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const offsetX = source.offsetX,\n offsetY = source.offsetY;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */\nfunction getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const canvas = chart.canvas,\n currentDevicePixelRatio = chart.currentDevicePixelRatio;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const _getCanvasPosition = getCanvasPosition(event, canvas),\n x = _getCanvasPosition.x,\n y = _getCanvasPosition.y,\n box = _getCanvasPosition.box;\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let width = chart.width,\n height = chart.height;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let width = containerSize.width,\n height = containerSize.height;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nconst supportsEventListenerOptions = function () {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\nconst getRightToLeftAdapter = function (rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function () {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {},\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment(_ref) {\n let start = _ref.start,\n end = _ref.end,\n count = _ref.count,\n loop = _ref.loop,\n style = _ref.style;\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n const _propertyFn = propertyFn(property),\n between = _propertyFn.between,\n normalize = _propertyFn.normalize;\n const count = points.length;\n let start = segment.start,\n end = segment.end,\n loop = segment.loop;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n const count = points.length;\n const _propertyFn2 = propertyFn(property),\n compare = _propertyFn2.compare,\n between = _propertyFn2.between,\n normalize = _propertyFn2.normalize;\n const _getSegment = getSegment(segment, points, bounds),\n start = _getSegment.start,\n end = _getSegment.end,\n loop = _getSegment.loop,\n style = _getSegment.style;\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const _findStartAndEnd = findStartAndEnd(points, count, loop, spanGaps),\n start = _findStartAndEnd.start,\n end = _findStartAndEnd.end;\n if (spanGaps === true) {\n return splitByStyles(line, [{\n start,\n end,\n loop\n }], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const datasetIndex = line._datasetIndex,\n spanGaps = line.options.spanGaps;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, fontString as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, overrideTextDirection as aA, _textX as aB, restoreTextDirection as aC, drawPointLegend as aD, distanceBetweenPoints as aE, noop as aF, _setMinAndMaxByKey as aG, niceNum as aH, almostWhole as aI, almostEquals as aJ, _decimalPlaces as aK, Ticks as aL, log10 as aM, _longestText as aN, _filterBetween as aO, _lookup as aP, isPatternOrGradient as aQ, getHoverColor as aR, clone as aS, _merger as aT, _mergerIf as aU, _deprecated as aV, _splitKey as aW, toFontString as aX, splineCurve as aY, splineCurveMonotone as aZ, getStyle as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, _elementsEqual as ah, _isClickEvent as ai, _isBetween as aj, _readValueToProps as ak, _updateBezierControlPoints as al, _computeSegments as am, _boundSegments as an, _steppedInterpolation as ao, _bezierInterpolation as ap, _pointInLine as aq, _steppedLineTo as ar, _bezierCurveTo as as, drawPoint as at, addRoundedRectPath as au, toTRBL as av, toTRBLCorners as aw, _boundSegment as ax, _normalizeAngle as ay, getRtlAdapter as az, isArray as b, toLineHeight as b0, PITAU as b1, INFINITY as b2, RAD_PER_DEG as b3, QUARTER_PI as b4, TWO_THIRDS_PI as b5, _angleDiff as b6, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/*!\n * Chart.js v4.1.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as _elementsEqual, ai as _isClickEvent, aj as _isBetween, ak as _readValueToProps, al as _updateBezierControlPoints, am as _computeSegments, an as _boundSegments, ao as _steppedInterpolation, ap as _bezierInterpolation, aq as _pointInLine, ar as _steppedLineTo, as as _bezierCurveTo, at as drawPoint, au as addRoundedRectPath, av as toTRBL, aw as toTRBLCorners, ax as _boundSegment, ay as _normalizeAngle, az as getRtlAdapter, aA as overrideTextDirection, aB as _textX, aC as restoreTextDirection, aD as drawPointLegend, aE as distanceBetweenPoints, aF as noop, aG as _setMinAndMaxByKey, aH as niceNum, aI as almostWhole, aJ as almostEquals, aK as _decimalPlaces, aL as Ticks, aM as log10, aN as _longestText, aO as _filterBetween, aP as _lookup } from './chunks/helpers.segment.js';\nexport { aL as Ticks, d as defaults } from './chunks/helpers.segment.js';\nimport '@kurkle/color';\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update() {\n let date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */new Animator();\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach(prop => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {});\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const _scale$getUserBounds = scale.getUserBounds(),\n min = _scale$getUserBounds.min,\n max = _scale$getUserBounds.max,\n minDefined = _scale$getUserBounds.minDefined,\n maxDefined = _scale$getUserBounds.maxDefined;\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const chart = controller.chart,\n meta = controller._cachedMeta;\n const stacks = chart._stacks || (chart._stacks = {});\n const iScale = meta.iScale,\n vScale = meta.vScale,\n datasetIndex = meta.index;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const index = item[iAxis],\n value = item[vAxis];\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = mode => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const meta = this._cachedMeta,\n data = this._data;\n const iScale = meta.iScale,\n _stacked = meta._stacked;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const iScale = meta.iScale,\n vScale = meta.vScale;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const xScale = meta.xScale,\n yScale = meta.yScale;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const xScale = meta.xScale,\n yScale = meta.yScale;\n const _this$_parsing = this._parsing,\n _this$_parsing$xAxisK = _this$_parsing.xAxisKey,\n xAxisKey = _this$_parsing$xAxisK === void 0 ? 'x' : _this$_parsing$xAxisK,\n _this$_parsing$yAxisK = _this$_parsing.yAxisKey,\n yAxisKey = _this$_parsing$yAxisK === void 0 ? 'y' : _this$_parsing$yAxisK;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const _getUserBounds = getUserBounds(otherScale),\n otherMin = _getUserBounds.min,\n otherMax = _getUserBounds.max;\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType) {\n let mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n let index = arguments.length > 2 ? arguments[2] : undefined;\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const _ref of this._syncList) {\n var _ref2 = _slicedToArray(_ref, 3);\n const method = _ref2[0];\n const arg1 = _ref2[1];\n const arg2 = _ref2[2];\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count) {\n let resetNewElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = arr => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const _args2 = _slicedToArray(args, 3),\n method = _args2[0],\n arg1 = _args2[1],\n arg2 = _args2[2];\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.datasetElementType = null;\nDatasetController.dataElementType = null;\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const _borderProps = borderProps(properties),\n start = _borderProps.start,\n end = _borderProps.end,\n reverse = _borderProps.reverse,\n top = _borderProps.top,\n bottom = _borderProps.bottom;\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, _ref3, ratio) {\n let inflateAmount = _ref3.inflateAmount;\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const iScale = meta.iScale,\n vScale = meta.vScale;\n const _this$_parsing2 = this._parsing,\n _this$_parsing2$xAxis = _this$_parsing2.xAxisKey,\n xAxisKey = _this$_parsing2$xAxis === void 0 ? 'x' : _this$_parsing2$xAxis,\n _this$_parsing2$yAxis = _this$_parsing2.yAxisKey,\n yAxisKey = _this$_parsing2$yAxis === void 0 ? 'y' : _this$_parsing2$yAxis;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale,\n vScale = meta.vScale;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const index = this.index,\n vScale = this._cachedMeta.vScale;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const _this$_getSharedOptio = this._getSharedOptions(start, mode),\n sharedOptions = _this$_getSharedOptio.sharedOptions,\n includeOptions = _this$_getSharedOptio.includeOptions;\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const iScale = this._cachedMeta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const skipNull = meta => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const _this$_cachedMeta = this._cachedMeta,\n vScale = _this$_cachedMeta.vScale,\n _stacked = _this$_cachedMeta._stacked,\n datasetIndex = _this$_cachedMeta.index,\n _this$options = this.options,\n baseValue = _this$options.base,\n minBarLength = _this$options.minBarLength;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n};\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const xScale = meta.xScale,\n yScale = meta.yScale;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const _this$_cachedMeta2 = this._cachedMeta,\n iScale = _this$_cachedMeta2.iScale,\n vScale = _this$_cachedMeta2.vScale;\n const _this$_getSharedOptio2 = this._getSharedOptions(start, mode),\n sharedOptions = _this$_getSharedOptio2.sharedOptions,\n includeOptions = _this$_getSharedOptio2.includeOptions;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = i => +data[i];\n if (isObject(data[start])) {\n const _this$_parsing$key = this._parsing.key,\n key = _this$_parsing$key === void 0 ? 'value' : _this$_parsing$key;\n getter = i => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const _this$_getRotationExt = this._getRotationExtents(),\n circumference = _this$_getRotationExt.circumference,\n rotation = _this$_getRotationExt.rotation;\n const _getRatioAndOffset = getRatioAndOffset(rotation, circumference, cutout),\n ratioX = _getRatioAndOffset.ratioX,\n ratioY = _getRatioAndOffset.ratioY,\n offsetX = _getRatioAndOffset.offsetX,\n offsetY = _getRatioAndOffset.offsetY;\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const _this$_getSharedOptio3 = this._getSharedOptions(start, mode),\n sharedOptions = _this$_getSharedOptio3.sharedOptions,\n includeOptions = _this$_getSharedOptio3.includeOptions;\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n};\nDoughnutController.descriptors = {\n _scriptable: name => name !== 'spacing',\n _indexable: name => name !== 'spacing'\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const _chart$legend$options2 = chart.legend.options.labels,\n pointStyle = _chart$legend$options2.pointStyle,\n color = _chart$legend$options2.color;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n};\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset,\n _meta$data = meta.data,\n points = _meta$data === void 0 ? [] : _meta$data,\n _dataset = meta._dataset;\n const animationsDisabled = this.chart._animationsDisabled;\n let _getStartAndCountOfVi = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled),\n start = _getStartAndCountOfVi.start,\n count = _getStartAndCountOfVi.count;\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const _this$_cachedMeta3 = this._cachedMeta,\n iScale = _this$_cachedMeta3.iScale,\n vScale = _this$_cachedMeta3.vScale,\n _stacked = _this$_cachedMeta3._stacked,\n _dataset = _this$_cachedMeta3._dataset;\n const _this$_getSharedOptio4 = this._getSharedOptions(start, mode),\n sharedOptions = _this$_getSharedOptio4.sharedOptions,\n includeOptions = _this$_getSharedOptio4.includeOptions;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const _this$options2 = this.options,\n spanGaps = _this$options2.spanGaps,\n segment = _this$options2.segment;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = 0; i < pointsCount; ++i) {\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n};\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n }\n },\n indexAxis: 'r',\n startAngle: 0\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const _chart$legend$options3 = chart.legend.options.labels,\n pointStyle = _chart$legend$options3.pointStyle,\n color = _chart$legend$options3.color;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\nclass PieController extends DoughnutController {}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n};\nclass ScatterController extends DatasetController {\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const xScale = meta.xScale,\n yScale = meta.yScale;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const _meta$data2 = meta.data,\n points = _meta$data2 === void 0 ? [] : _meta$data2;\n const animationsDisabled = this.chart._animationsDisabled;\n let _getStartAndCountOfVi2 = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled),\n start = _getStartAndCountOfVi2.start,\n count = _getStartAndCountOfVi2.count;\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n const line = meta.dataset,\n _dataset = meta._dataset;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const showLine = this.options.showLine;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const _this$_cachedMeta4 = this._cachedMeta,\n iScale = _this$_cachedMeta4.iScale,\n vScale = _this$_cachedMeta4.vScale,\n _stacked = _this$_cachedMeta4._stacked,\n _dataset = _this$_cachedMeta4._dataset;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const _this$options3 = this.options,\n spanGaps = _this$options3.spanGaps,\n segment = _this$options3.segment;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\nvar controllers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BarController: BarController,\n BubbleController: BubbleController,\n DoughnutController: DoughnutController,\n LineController: LineController,\n PolarAreaController: PolarAreaController,\n PieController: PieController,\n RadarController: RadarController,\n ScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\nclass DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */\n static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n constructor(options) {\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\nfunction binarySearch(metaset, axis, value, intersect) {\n const controller = metaset.controller,\n data = metaset.data,\n _sorted = metaset._sorted;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const _metasets$i = metasets[i],\n index = _metasets$i.index,\n data = _metasets$i.data;\n const _binarySearch = binarySearch(metasets[i], axis, value, intersect),\n lo = _binarySearch.lo,\n hi = _binarySearch.hi;\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function (pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function (element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const _element$getProps = element.getProps(['startAngle', 'endAngle'], useFinalPosition),\n startAngle = _element$getProps.startAngle,\n endAngle = _element$getProps.endAngle;\n const _getAngleFromPoint = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n }),\n angle = _getAngleFromPoint.angle;\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{\n element,\n datasetIndex,\n index\n }];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n evaluateInteractionItems,\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach(meta => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n var _box = box;\n pos = _box.position;\n var _box$options = _box.options;\n stack = _box$options.stack;\n var _box$options$stackWei = _box$options.stackWeight;\n stackWeight = _box$options$stackWei === void 0 ? 1 : _box$options$stackWei;\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const stack = wrap.stack,\n pos = wrap.pos,\n stackWeight = wrap.stackWeight;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const vBoxMaxWidth = params.vBoxMaxWidth,\n hBoxMaxHeight = params.hBoxMaxHeight;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const fullSize = layout.box.fullSize;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const pos = layout.pos,\n box = layout.box;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach(pos => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions(['left', 'right']) : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const _updateDims = updateDims(chartArea, params, layout, stacks),\n same = _updateDims.same,\n other = _updateDims.other;\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let x = chartArea.x,\n y = chartArea.y;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height1 = chartArea.h * weight;\n const width1 = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width1, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width1, height1);\n }\n stack.start = x;\n stack.placed += height1;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function () {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) => wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, layout => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {}\n}\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const _getRelativePosition = getRelativePosition(event, chart),\n x = _getRelativePosition.x,\n y = _getRelativePosition.y;\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled(event => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach(prop => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach(key => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\nclass Element {\n constructor() {\n this.active = false;\n }\n tooltipPosition(useFinalPosition) {\n const _this$getProps = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps.x,\n y = _this$getProps.y;\n return {\n x,\n y\n };\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\nconst reverseAlign = align => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, cache => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const top = scale.top,\n left = scale.left,\n bottom = scale.bottom,\n right = scale.right,\n chart = scale.chart;\n const chartArea = chart.chartArea,\n scales = chart.scales;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID1 = Object.keys(position)[0];\n const value1 = position[positionAxisID1];\n titleX = scales[positionAxisID1].getPixelForValue(value1) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let _userMin = this._userMin,\n _userMax = this._userMax,\n _suggestedMin = this._suggestedMin,\n _suggestedMax = this._suggestedMax;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let _this$getUserBounds = this.getUserBounds(),\n min = _this$getUserBounds.min,\n max = _this$getUserBounds.max,\n minDefined = _this$getUserBounds.minDefined,\n maxDefined = _this$getUserBounds.maxDefined;\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems() {\n let chartArea = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.chart.chartArea;\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const _this$options4 = this.options,\n beginAtZero = _this$options4.beginAtZero,\n grace = _this$options4.grace,\n tickOpts = _this$options4.ticks;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const chart = this.chart,\n _this$options5 = this.options,\n tickOpts = _this$options5.ticks,\n titleOpts = _this$options5.title,\n gridOpts = _this$options5.grid;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const _this$_getLabelSizes = this._getLabelSizes(),\n first = _this$_getLabelSizes.first,\n last = _this$_getLabelSizes.last,\n widest = _this$_getLabelSizes.widest,\n highest = _this$_getLabelSizes.highest;\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const _this$options6 = this.options,\n _this$options6$ticks = _this$options6.ticks,\n align = _this$options6$ticks.align,\n padding = _this$options6$ticks.padding,\n position = _this$options6.position;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const _this$options7 = this.options,\n axis = _this$options7.axis,\n position = _this$options7.position;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const ctx = this.ctx,\n caches = this._longestTextCache;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = idx => ({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const min = this.min,\n max = this.max;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const grid = options.grid,\n position = options.position,\n border = options.border;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function (pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID1 = Object.keys(position)[0];\n const value1 = position[positionAxisID1];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID1].getPixelForValue(value1));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const position = options.position,\n optionTicks = options.ticks;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const align = optionTicks.align,\n crossAlign = optionTicks.crossAlign,\n padding = optionTicks.padding,\n mirror = optionTicks.mirror;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret1 = this._getYAxisLabelAlignment(tl);\n textAlign = ret1.textAlign;\n x = ret1.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID1 = Object.keys(position)[0];\n const value1 = position[positionAxisID1];\n x = this.chart.scales[positionAxisID1].getPixelForValue(value1);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const _this$options8 = this.options,\n position = _this$options8.position,\n ticks = _this$options8.ticks;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const _this$options9 = this.options,\n position = _this$options9.position,\n _this$options9$ticks = _this$options9.ticks,\n crossAlign = _this$options9$ticks.crossAlign,\n mirror = _this$options9$ticks.mirror,\n padding = _this$options9$ticks.padding;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const ctx = this.ctx,\n backgroundColor = this.options.backgroundColor,\n left = this.left,\n top = this.top,\n width = this.width,\n height = this.height;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const chart = this.chart,\n ctx = this.ctx,\n _this$options10 = this.options,\n border = _this$options10.border,\n grid = _this$options10.grid;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items) {\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const ctx = this.ctx,\n _this$options11 = this.options,\n position = _this$options11.position,\n title = _this$options11.title,\n reverse = _this$options11.reverse;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const _titleArgs = titleArgs(this, offset, position, align),\n titleX = _titleArgs.titleX,\n titleY = _titleArgs.titleY,\n maxWidth = _titleArgs.maxWidth,\n rotation = _titleArgs.rotation;\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: chartArea => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: chartArea => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: bz,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: chartArea => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [parentScope ? defaults.get(parentScope) : {}, defaults.get(scope), item.defaults]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n this._each('register', args);\n }\n remove() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n this._each('unregister', args);\n }\n addControllers() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n this._each('register', args, this.controllers);\n }\n addElements() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n this._each('register', args, this.elements);\n }\n addPlugins() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n this._each('register', args, this.plugins);\n }\n addScales() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n this._each('unregister', args, this.controllers);\n }\n removeElements() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n this._each('unregister', args, this.elements);\n }\n removePlugins() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n this._each('unregister', args, this.plugins);\n }\n removeScales() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */new Registry();\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i1 = 0; i1 < local.length; i1++) {\n const plugin = local[i1];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, _ref4, options, all) {\n let plugins = _ref4.plugins,\n localIds = _ref4.localIds;\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, _ref5, opts, context) {\n let plugin = _ref5.plugin,\n local = _ref5.local;\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n id = scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.length > 1 && determineAxis(id[0].toLowerCase(), scaleOptions);\n if (id) {\n return id;\n }\n throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [{\n axis\n }, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{\n axis\n }, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, () => [[`datasets.${datasetType}`, '']]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, () => [[`datasets.${datasetType}.transitions.${transition}`, `transitions.${transition}`], [`datasets.${datasetType}`, '']]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, () => [[`datasets.${datasetType}.elements.${elementType}`, `datasets.${datasetType}`, `elements.${elementType}`, '']]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, () => [[`plugins.${id}`, ...(plugin.additionalOptionScopes || [])]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const options = this.options,\n type = this.type;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const options = this.options,\n type = this.type;\n return [options, overrides[type] || {}, defaults.datasets[type] || {}, {\n type\n }, defaults, descriptors];\n }\n resolveNamedOptions(scopes, names, context) {\n let prefixes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [''];\n const result = {\n $shared: true\n };\n const _getResolver = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver.resolver,\n subPrefixes = _getResolver.subPrefixes;\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context) {\n let prefixes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [''];\n let descriptorDefaults = arguments.length > 3 ? arguments[3] : undefined;\n const _getResolver2 = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver2.resolver;\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value) && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const _descriptors2 = _descriptors(proxy),\n isScriptable = _descriptors2.isScriptable,\n isIndexable = _descriptors2.isIndexable;\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n return false;\n}\nvar version = \"4.1.1\";\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function (a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = key => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter(c => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nfunction getDatasetArea(meta) {\n const xScale = meta.xScale,\n yScale = meta.yScale;\n if (xScale && yScale) {\n return {\n left: xScale.left,\n right: xScale.right,\n top: yScale.top,\n bottom: yScale.bottom\n };\n }\n}\nclass Chart {\n static register() {\n registry.add(...arguments);\n invalidatePlugins();\n }\n static unregister() {\n registry.remove(...arguments);\n invalidatePlugins();\n }\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const _this$options12 = this.options,\n aspectRatio = _this$options12.aspectRatio,\n maintainAspectRatio = _this$options12.maintainAspectRatio,\n width = this.width,\n height = this.height,\n _aspectRatio = this._aspectRatio;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map(id => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n each(items, item => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, scale => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const metasets = this._metasets,\n datasets = this.data.datasets;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const _defaults$datasets$ty = defaults.datasets[type],\n datasetElementType = _defaults$datasets$ty.datasetElementType,\n dataElementType = _defaults$datasets$ty.dataElementType;\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const _this$getDatasetMeta = this.getDatasetMeta(i),\n controller = _this$getDatasetMeta.controller;\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, controller => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const _active = this._active,\n _lastEvent = this._lastEvent;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, scale => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const _hiddenIndices = this._hiddenIndices;\n const changes = this._getUniformDataChanges() || [];\n for (const _ref6 of changes) {\n const method = _ref6.method;\n const start = _ref6.start;\n const count = _ref6.count;\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = idx => new Set(_dataChanges.filter(c => c[0] === idx).map((c, i) => i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map(c => c.split(',')).map(a => ({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, box => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i1 = 0, ilen1 = this.data.datasets.length; i1 < ilen1; ++i1) {\n this._updateDataset(i1, isFunction(mode) ? mode({\n datasetIndex: i1\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const _this$_resizeBeforeDr = this._resizeBeforeDraw,\n width = _this$_resizeBeforeDr.width,\n height = _this$_resizeBeforeDr.height;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = getDatasetArea(meta) || this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update(ctx => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const canvas = this.canvas,\n ctx = this.ctx;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image() {\n return this.canvas.toDataURL(...arguments);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, type => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(_ref7 => {\n let datasetIndex = _ref7.datasetIndex,\n index = _ref7.index;\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter(p => p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = plugin => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const _this$_active = this._active,\n lastActive = _this$_active === void 0 ? [] : _this$_active,\n options = this.options;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nChart.defaults = defaults;\nChart.instances = instances;\nChart.overrides = overrides;\nChart.registry = registry;\nChart.version = version;\nChart.getChart = getChart;\nfunction invalidatePlugins() {\n return each(Chart.instances, chart => chart._plugins.invalidate());\n}\nfunction clipArc(ctx, element, endAngle) {\n const startAngle = element.startAngle,\n pixelMargin = element.pixelMargin,\n x = element.x,\n y = element.y,\n outerRadius = element.outerRadius,\n innerRadius = element.innerRadius;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n/**\n * Parse border radius from the provided options\n */\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = val => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, ðœƒ) to (x, y)\n */\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */\nfunction pathArc(ctx, element, offset, spacing, end, circular) {\n const x = element.x,\n y = element.y,\n start = element.startAngle,\n pixelMargin = element.pixelMargin,\n innerR = element.innerRadius;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const _parseBorderRadius$ = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle),\n outerStart = _parseBorderRadius$.outerStart,\n outerEnd = _parseBorderRadius$.outerEnd,\n innerStart = _parseBorderRadius$.innerStart,\n innerEnd = _parseBorderRadius$.innerEnd;\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter1 = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter1.x, pCenter1.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter2 = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter2.x, pCenter2.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter3 = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter3.x, pCenter3.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const fullCircles = element.fullCircles,\n startAngle = element.startAngle,\n circumference = element.circumference;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const fullCircles = element.fullCircles,\n startAngle = element.startAngle,\n circumference = element.circumference,\n options = element.options;\n const borderWidth = options.borderWidth,\n borderJoinStyle = options.borderJoinStyle;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const _getAngleFromPoint2 = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n }),\n angle = _getAngleFromPoint2.angle,\n distance = _getAngleFromPoint2.distance;\n const _this$getProps2 = this.getProps(['startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n startAngle = _this$getProps2.startAngle,\n endAngle = _this$getProps2.endAngle,\n innerRadius = _this$getProps2.innerRadius,\n outerRadius = _this$getProps2.outerRadius,\n circumference = _this$getProps2.circumference;\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const _this$getProps3 = this.getProps(['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n x = _this$getProps3.x,\n y = _this$getProps3.y,\n startAngle = _this$getProps3.startAngle,\n endAngle = _this$getProps3.endAngle,\n innerRadius = _this$getProps3.innerRadius,\n outerRadius = _this$getProps3.outerRadius;\n const _this$options13 = this.options,\n offset = _this$options13.offset,\n spacing = _this$options13.spacing;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const options = this.options,\n circumference = this.circumference;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\nfunction setStyle(ctx, options) {\n let style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : options;\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment) {\n let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const count = points.length;\n const _params$start = params.start,\n paramsStart = _params$start === void 0 ? 0 : _params$start,\n _params$end = params.end,\n paramsEnd = _params$end === void 0 ? count - 1 : _params$end;\n const segmentStart = segment.start,\n segmentEnd = segment.end;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const points = line.points,\n options = line.options;\n const _pathVars = pathVars(points, segment, params),\n count = _pathVars.count,\n start = _pathVars.start,\n loop = _pathVars.loop,\n ilen = _pathVars.ilen;\n const lineMethod = getLineMethod(options);\n let _ref8 = params || {},\n _ref8$move = _ref8.move,\n move = _ref8$move === void 0 ? true : _ref8$move,\n reverse = _ref8.reverse;\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const _pathVars2 = pathVars(points, segment, params),\n count = _pathVars2.count,\n start = _pathVars2.start,\n ilen = _pathVars2.ilen;\n const _ref9 = params || {},\n _ref9$move = _ref9.move,\n move = _ref9$move === void 0 ? true : _ref9$move,\n reverse = _ref9.reverse;\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = index => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const segments = line.segments,\n options = line.options;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const _segments$i = segments[i],\n start = _segments$i.start,\n end = _segments$i.end;\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: name => name !== 'borderDash' && name !== 'fill'\n};\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const _el$getProps = el.getProps([axis], useFinalPosition),\n value = _el$getProps[axis];\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const _this$getProps4 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps4.x,\n y = _this$getProps4.y;\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const _this$getProps5 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps5.x,\n y = _this$getProps5.y;\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\n/**\n* @type {any}\n*/\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\n/**\n* @type {any}\n*/\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nfunction getBarBounds(bar, useFinalPosition) {\n const _bar$getProps = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition),\n x = _bar$getProps.x,\n y = _bar$getProps.y,\n base = _bar$getProps.base,\n width = _bar$getProps.width,\n height = _bar$getProps.height;\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const _bar$getProps2 = bar.getProps(['enableBorderRadius']),\n enableBorderRadius = _bar$getProps2.enableBorderRadius;\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount) {\n let refRect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const inflateAmount = this.inflateAmount,\n _this$options14 = this.options,\n borderColor = _this$options14.borderColor,\n backgroundColor = _this$options14.backgroundColor;\n const _boundingRects = boundingRects(this),\n inner = _boundingRects.inner,\n outer = _boundingRects.outer;\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const _this$getProps6 = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition),\n x = _this$getProps6.x,\n y = _this$getProps6.y,\n base = _this$getProps6.base,\n horizontal = _this$getProps6.horizontal;\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nvar elements = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ArcElement: ArcElement,\n LineElement: LineElement,\n PointElement: PointElement,\n BarElement: BarElement\n});\nconst BORDER_COLORS = ['rgb(54, 162, 235)', 'rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(153, 102, 255)', 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */BORDER_COLORS.map(color => color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(() => getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(() => getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex) => {\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for (k in descriptors) {\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout(chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const _chart$config = chart.config,\n elements = _chart$config.options.elements,\n datasets = _chart$config.data.datasets;\n if (!options.forceOverride && (containsColorsDefinitions(datasets) || elements && containsColorsDefinitions(elements))) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const _data$a = data[a],\n pointAx = _data$a.x,\n pointAy = _data$a.y;\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex1]), {}, {\n x: avgX\n }));\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex2]), {}, {\n x: avgX\n }));\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach(dataset => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const iScale = meta.iScale;\n const _iScale$getUserBounds = iScale.getUserBounds(),\n min = _iScale$getUserBounds.min,\n max = _iScale$getUserBounds.max,\n minDefined = _iScale$getUserBounds.minDefined,\n maxDefined = _iScale$getUserBounds.maxDefined;\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const _data = dataset._data,\n indexAxis = dataset.indexAxis;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let _getStartAndCountOfVi3 = getStartAndCountOfVisiblePointsSimplified(meta, data),\n start = _getStartAndCountOfVi3.start,\n count = _getStartAndCountOfVi3.count;\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function () {\n return this._decimated;\n },\n set: function (d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let start = segment.start,\n end = segment.end;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const _ref10 = boundary || {},\n _ref10$x = _ref10.x,\n x = _ref10$x === void 0 ? null : _ref10$x,\n _ref10$y = _ref10.y,\n y = _ref10$y === void 0 ? null : _ref10$y;\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(_ref11 => {\n let start = _ref11.start,\n end = _ref11.end;\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for (; end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\nfunction _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\nfunction _buildStackLine(source) {\n const scale = source.scale,\n index = source.index,\n line = source.line;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const _findPoint = findPoint(line, sourcePoint, 'x'),\n first = _findPoint.first,\n last = _findPoint.last,\n point = _findPoint.point;\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const x = this.x,\n y = this.y,\n radius = this.radius;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const x = this.x,\n y = this.y,\n radius = this.radius;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\nfunction _getTarget(source) {\n const chart = source.chart,\n fill = source.fill,\n line = source.line;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const _source$scale = source.scale,\n scale = _source$scale === void 0 ? {} : _source$scale,\n fill = source.fill;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const scale = source.scale,\n fill = source.fill;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const line = source.line,\n scale = source.scale,\n axis = source.axis;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const _ref12 = fillOption || {},\n _ref12$above = _ref12.above,\n above = _ref12$above === void 0 ? color : _ref12$above,\n _ref12$below = _ref12.below,\n below = _ref12$below === void 0 ? color : _ref12$below;\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis\n });\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const line = cfg.line,\n target = cfg.target,\n above = cfg.above,\n below = cfg.below,\n area = cfg.area,\n scale = cfg.scale;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const segments = target.segments,\n points = target.points;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const start = segment.start,\n end = segment.end;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const line = cfg.line,\n target = cfg.target,\n property = cfg.property,\n color = cfg.color,\n scale = cfg.scale;\n const segments = _segments(line, target, property);\n for (const _ref13 of segments) {\n const src = _ref13.source;\n const tgt = _ref13.target;\n const start = _ref13.start;\n const end = _ref13.end;\n const _src$style = src.style,\n _src$style2 = _src$style === void 0 ? {} : _src$style,\n _src$style2$backgroun = _src$style2.backgroundColor,\n backgroundColor = _src$style2$backgroun === void 0 ? color : _src$style2$backgroun;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const _scale$chart$chartAre = scale.chart.chartArea,\n top = _scale$chart$chartAre.top,\n bottom = _scale$chart$chartAre.bottom;\n const _ref14 = bounds || {},\n property = _ref14.property,\n start = _ref14.start,\n end = _ref14.end;\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\nvar index = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\nconst getBoxSize = (labelOpts, fontSize) => {\n let _labelOpts$boxHeight = labelOpts.boxHeight,\n boxHeight = _labelOpts$boxHeight === void 0 ? fontSize : _labelOpts$boxHeight,\n _labelOpts$boxWidth = labelOpts.boxWidth,\n boxWidth = _labelOpts$boxWidth === void 0 ? fontSize : _labelOpts$boxWidth;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter(item => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const options = this.options,\n ctx = this.ctx;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const _getBoxSize = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize.boxWidth,\n itemHeight = _getBoxSize.itemHeight;\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const ctx = this.ctx,\n maxWidth = this.maxWidth,\n padding = this.options.labels.padding;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const ctx = this.ctx,\n maxHeight = this.maxHeight,\n padding = this.options.labels.padding;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const _calculateItemSize = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight),\n itemWidth = _calculateItemSize.itemWidth,\n itemHeight = _calculateItemSize.itemHeight;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const hitboxes = this.legendHitBoxes,\n _this$options15 = this.options,\n align = _this$options15.align,\n padding = _this$options15.labels.padding,\n rtl = _this$options15.rtl;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox1 of hitboxes) {\n if (hitbox1.col !== col) {\n col = hitbox1.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox1.top = top;\n hitbox1.left += this.left + padding;\n hitbox1.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox1.left), hitbox1.width);\n top += hitbox1.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const opts = this.options,\n columnSizes = this.columnSizes,\n lineWidths = this.lineWidths,\n ctx = this.ctx;\n const align = opts.align,\n labelOpts = opts.labels;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const padding = labelOpts.padding;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const _getBoxSize2 = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize2.boxWidth,\n boxHeight = _getBoxSize2.boxHeight,\n itemHeight = _getBoxSize2.itemHeight;\n const drawLegendBox = function (x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function (x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight);\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b) => a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length + 0.5 : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: ctx => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const _chart$legend$options = chart.legend.options.labels,\n usePointStyle = _chart$legend$options.usePointStyle,\n pointStyle = _chart$legend$options.pointStyle,\n textAlign = _chart$legend$options.textAlign,\n color = _chart$legend$options.color,\n useBorderRadius = _chart$legend$options.useBorderRadius,\n borderRadius = _chart$legend$options.borderRadius;\n return chart._getSortedDatasetMetas().map(meta => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: ctx => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: name => !name.startsWith('on'),\n labels: {\n _scriptable: name => !['generateLabels', 'filter', 'sort'].includes(name)\n }\n }\n};\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const top = this.top,\n left = this.left,\n bottom = this.bottom,\n right = this.right,\n options = this.options;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const _this$_drawArgs = this._drawArgs(offset),\n titleX = _this$_drawArgs.titleX,\n titleY = _this$_drawArgs.titleY,\n maxWidth = _this$_drawArgs.maxWidth,\n rotation = _this$_drawArgs.rotation;\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const element = item.element,\n datasetIndex = item.datasetIndex,\n index = item.index;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const _controller$getLabelA = controller.getLabelAndValue(index),\n label = _controller$getLabelA.label,\n value = _controller$getLabelA.value;\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const body = tooltip.body,\n footer = tooltip.footer,\n title = tooltip.title;\n const boxWidth = options.boxWidth,\n boxHeight = options.boxHeight;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function (line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, bodyItem => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const y = size.y,\n height = size.height;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const x = size.x,\n width = size.width;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const x = size.x,\n width = size.width;\n const chartWidth = chart.width,\n _chart$chartArea = chart.chartArea,\n left = _chart$chartArea.left,\n right = _chart$chartArea.right;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let x = size.x,\n width = size.width;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let y = size.y,\n height = size.height;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const caretSize = options.caretSize,\n caretPadding = options.caretPadding,\n cornerRadius = options.cornerRadius;\n const xAlign = alignment.xAlign,\n yAlign = alignment.yAlign;\n const paddingAndSize = caretSize + caretPadding;\n const _toTRBLCorners = toTRBLCorners(cornerRadius),\n topLeft = _toTRBLCorners.topLeft,\n topRight = _toTRBLCorners.topRight,\n bottomLeft = _toTRBLCorners.bottomLeft,\n bottomRight = _toTRBLCorners.bottomRight;\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\nfunction invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const callbacks = options.callbacks;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const callbacks = options.callbacks;\n const bodyItems = [];\n each(tooltipItems, context => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const callbacks = options.callbacks;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, context => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const xAlign = this.xAlign,\n yAlign = this.yAlign;\n const caretSize = options.caretSize,\n cornerRadius = options.cornerRadius;\n const _toTRBLCorners2 = toTRBLCorners(cornerRadius),\n topLeft = _toTRBLCorners2.topLeft,\n topRight = _toTRBLCorners2.topRight,\n bottomLeft = _toTRBLCorners2.bottomLeft,\n bottomRight = _toTRBLCorners2.bottomRight;\n const ptX = tooltipPoint.x,\n ptY = tooltipPoint.y;\n const width = size.width,\n height = size.height;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const boxHeight = options.boxHeight,\n boxWidth = options.boxWidth,\n boxPadding = options.boxPadding;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColors.borderWidth) ? Math.max(...Object.values(labelColors.borderWidth)) : labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const body = this.body;\n const bodySpacing = options.bodySpacing,\n bodyAlign = options.bodyAlign,\n displayColors = options.displayColors,\n boxHeight = options.boxHeight,\n boxWidth = options.boxWidth,\n boxPadding = options.boxPadding;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function (line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const xAlign = this.xAlign,\n yAlign = this.yAlign;\n const x = pt.x,\n y = pt.y;\n const width = tooltipSize.width,\n height = tooltipSize.height;\n const _toTRBLCorners3 = toTRBLCorners(options.cornerRadius),\n topLeft = _toTRBLCorners3.topLeft,\n topRight = _toTRBLCorners3.topRight,\n bottomLeft = _toTRBLCorners3.bottomLeft,\n bottomRight = _toTRBLCorners3.bottomRight;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(_ref15 => {\n let datasetIndex = _ref15.datasetIndex,\n index = _ref15.index;\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay) {\n let inChartArea = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const caretX = this.caretX,\n caretY = this.caretY,\n options = this.options;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', _objectSpread(_objectSpread({}, args), {}, {\n cancelable: true\n })) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY']\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: name => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\nvar plugins = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Colors: plugin_colors,\n Decimation: plugin_decimation,\n Filler: index,\n Legend: plugin_legend,\n SubTitle: plugin_subtitle,\n Title: plugin_title,\n Tooltip: plugin_tooltip\n});\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const _ref16 of added) {\n const index = _ref16.index;\n const label = _ref16.label;\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const _this$getUserBounds2 = this.getUserBounds(),\n minDefined = _this$getUserBounds2.minDefined,\n maxDefined = _this$getUserBounds2.maxDefined;\n let _this$getMinMax = this.getMinMax(true),\n min = _this$getMinMax.min,\n max = _this$getMinMax.max;\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n};\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const bounds = generationOptions.bounds,\n step = generationOptions.step,\n min = generationOptions.min,\n max = generationOptions.max,\n precision = generationOptions.precision,\n count = generationOptions.count,\n maxTicks = generationOptions.maxTicks,\n maxDigits = generationOptions.maxDigits,\n includeBounds = generationOptions.includeBounds;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const rmin = dataRange.min,\n rmax = dataRange.max;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{\n value: rmin\n }, {\n value: rmax\n }];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({\n value: Math.round((niceMin + j * spacing) * factor) / factor\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, _ref17) {\n let horizontal = _ref17.horizontal,\n minRotation = _ref17.minRotation;\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const beginAtZero = this.options.beginAtZero;\n const _this$getUserBounds3 = this.getUserBounds(),\n minDefined = _this$getUserBounds3.minDefined,\n maxDefined = _this$getUserBounds3.maxDefined;\n let min = this.min,\n max = this.max;\n const setMin = v => min = minDefined ? min : v;\n const setMax = v => max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let maxTicksLimit = tickOpts.maxTicksLimit,\n stepSize = tickOpts.stepSize;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const _this$getMinMax2 = this.getMinMax(true),\n min = _this$getMinMax2.min,\n max = _this$getMinMax2.max;\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\nconst log10Floor = v => Math.floor(log10(v));\nconst changeExponent = (v, m) => Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while (steps(min, max, rangeExp) > 10) {\n rangeExp++;\n }\n while (steps(min, max, rangeExp) < 10) {\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\nfunction generateTicks(generationOptions, _ref18) {\n let min = _ref18.min,\n max = _ref18.max;\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while (value < max) {\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const _this$getMinMax3 = this.getMinMax(true),\n min = _this$getMinMax3.min,\n max = _this$getMinMax3.max;\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const _this$getUserBounds4 = this.getUserBounds(),\n minDefined = _this$getUserBounds4.minDefined,\n maxDefined = _this$getUserBounds4.maxDefined;\n let min = this.min;\n let max = this.max;\n const setMin = v => min = minDefined ? min : v;\n const setMax = v => max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const ctx = scale.ctx,\n pointLabels = scale.options.pointLabels;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const _scale$_pointLabelIte = scale._pointLabelItems[i],\n x = _scale$_pointLabelIte.x,\n y = _scale$_pointLabelIte.y,\n textAlign = _scale$_pointLabelIte.textAlign,\n left = _scale$_pointLabelIte.left,\n top = _scale$_pointLabelIte.top,\n right = _scale$_pointLabelIte.right,\n bottom = _scale$_pointLabelIte.bottom;\n const backdropColor = optsAtIndex.backdropColor;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const ctx = scale.ctx;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const color = gridLineOpts.color,\n lineWidth = gridLineOpts.lineWidth;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const _this$getMinMax4 = this.getMinMax(false),\n min = _this$getMinMax4.min,\n max = _this$getMinMax4.max;\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n }).filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter) {\n let additionalAngle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const _this$_pointLabelItem = this._pointLabelItems[index],\n left = _this$_pointLabelItem.left,\n top = _this$_pointLabelItem.top,\n right = _this$_pointLabelItem.right,\n bottom = _this$_pointLabelItem.bottom;\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const _this$options16 = this.options,\n backgroundColor = _this$options16.backgroundColor,\n circular = _this$options16.grid.circular;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const angleLines = opts.angleLines,\n grid = opts.grid,\n border = opts.border;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const color = optsAtIndex.color,\n lineWidth = optsAtIndex.lineWidth;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\nconst UNITS = /* #__PURE__ */Object.keys(INTERVALS);\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const _scale$_parseOpts = scale._parseOpts,\n parser = _scale$_parseOpts.parser,\n round = _scale$_parseOpts.round,\n isoWeekday = _scale$_parseOpts.isoWeekday;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const _lookup2 = _lookup(timestamps, time),\n lo = _lookup2.lo,\n hi = _lookup2.hi;\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts) {\n let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let _this$getUserBounds5 = this.getUserBounds(),\n min = _this$getUserBounds5.min,\n max = _this$getUserBounds5.max,\n minDefined = _this$getUserBounds5.minDefined,\n maxDefined = _this$getUserBounds5.maxDefined;\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n initOffsets() {\n let timestamps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return callback(formatter, [time, index, ticks], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n};\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n var _lookupByKey2 = _lookupByKey(table, 'pos', val);\n lo = _lookupByKey2.lo;\n hi = _lookupByKey2.hi;\n }\n var _table$lo = table[lo];\n prevSource = _table$lo.pos;\n prevTarget = _table$lo.time;\n var _table$hi = table[hi];\n nextSource = _table$hi.pos;\n nextTarget = _table$hi.time;\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n var _lookupByKey3 = _lookupByKey(table, 'time', val);\n lo = _lookupByKey3.lo;\n hi = _lookupByKey3.hi;\n }\n var _table$lo2 = table[lo];\n prevSource = _table$lo2.time;\n prevTarget = _table$lo2.pos;\n var _table$hi2 = table[hi];\n nextSource = _table$hi2.time;\n nextTarget = _table$hi2.pos;\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const min = this.min,\n max = this.max;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [{\n time: min,\n pos: 0\n }, {\n time: max,\n pos: 1\n }];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\nvar scales = /*#__PURE__*/Object.freeze({\n __proto__: null,\n CategoryScale: CategoryScale,\n LinearScale: LinearScale,\n LogarithmicScale: LogarithmicScale,\n RadialLinearScale: RadialLinearScale,\n TimeScale: TimeScale,\n TimeSeriesScale: TimeSeriesScale\n});\nconst registerables = [controllers, elements, plugins, scales];\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };","(function () {\n app.controller('PriceHistoryCtrl', [\n \"$scope\", '$timeout', '$compile', '$sce',\n function ($scope, $timeout, $compile, $sce) {\n $scope.wax_tracker_url = '';\n $scope.no_image_url = '';\n $scope.suggestions = [];\n $scope.chart_options = {\n \"1_day\": \"1D\",\n \"7_days\": \"7D\",\n \"1_month\": \"1M\",\n \"3_months\": \"3M\",\n \"1_year\": \"1Y\",\n \"ytd\": \"YTD\",\n \"all\": \"All\"\n };\n\n $scope.type_charts = [\n {key:'price_history_by_retailer', name:'Price history'},\n // {key:'3_month_by_retailer', name:'3-month price comparison'},\n ];\n\n $scope.borderColor = [\n '#59B788', '#AA23A5', '#DE6F1F', '#2369AA', '#3366cc',\n '#dc3912', '#ff9900', '#109618', '#990099', '#3b3eac',\n '#0099c6', '#66aa00', '#b82e2e', '#316395', '#22aa99',\n '#f00056', '#ae7000', '#177cb0', '#343a40cc', '#c9dd22'\n ];\n\n\n\n $scope.init = function () {\n };\n \n\n $scope.getChart = function(key) {\n\n if ($scope.selected.type_chart_key == '3_month' || $scope.selected.type_chart_key == '3_month_by_retailer') {\n $scope.selected.selected_chart_option = '1_month';\n } else {\n $scope.selected.selected_chart_option = key;\n if (!($scope.selected.selected_chart_option in $scope.chart_options)) {\n $scope.selected.selected_chart_option = Object.keys($scope.chart_options)[0] ? Object.keys($scope.chart_options)[0] : $scope.selected.selected_chart_option;\n }\n }\n $scope.getChartData();\n }\n\n\n $scope.getRandomColor = function () {\n var letters = '0123456789ABCDEF',\n color = '#';\n for (var i = 0; i < 6; i++) {\n color += letters[Math.floor(Math.random() * 16)];\n }\n return color;\n }\n\n $scope.getChartData = function () {\n let params = {\n selected_chart_option: $scope.selected.selected_chart_option,\n chart_type: $scope.selected.type_chart_key\n }\n\n if ($scope.source_name) {\n params.retailer = $scope.source_name;\n }\n\n if (!$scope.selected.type_chart_key) {\n $scope.selected.type_chart_key = 'price_history_by_retailer';\n params.chart_type = $scope.selected.type_chart_key;\n }\n\n $.ajax({\n // beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n // },\n url: $scope.data_chart_url,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: params,\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n rs.data = rs.data || [];\n for (let i = 0; i < rs.data.length; i++) {\n let color = $scope.borderColor[i];\n if (i > 19) color = $scope.getRandomColor();\n rs.data[i].borderColor = color;\n rs.data[i].backgroundColor = color;\n rs.data[i].pointRadius = 0;\n rs.data[i].pointHoverRadius = 0;\n rs.data[i].hoverRadius = 0;\n if ($scope.selected.type_chart_key == 'price_history_by_retailer') {\n let ctx = document.getElementById('chart').getContext('2d');\n gradient = ctx.createLinearGradient(0, 0, 0, 600);\n gradient.addColorStop(0.1971, 'rgba(89, 183, 136, 0.5)');\n gradient.addColorStop(0.9029, 'rgba(39, 81, 60, 0)');\n\n rs.data[i].fill = true;\n rs.data[i].backgroundColor = gradient;\n rs.data[i].borderWidth = 1;\n }\n }\n if ($scope.selected.type_chart_key == 'price_history_by_retailer') {\n $('#legend-container').hide();\n } else {\n $('#legend-container').show();\n }\n\n if ($scope.selected.type_chart_key == '3_month' || $scope.selected.type_chart_key == '3_month_by_retailer') {\n $scope.chart.options.scales.x.ticks = {\n callback: function(value, index, ticks) {\n return value;\n }\n };\n $scope.chart.options.scales.x.suggestedMin = 1;\n $scope.chart.options.scales.x.suggestedMax = 31;\n } else {\n $scope.chart.options.scales.x.ticks = {};\n $scope.chart.options.scales.x.suggestedMin = null;\n $scope.chart.options.scales.x.suggestedMax = null;\n }\n $scope.chart.data.datasets = rs.data;\n } else {\n $scope.chart.data.datasets = [];\n toastr.error(\"An Unexpected Error Occurred!\");\n }\n $scope.chart.update();\n });\n },\n });\n }\n\n $scope.compileContents = function (contents) {\n $compile(contents.contents())($scope);\n }\n }\n ]);\n\n}).call(this);\n","(function () {\n app.controller('SitemapCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n $scope.data_search = [];\n $scope.key_search = '';\n $scope.find_boxes = [];\n $scope.is_loading = false;\n\n\n $scope.init = function () {};\n\n $scope.getSuggestions = function () {\n $scope.is_loading = true;\n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.search_name_box,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: { q: $scope.key_search },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.data_search = rs.data;\n $scope.data_search.forEach(d => {\n d.hidden = false;\n });\n } else {\n toastr.error(\"An Unexpected Error Occurred!\");\n }\n $scope.is_loading = false;\n });\n },\n })\n }\n\n $scope.close_menu = function (id) {\n $scope.key_search = '';\n $scope.data_search = [];\n $(`#content-filter-${id}`).removeClass('show');\n }\n\n $scope.open_menu = function (id) {\n $(`#content-filter-${id}`).addClass('show');\n }\n\n $scope.click_change = function (id) {\n if ($(`#content-filter-${id}`).hasClass('show')) {\n $scope.close_menu(id);\n } else {\n $('.dropdown-menu.dropdown-menu-right').removeClass('show');\n $scope.key_search = '';\n $scope.data_search = [];\n $scope.is_loading = false;\n $scope.open_menu(id);\n }\n }\n\n $scope.get_box_name = function (id) {\n let box = $scope.get_box(id)\n return box ? box.box_name : 'Select box';\n }\n\n $scope.select_box = function(v_id, box) {\n $scope.find_boxes.forEach(b => {\n if (b.id == v_id) {\n if (b.box_id != box.id) b.is_change = true;\n b.box_id = box.id;\n b.box_name = box.name\n }\n })\n $scope.close_menu(v_id);\n }\n\n $scope.get_box = function(id) {\n return $scope.find_boxes.filter(b => b.id == id)[0] || {}\n }\n\n $scope.save_box = function(id) {\n let box = $scope.get_box(id);\n \n if(!box) return;\n\n $.ajax({\n beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.save_box_url.replace('-1', id),\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: {\n box_id: box.box_id\n },\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n toastr.success('Updated successfully');\n $scope.find_boxes.forEach(b => {\n if (b.id == id) {\n b.is_change = false;\n }\n })\n } else {\n toastr.error(\"An Unexpected Error Occurred!\");\n }\n });\n }\n });\n }\n }\n ]);\n\n}).call(this);","(function () {\n app.controller('CartsCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n $scope.shipping = {};\n $scope.error = '';\n $scope.error_billing = '';\n $scope.data_checkout = {};\n\n $scope.init = function () {};\n\n $scope.changeTab = function (tab) {\n $scope.current_tab = tab;\n switch (tab) {\n case 'order_summary':\n $scope.title = 'Order Summary';\n break;\n \n case 'checkout':\n $scope.title = 'Checkout';\n break;\n\n case 'proceed_to_payment':\n $scope.title = 'Checkout';\n break;\n }\n }\n\n $scope.qtyDecrement = function () {\n $scope.qty -= 1;\n if ($scope.qty <= 0) {\n $scope.qty = 1;\n }\n }\n\n $scope.qtyIncrement = function () {\n if ($scope.qty + 1 > $scope.max_qty) {\n toastr.error(`The quantity remaining is ${$scope.max_qty}.`)\n } else {\n $scope.qty += 1;\n }\n }\n\n $scope.validateShippingForm = function() {\n // Loop through each key in shipping\n for (const key in $scope.shipping) {\n if (key !== 'shipping_address_optional' && !$scope.shipping[key]) {\n $scope.error = `Please fill out the required fields.`;\n return false; // Stop submission\n }\n if (key === 'shipping_email' && !isValidEmail($scope.shipping.shipping_email)) {\n $scope.error = 'Missing or incorrect Email format.';\n return false;\n }\n if (key === 'shipping_phone_number' && $scope.shipping.shipping_phone_number && isNaN($scope.shipping.shipping_phone_number)) {\n $scope.error = 'Phone number must be a valid number.';\n return false;\n }\n if (key === 'shipping_zip_code') {\n var zipCode = $scope.shipping.shipping_zip_code;\n if (!/^\\d[\\d\\s\\-]*$/.test(zipCode)) { // RegEx checks for numeric, space, or hyphen\n $scope.error = 'Zip code must not contain letters.';\n return false;\n }\n }\n }\n $scope.error = '';\n return true;\n }\n\n $scope.validateBillingForm = function() {\n if ($scope.billing_option != 'sameAsShipping') {\n // Loop through each key in billing_address\n for (const key in $scope.billing_address) {\n if (key !== 'line2' && !$scope.billing_address[key]) {\n $scope.error_billing = `Please fill out the required fields.`;\n return false; // Stop submission\n }\n if (key === 'email' && !isValidEmail($scope.billing_address.email)) {\n $scope.error_billing = 'Missing or incorrect Email format.';\n return false;\n }\n if (key === 'phone' && $scope.billing_address.phone && isNaN($scope.billing_address.phone)) {\n $scope.error_billing = 'Phone number must be a valid number.';\n return false;\n }\n if (key === 'postal_code') {\n var zipCode = $scope.billing_address.postal_code;\n if (!/^\\d[\\d\\s\\-]*$/.test(zipCode)) { // RegEx checks for numeric, space, or hyphen\n $scope.error_billing = 'Zip code must not contain letters.';\n return false;\n }\n }\n }\n }\n $scope.error_billing = '';\n return true;\n }\n\n $scope.changeBillingOption = function(value) {\n $scope.billing_option = value;\n }\n\n $scope.checkout = function () {\n if ($scope.validateShippingForm() && $scope.validateBillingForm()) {\n $scope.shipping.qty = $scope.qty;\n $scope.shipping.shipping_fee = $scope.shipping_fee();\n $.ajax({\n beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.checkout_url,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: { \n order: $scope.shipping, \n box: $scope.box_slug, \n store_slug: $scope.store_slug, \n amount: $scope.price, \n billing_option: $scope.billing_option, \n billing_address: $scope.billing_address\n },\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.data_checkout = rs.data;\n $scope.changeTab('proceed_to_payment');\n $timeout(function () {\n $scope.getStripe();\n });\n } else {\n toastr.error(\"Whoa! An error occurred! Please try again\");\n }\n });\n },\n })\n }\n }\n\n $scope.getStripe = function () {\n $scope.stripe = Stripe($scope.stripe_publishable_key)\n var appearance = {\n theme: 'night',\n variables: { \n 'fontFamily': 'Inter, Arial, sans-serif',\n 'borderRadius': '10px',\n 'colorBackground': '#191919',\n 'colorText': '#FFFFFF80',\n 'p-colorBackgroundDeemphasize05': '#FFFFFF',\n 'colorBackgroundDeemphasize05': '#FFFFFF',\n },\n rules: {\n '.Input': {\n border: '1px solid rgba(255, 255, 255, 0.2)',\n color: '#FFF'\n }\n }\n },\n options = {\n layout: {\n type: 'tabs',\n defaultCollapsed: false,\n }\n },\n clientSecret = $scope.data_checkout.client_secret;\n $scope.elements = $scope.stripe.elements({ clientSecret, appearance }),\n $scope.paymentElement = $scope.elements.create('payment', options);\n $scope.paymentElement.mount('#payment-element');\n }\n\n $scope.submitOrder = async function () {\n $scope.showLoading();\n let elements = $scope.elements,\n payment_method_data = {\n billing_details: {\n name: $scope.billing_address.first_name + ' ' + $scope.billing_address.last_name,\n email: $scope.billing_address.email,\n phone: $scope.billing_address.phone,\n address: {\n line1: $scope.billing_address.line1,\n line2: $scope.billing_address.line2,\n city: $scope.billing_address.city,\n state: $scope.billing_address.state,\n postal_code: $scope.billing_address.postal_code,\n country: \"US\"\n }\n }\n };\n if ($scope.billing_option == 'sameAsShipping') {\n payment_method_data = {\n billing_details: {\n name: $scope.shipping.shipping_first_name + ' ' + $scope.shipping.shipping_last_name,\n email: $scope.shipping.shipping_email ? $scope.shipping.shipping_email : $scope.email,\n phone: $scope.shipping.shipping_phone_number,\n address: {\n line1: $scope.shipping.shipping_address,\n line2: $scope.shipping.shipping_address_optional,\n city: $scope.shipping.shipping_city,\n state: $scope.shipping.shipping_state,\n postal_code: $scope.shipping.shipping_zip_code,\n country: \"US\"\n }\n }\n }\n }\n \n var { error } = await $scope.stripe.confirmPayment({\n elements,\n confirmParams: {\n return_url: $scope.return_url,\n payment_method_data: payment_method_data\n }\n });\n\n if (error) {\n const messageContainer = document.getElementById('error-message');\n messageContainer.textContent = error.message;\n $scope.hideLoading();\n }\n }\n\n $scope.showLoading = function () {\n $(\".loading\").show();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: 9999 !important');\n }\n\n $scope.hideLoading = function () {\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n }\n\n $scope.shipping_fee = function () {\n if (!$scope.shipping_profile || $scope.price * $scope.qty >= $scope.shipping_profile.threshold) {\n return 0;\n }\n\n return $scope.shipping_profile.shipping_fee;\n }\n\n $scope.buyNow = function (url) {\n Turbolinks.visit(url+'&qty='+$scope.qty);\n }\n\n\n }\n ]);\n\n}).call(this);","(function () {\n app.controller('StoreCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n\n $scope.is_open_sport = false;\n $scope.is_open_sort_by = false;\n $scope.filter_list = [\n {name: 'All', title: 'All Wax', sport_type: null, box_type: null},\n {name: '📦 Wax Cases', title: 'All Wax Boxes', sport_type: null, box_type: 'box'},\n {name: '📦 Wax Boxes', title: 'All Wax Boxes', sport_type: null, box_type: 'case'},\n {name: 'âš¾ Baseball', title: 'All Baseball', sport_type: 'baseball', box_type: null},\n {name: '🀠Basketball', title: 'All Basketball', sport_type: 'basketball', box_type: null},\n {name: '🈠Football', title: 'All Football', sport_type: 'football', box_type: null},\n {name: '💠Hockey', title: 'All Hockey', sport_type: 'hockey', box_type: null},\n {name: 'âš½ Soccer', title: 'All Soccer', sport_type: 'soccer', box_type: null},\n {name: '🤼 MMA', title: 'All MMA', sport_type: 'mixed-martial-arts', box_type: null},\n {name: '🤼 Wrestling', title: 'All Wrestling', sport_type: 'wrestling', box_type: null},\n {name: 'ðŸ Motorsport', title: 'All Motorsport', sport_type: 'motorsports', box_type: null},\n {name: '🙠Pokemon', title: 'All Pokemon', sport_type: null, box_type: 'pokemon'},\n {name: '💯 Non-sport', title: 'All Non-sport', sport_type: 'non-sport', box_type: null}\n ];\n\n $scope.filter_sort_list = [\n {title: 'Best Selling', value: 'best_selling'},\n {title: 'Featured', value: 'featured'},\n {title: 'Alphabetically, A-Z', value: 'alphabetically_az'},\n {title: 'Alphabetically, Z-A', value: 'alphabetically_za'},\n {title: 'Lowest Price + Shipping', value: 'lowest_price'},\n {title: 'Highest Price + Shipping', value: 'highest_price'}\n ]\n\n $scope.select_filter = $scope.filter_list[0];\n $scope.select_sort_by = $scope.filter_sort_list[0];\n $scope.sport = '';\n $scope.box_type = '';\n $scope.sort_by = '';\n $scope.page = 1;\n $scope.per_in_page = 12;\n $scope.is_more = false;\n $scope.is_loading = false;\n\n $scope.init = function () {};\n\n $scope.changeType = function(filter) {\n if (filter.box_type && !filter.sport_type) {\n $scope.box_type = filter.box_type;\n $scope.sport_type = null;\n $scope.params_release_date = `?box_type=${$scope.box_type}`;\n }\n\n if (!filter.box_type && filter.sport_type) {\n $scope.box_type = null;\n $scope.sport_type = filter.sport_type;\n $scope.params_release_date = `?sport_type=${$scope.sport_type}`;\n }\n\n if (!filter.box_type && !filter.sport_type) {\n $scope.box_type = null;\n $scope.sport_type = null;\n $scope.params_release_date = '';\n }\n $scope.select_filter = filter;\n $scope.getData();\n $scope.close_menu('sport');\n }\n\n $scope.changeTypeSortBy = function(filter) {\n $scope.select_sort_by = filter;\n $scope.sort_by = filter.value;\n $scope.close_menu('sort_by');\n $scope.getData();\n }\n\n $scope.close_menu = function (type) {\n if (type == 'sort_by') {\n $scope.is_open_sort_by = false;\n $('#content-filter-by-sort-by').removeClass('show');\n } else {\n $scope.is_open_sport = false;\n $('#content-filter-by-sport').removeClass('show');\n }\n }\n\n $scope.click_filter = function (type) {\n if (type == 'sort_by') {\n $scope.is_open_sort_by = !$scope.is_open_sort_by;\n if ($scope.is_open_sort_by) {\n $scope.open_menu('sort_by');\n } else {\n $scope.close_menu('sort_by');\n }\n } else {\n $scope.is_open_sport = !$scope.is_open_sport;\n if ($scope.is_open_sport) {\n $scope.open_menu('sport');\n } else {\n $scope.close_menu('sport');\n }\n }\n }\n\n $scope.open_menu = function (type) {\n if (type == 'sort_by') {\n $scope.is_open_sort_by = true;\n $('#content-filter-by-sort-by').addClass('show');\n } else {\n $scope.is_open_sport = true;\n $('#content-filter-by-sport').addClass('show');\n }\n }\n\n \n $scope.getData = function (load_more = false) {\n $scope.is_loading = true;\n if (!load_more) {\n $scope.page = 1;\n } else {\n $scope.page += 1;\n }\n\n var data = { \n page: $scope.page,\n per_page: $scope.per_in_page, \n box_type: $scope.box_type,\n sport_type: $scope.sport_type,\n sort_by: $scope.sort_by\n }\n \n $.ajax({\n beforeSend: function(){\n $(\".loading\").hide();\n $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.data_store_url,\n dataType: \"json\",\n cache: false,\n type: \"GET\",\n data: data,\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n $scope.is_loading = false;\n if (rs.succeed) {\n $scope.is_more = rs.data.is_more;\n if (load_more) {\n $scope.data = $scope.data.concat(rs.data.results);\n } else {\n $scope.data = rs.data.results;\n }\n } else {\n $scope.data = [];\n $scope.is_more = false;\n }\n });\n }\n });\n }\n }\n ]);\n\n}).call(this);","(function () {\n app.controller('UserCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n $scope.resendDisabled = true;\n $scope.countdown = 120;\n $scope.is_change_phone_number = false;\n $scope.tab_name = 'send_code';\n $scope.is_verified_otp = false;\n\n $scope.init = function () {};\n\n $scope.moveToNext = function ($event, index) {\n if ($scope.otp[index - 1] && index < 4) {\n document.getElementsByClassName(\"otp-input\")[index].focus();\n }\n };\n\n $scope.startCountdown = function () {\n $scope.resendDisabled = true;\n let timer = setInterval(() => {\n $scope.countdown--;\n $scope.$apply();\n if ($scope.countdown <= 0) {\n clearInterval(timer);\n $scope.resendDisabled = false;\n $scope.$apply();\n }\n }, 1000);\n }\n\n $scope.sendCode = function () {\n if (!$scope.isValidPhone($scope.phone_number)) {\n toastr.error('Invalid phone number');\n return;\n }\n $.ajax({\n beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.send_code_path,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: {\n phone_number: $scope.phone_input.getNumber()\n },\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.tab_name = 'verify_code';\n toastr.success(rs.message);\n $scope.countdown = 120;\n $scope.startCountdown();\n } else {\n toastr.error(rs.message);\n }\n });\n },\n error: function (rs) {\n toastr.error(`${$scope.phone_input.getNumber()} is not a valid phone number.`);\n }\n });\n };\n\n $scope.verifyCode = function (is_profile = false) {\n if (!$scope.otp || !$scope.isValidOTP()) {\n toastr.error('Invalid OTP');\n return;\n }\n $.ajax({\n beforeSend: function(){\n // $(\".loading\").hide();\n // $(\".loading\").attr('style', 'background: rgba(0, 0, 0, 0)');\n // $(\".loading\").attr('style', 'z-index: -1 !important');\n },\n url: $scope.verify_path,\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n data: {\n otp_code: $scope.otp.join(''),\n phone_number: $scope.phone_input.getNumber()\n },\n afterSend: function(){},\n success: function (rs) {\n $timeout(function () {\n if (rs.succeed) {\n $scope.is_verified_otp = true;\n if (is_profile) {\n sessionStorage.setItem('showToastr', 'true');\n sessionStorage.setItem('messageToastr', rs.message);\n location.reload();\n } else {\n toastr.success(rs.message);\n }\n } else {\n toastr.error(rs.message);\n }\n });\n }\n });\n };\n\n $scope.shipVerifyCode = function () {\n $scope.is_verified_otp = true;\n sessionStorage.setItem('shipVerifyCode', 'true');\n };\n\n $scope.isValidPhone = function(phone_number) {\n if(!phone_number) {return false;}\n var temp = $scope.phone_input.getNumber(),\n regex = /^\\+?\\d{1,3}\\d{10,15}$/;\n \n return temp && regex.test(temp.trim());\n };\n\n $scope.isValidOTP = function() {\n return !$scope.otp || $scope.otp.filter(v => v !== '').length == 4;\n };\n }\n ]);\n\n}).call(this);","/*!\nfloating-scroll v3.2.0\nhttps://amphiluke.github.io/floating-scroll/\n(c) 2021 Amphiluke\n*/\n!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?i(require(\"jquery\")):\"function\"==typeof define&&define.amd?define([\"jquery\"],i):i((t=\"undefined\"!=typeof globalThis?globalThis:t||self).jQuery)}(this,(function(t){\"use strict\";var i=\"horizontal\",n=\"vertical\",e={init:function(t,n){var e=this;e.orientationProps=function(t){var n=t===i;return{ORIENTATION:t,SIZE:n?\"width\":\"height\",X_SIZE:n?\"height\":\"width\",OFFSET_SIZE:n?\"offsetWidth\":\"offsetHeight\",OFFSET_X_SIZE:n?\"offsetHeight\":\"offsetWidth\",CLIENT_SIZE:n?\"clientWidth\":\"clientHeight\",CLIENT_X_SIZE:n?\"clientHeight\":\"clientWidth\",INNER_X_SIZE:n?\"innerHeight\":\"innerWidth\",SCROLL_SIZE:n?\"scrollWidth\":\"scrollHeight\",SCROLL_POS:n?\"scrollLeft\":\"scrollTop\",START:n?\"left\":\"top\",X_START:n?\"top\":\"left\",X_END:n?\"bottom\":\"right\"}}(n);var o=t.closest(\".fl-scrolls-body\");o.length&&(e.scrollBody=o),e.container=t[0],e.visible=!0,e.initWidget(),e.updateAPI(),e.addEventHandlers(),e.skipSyncContainer=e.skipSyncWidget=!1},initWidget:function(){var i=this,n=i.orientationProps,e=n.ORIENTATION,o=n.SIZE,r=n.SCROLL_SIZE,c=i.widget=t('<div class=\"fl-scrolls\" data-orientation=\"'+e+'\"></div>');t(\"<div></div>\").appendTo(c)[o](i.container[r]),c.appendTo(i.container)},addEventHandlers:function(){var i=this;(i.eventHandlers=[{$el:t(window),handlers:{\"destroyDetached.fscroll\":function(t){\"fscroll\"===t.namespace&&i.destroyDetachedAPI()}}},{$el:i.scrollBody||t(window),handlers:{scroll:function(){i.updateAPI()},resize:function(){i.updateAPI()}}},{$el:i.widget,handlers:{scroll:function(){i.visible&&!i.skipSyncContainer&&i.syncContainer(),i.skipSyncContainer=!1}}},{$el:t(i.container),handlers:{scroll:function(){i.skipSyncWidget||i.syncWidget(),i.skipSyncWidget=!1},focusin:function(){setTimeout((function(){i.widget&&i.syncWidget()}),0)},\"update.fscroll\":function(t){\"fscroll\"===t.namespace&&i.updateAPI()},\"destroy.fscroll\":function(t){\"fscroll\"===t.namespace&&i.destroyAPI()}}}]).forEach((function(t){var i=t.$el,n=t.handlers;return i.bind(n)}))},checkVisibility:function(){var t=this,i=t.widget,n=t.container,e=t.scrollBody,o=t.orientationProps,r=o.SCROLL_SIZE,c=o.OFFSET_SIZE,l=o.X_START,s=o.X_END,d=o.INNER_X_SIZE,a=o.CLIENT_X_SIZE,f=i[0][r]<=i[0][c];if(!f){var h=n.getBoundingClientRect(),u=e?e[0].getBoundingClientRect()[s]:window[d]||document.documentElement[a];f=h[s]<=u||h[l]>u}t.visible===f&&(t.visible=!f,i.toggleClass(\"fl-scrolls-hidden\"))},syncContainer:function(){var t=this,i=t.orientationProps.SCROLL_POS,n=t.widget[0][i];t.container[i]!==n&&(t.skipSyncWidget=!0,t.container[i]=n)},syncWidget:function(){var t=this,i=t.orientationProps.SCROLL_POS,n=t.container[i];t.widget[0][i]!==n&&(t.skipSyncContainer=!0,t.widget[0][i]=n)},updateAPI:function(){var i=this,n=i.orientationProps,e=n.SIZE,o=n.X_SIZE,r=n.OFFSET_X_SIZE,c=n.CLIENT_SIZE,l=n.CLIENT_X_SIZE,s=n.SCROLL_SIZE,d=n.START,a=i.widget,f=i.container,h=i.scrollBody,u=f[c],S=f[s];a[e](u),h||a.css(d,f.getBoundingClientRect()[d]+\"px\"),t(\"div\",a)[e](S),S>u&&a[o](a[0][r]-a[0][l]+1),i.syncWidget(),i.checkVisibility()},destroyAPI:function(){var t=this;t.eventHandlers.forEach((function(t){var i=t.$el,n=t.handlers;return i.unbind(n)})),t.widget.remove(),t.eventHandlers=t.widget=t.container=t.scrollBody=null},destroyDetachedAPI:function(){t.contains(document.body,this.container)||this.destroyAPI()}};t.fn.floatingScroll=function(o,r){if(void 0===o&&(o=\"init\"),void 0===r&&(r={}),\"init\"===o){var c=r.orientation,l=void 0===c?i:c;if(l!==i&&l!==n)throw new Error(\"Scrollbar orientation should be either “horizontal†or “verticalâ€\");this.each((function(i,n){return Object.create(e).init(t(n),l)}))}else Object.prototype.hasOwnProperty.call(e,o+\"API\")&&this.trigger(o+\".fscroll\");return this},t((function(){t(\"body [data-fl-scrolls]\").each((function(i,n){var e=t(n);e.floatingScroll(\"init\",e.data(\"flScrolls\")||{})}))}))}));\n","/**\n * Owl Carousel v2.3.4\n * Copyright 2013-2018 David Deutsch\n * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE\n */\n!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:[\"busy\"],animating:[\"busy\"],dragging:[\"interacting\"]}},a.each([\"onResize\",\"onThrottledResize\"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:\"swing\",slideTransition:\"\",info:!1,nestedItemSelector:!1,itemElement:\"div\",stageElement:\"div\",refreshClass:\"owl-refresh\",loadedClass:\"owl-loaded\",loadingClass:\"owl-loading\",rtlClass:\"owl-rtl\",responsiveClass:\"owl-responsive\",dragClass:\"owl-drag\",itemClass:\"owl-item\",stageClass:\"owl-stage\",stageOuterClass:\"owl-stage-outer\",grabClass:\"owl-grab\"},e.Width={Default:\"default\",Inner:\"inner\",Outer:\"outer\"},e.Type={Event:\"event\",State:\"state\"},e.Plugins={},e.Workers=[{filter:[\"width\",\"settings\"],run:function(){this._width=this.$element.width()}},{filter:[\"width\",\"items\",\"settings\"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:[\"items\",\"settings\"],run:function(){this.$stage.children(\".cloned\").remove()}},{filter:[\"width\",\"items\",\"settings\"],run:function(a){var b=this.settings.margin||\"\",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:\"auto\",\"margin-left\":d?b:\"\",\"margin-right\":d?\"\":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:[\"width\",\"items\",\"settings\"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:[\"items\",\"settings\"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h=\"\",i=\"\";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass(\"cloned\").appendTo(this.$stage),a(i).addClass(\"cloned\").prependTo(this.$stage)}},{filter:[\"width\",\"items\",\"settings\"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:[\"width\",\"items\",\"settings\"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,\"padding-left\":a||\"\",\"padding-right\":a||\"\"};this.$stage.css(c)}},{filter:[\"width\",\"items\",\"settings\"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:[\"items\"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr(\"style\")}},{filter:[\"width\",\"items\",\"settings\"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:[\"position\"],run:function(){this.animate(this.coordinates(this._current))}},{filter:[\"width\",\"position\",\"items\",\"settings\"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,\"<=\",g)&&this.op(a,\">\",h)||this.op(b,\"<\",g)&&this.op(b,\">\",h))&&i.push(c);this.$stage.children(\".active\").removeClass(\"active\"),this.$stage.children(\":eq(\"+i.join(\"), :eq(\")+\")\").addClass(\"active\"),this.$stage.children(\".center\").removeClass(\"center\"),this.settings.center&&this.$stage.children().eq(this.current()).addClass(\"center\")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find(\".\"+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a(\"<\"+this.settings.stageElement+\">\",{class:this.settings.stageClass}).wrap(a(\"<div/>\",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(\".owl-item\");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate(\"width\"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter(\"initializing\"),this.trigger(\"initialize\"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is(\"pre-loading\")){var a,b,c;a=this.$element.find(\"img\"),b=this.settings.nestedItemSelector?\".\"+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave(\"initializing\"),this.trigger(\"initialized\")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(\":visible\")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),\"function\"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr(\"class\",this.$element.attr(\"class\").replace(new RegExp(\"(\"+this.options.responsiveClass+\"-)\\\\S+\\\\s\",\"g\"),\"$1\"+d))):e=a.extend({},this.options),this.trigger(\"change\",{property:{name:\"settings\",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate(\"settings\"),this.trigger(\"changed\",{property:{name:\"settings\",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger(\"prepare\",{content:b});return c.data||(c.data=a(\"<\"+this.settings.itemElement+\"/>\").addClass(this.options.itemClass).append(b)),this.trigger(\"prepared\",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is(\"valid\")&&this.enter(\"valid\")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter(\"refreshing\"),this.trigger(\"refresh\"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave(\"refreshing\"),this.trigger(\"refreshed\")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter(\"resizing\"),this.trigger(\"resize\").isDefaultPrevented()?(this.leave(\"resizing\"),!1):(this.invalidate(\"width\"),this.refresh(),this.leave(\"resizing\"),void this.trigger(\"resized\")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+\".owl.core\",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,\"resize\",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on(\"mousedown.owl.core\",a.proxy(this.onDragStart,this)),this.$stage.on(\"dragstart.owl.core selectstart.owl.core\",function(){return!1})),this.settings.touchDrag&&(this.$stage.on(\"touchstart.owl.core\",a.proxy(this.onDragStart,this)),this.$stage.on(\"touchcancel.owl.core\",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css(\"transform\").replace(/.*\\(|\\)| /g,\"\").split(\",\"),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is(\"animating\")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate(\"position\")),this.$element.toggleClass(this.options.grabClass,\"mousedown\"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on(\"mouseup.owl.core touchend.owl.core\",a.proxy(this.onDragEnd,this)),a(c).one(\"mousemove.owl.core touchmove.owl.core\",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on(\"mousemove.owl.core touchmove.owl.core\",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is(\"valid\")||(b.preventDefault(),this.enter(\"dragging\"),this.trigger(\"drag\"))},this)))},e.prototype.onDragMove=function(a){var b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is(\"dragging\")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?\"left\":\"right\";a(c).off(\".owl.core\"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is(\"dragging\")||!this.is(\"valid\"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate(\"position\"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one(\"click.owl.core\",function(){return!1})),this.is(\"dragging\")&&(this.leave(\"dragging\"),this.trigger(\"dragged\"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.coordinates();return this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return\"left\"===c&&b>i-f&&b<i+f?e=a:\"right\"===c&&b>i-g-f&&b<i-g+f?e=a+1:this.op(b,\"<\",i)&&this.op(b,\">\",h[a+1]!==d?h[a+1]:i-g)&&(e=\"left\"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,\">\",h[this.minimum()])?e=b=this.minimum():this.op(b,\"<\",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is(\"animating\")&&this.onTransitionEnd(),c&&(this.enter(\"animating\"),this.trigger(\"translate\")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:\"translate3d(\"+b+\"px,0px,0px)\",transition:this.speed()/1e3+\"s\"+(this.settings.slideTransition?\" \"+this.settings.slideTransition:\"\")}):c?this.$stage.animate({left:b+\"px\"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+\"px\"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger(\"change\",{property:{name:\"position\",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate(\"position\"),this.trigger(\"changed\",{property:{name:\"position\",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return\"string\"===a.type(b)&&(this._invalidated[b]=!0,this.is(\"valid\")&&this.leave(\"valid\")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress([\"translate\",\"translated\"]),this.animate(this.coordinates(a)),this.release([\"translate\",\"translated\"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave(\"animating\"),this.trigger(\"translated\")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn(\"Can not detect viewport width.\"),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find(\".\"+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find(\"[data-merge]\").addBack(\"[data-merge]\").attr(\"data-merge\")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate(\"items\")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger(\"add\",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find(\"[data-merge]\").addBack(\"[data-merge]\").attr(\"data-merge\")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find(\"[data-merge]\").addBack(\"[data-merge]\").attr(\"data-merge\")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate(\"items\"),this.trigger(\"added\",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger(\"remove\",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate(\"items\"),this.trigger(\"removed\",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter(\"pre-loading\"),c=a(c),a(new Image).one(\"load\",a.proxy(function(a){c.attr(\"src\",a.target.src),c.css(\"opacity\",1),this.leave(\"pre-loading\"),!this.is(\"pre-loading\")&&!this.is(\"initializing\")&&this.refresh()},this)).attr(\"src\",c.attr(\"src\")||c.attr(\"data-src\")||c.attr(\"data-src-retina\"))},this))},e.prototype.destroy=function(){this.$element.off(\".owl.core\"),this.$stage.off(\".owl.core\"),a(c).off(\".owl.core\"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,\"resize\",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(\".cloned\").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr(\"class\",this.$element.attr(\"class\").replace(new RegExp(this.options.responsiveClass+\"-\\\\S+\\\\s\",\"g\"),\"\")).removeData(\"owl.carousel\")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case\"<\":return d?a>c:a<c;case\">\":return d?a<c:a>c;case\">=\":return d?a<=c:a>=c;case\"<=\":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent(\"on\"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent(\"on\"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep([\"on\",b,d],function(a){return a}).join(\"-\").toLowerCase()),j=a.Event([b,\"owl\",d||\"carousel\"].join(\".\").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&\"function\"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf(\"owl\")?a.namespace&&a.namespace.indexOf(\"owl\")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data(\"owl.carousel\");f||(f=new e(this,\"object\"==typeof b&&b),d.data(\"owl.carousel\",f),a.each([\"next\",\"prev\",\"to\",\"destroy\",\"refresh\",\"replace\",\"add\",\"remove\"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+\".owl.carousel.core\",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),\"string\"==typeof b&&\"_\"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={\"initialized.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass(\"owl-hidden\",!this._visible),this._visible&&this._core.invalidate(\"width\")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))\"function\"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={\"initialized.owl.carousel change.owl.carousel resized.owl.carousel\":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&\"position\"==b.property.name||\"initialized\"==b.type)){var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++));f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1,lazyLoadEager:0},e.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(\".owl-lazy\");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr(\"data-src-retina\")||f.attr(\"data-src\")||f.attr(\"data-srcset\");this._core.trigger(\"load\",{element:f,url:g},\"lazy\"),f.is(\"img\")?f.one(\"load.owl.lazy\",a.proxy(function(){f.css(\"opacity\",1),this._core.trigger(\"loaded\",{element:f,url:g},\"lazy\")},this)).attr(\"src\",g):f.is(\"source\")?f.one(\"load.owl.lazy\",a.proxy(function(){this._core.trigger(\"loaded\",{element:f,url:g},\"lazy\")},this)).attr(\"srcset\",g):(e=new Image,e.onload=a.proxy(function(){f.css({\"background-image\":'url(\"'+g+'\")',opacity:\"1\"}),this._core.trigger(\"loaded\",{element:f,url:g},\"lazy\")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._previousHeight=null,this._handlers={\"initialized.owl.carousel refreshed.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),\"changed.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&\"position\"===a.property.name&&this.update()},this),\"loaded.owl.lazy\":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest(\".\"+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on(\"load\",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:\"owl-height\"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={\"initialized.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.register({type:\"state\",name:\"playing\",tags:[\"interacting\"]})},this),\"resize.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),\"refreshed.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.is(\"resizing\")&&this._core.$stage.find(\".cloned .owl-video-frame\").remove()},this),\"changed.owl.carousel\":a.proxy(function(a){a.namespace&&\"position\"===a.property.name&&this._playing&&this.stop()},this),\"prepared.owl.carousel\":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(\".owl-video\");c.length&&(c.css(\"display\",\"none\"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on(\"click.owl.video\",\".owl-video-play-icon\",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr(\"data-vimeo-id\")?\"vimeo\":a.attr(\"data-vzaar-id\")?\"vzaar\":\"youtube\"}(),d=a.attr(\"data-vimeo-id\")||a.attr(\"data-youtube-id\")||a.attr(\"data-vzaar-id\"),e=a.attr(\"data-width\")||this._core.settings.videoWidth,f=a.attr(\"data-height\")||this._core.settings.videoHeight,g=a.attr(\"href\");if(!g)throw new Error(\"Missing video URL.\");if(d=g.match(/(http:|https:|)\\/\\/(player.|www.|app.)?(vimeo\\.com|youtu(be\\.com|\\.be|be\\.googleapis\\.com|be\\-nocookie\\.com)|vzaar\\.com)\\/(video\\/|videos\\/|embed\\/|channels\\/.+\\/|groups\\/.+\\/|watch\\?v=|v\\/)?([A-Za-z0-9._%-]*)(\\&\\S+)?/),d[3].indexOf(\"youtu\")>-1)c=\"youtube\";else if(d[3].indexOf(\"vimeo\")>-1)c=\"vimeo\";else{if(!(d[3].indexOf(\"vzaar\")>-1))throw new Error(\"Video URL not supported.\");c=\"vzaar\"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr(\"data-video\",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?\"width:\"+c.width+\"px;height:\"+c.height+\"px;\":\"\",h=b.find(\"img\"),i=\"src\",j=\"\",k=this._core.settings,l=function(c){e='<div class=\"owl-video-play-icon\"></div>',d=k.lazyLoad?a(\"<div/>\",{class:\"owl-video-tn \"+j,srcType:c}):a(\"<div/>\",{class:\"owl-video-tn\",style:\"opacity:1;background-image:url(\"+c+\")\"}),b.after(d),b.after(e)};if(b.wrap(a(\"<div/>\",{class:\"owl-video-wrapper\",style:g})),this._core.settings.lazyLoad&&(i=\"data-src\",j=\"owl-lazy\"),h.length)return l(h.attr(i)),h.remove(),!1;\"youtube\"===c.type?(f=\"//img.youtube.com/vi/\"+c.id+\"/hqdefault.jpg\",l(f)):\"vimeo\"===c.type?a.ajax({type:\"GET\",url:\"//vimeo.com/api/v2/video/\"+c.id+\".json\",jsonp:\"callback\",dataType:\"jsonp\",success:function(a){f=a[0].thumbnail_large,l(f)}}):\"vzaar\"===c.type&&a.ajax({type:\"GET\",url:\"//vzaar.com/api/videos/\"+c.id+\".json\",jsonp:\"callback\",dataType:\"jsonp\",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger(\"stop\",null,\"video\"),this._playing.find(\".owl-video-frame\").remove(),this._playing.removeClass(\"owl-video-playing\"),this._playing=null,this._core.leave(\"playing\"),this._core.trigger(\"stopped\",null,\"video\")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest(\".\"+this._core.settings.itemClass),f=this._videos[e.attr(\"data-video\")],g=f.width||\"100%\",h=f.height||this._core.$stage.height();this._playing||(this._core.enter(\"playing\"),this._core.trigger(\"play\",null,\"video\"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a('<iframe frameborder=\"0\" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'),c.attr(\"height\",h),c.attr(\"width\",g),\"youtube\"===f.type?c.attr(\"src\",\"//www.youtube.com/embed/\"+f.id+\"?autoplay=1&rel=0&v=\"+f.id):\"vimeo\"===f.type?c.attr(\"src\",\"//player.vimeo.com/video/\"+f.id+\"?autoplay=1\"):\"vzaar\"===f.type&&c.attr(\"src\",\"//view.vzaar.com/\"+f.id+\"/player?autoplay=true\"),a(c).wrap('<div class=\"owl-video-frame\" />').insertAfter(e.find(\".owl-video\")),this._playing=e.addClass(\"owl-video-playing\"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass(\"owl-video-frame\")},e.prototype.destroy=function(){var a,b;this._core.$element.off(\"click.owl.video\");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={\"change.owl.carousel\":a.proxy(function(a){a.namespace&&\"position\"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),\"drag.owl.carousel dragged.owl.carousel translated.owl.carousel\":a.proxy(function(a){a.namespace&&(this.swapping=\"translated\"==a.type)},this),\"translate.owl.carousel\":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,\nanimateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+\"px\"}).addClass(\"animated owl-animated-out\").addClass(g)),f&&e.one(a.support.animation.end,c).addClass(\"animated owl-animated-in\").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:\"\"}).removeClass(\"animated owl-animated-out owl-animated-in\").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={\"changed.owl.carousel\":a.proxy(function(a){a.namespace&&\"settings\"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&\"position\"===a.property.name&&this._paused&&(this._time=0)},this),\"initialized.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),\"play.owl.autoplay\":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),\"stop.owl.autoplay\":a.proxy(function(a){a.namespace&&this.stop()},this),\"mouseover.owl.autoplay\":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is(\"rotating\")&&this.pause()},this),\"mouseleave.owl.autoplay\":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is(\"rotating\")&&this.play()},this),\"touchstart.owl.core\":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is(\"rotating\")&&this.pause()},this),\"touchend.owl.core\":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is(\"interacting\")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is(\"rotating\")||this._core.enter(\"rotating\"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is(\"rotating\")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave(\"rotating\"))},e.prototype.pause=function(){this._core.is(\"rotating\")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){\"use strict\";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={\"prepared.owl.carousel\":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('<div class=\"'+this._core.settings.dotClass+'\">'+a(b.content).find(\"[data-dot]\").addBack(\"[data-dot]\").attr(\"data-dot\")+\"</div>\")},this),\"added.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),\"remove.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),\"changed.owl.carousel\":a.proxy(function(a){a.namespace&&\"position\"==a.property.name&&this.draw()},this),\"initialized.owl.carousel\":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger(\"initialize\",null,\"navigation\"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger(\"initialized\",null,\"navigation\"))},this),\"refreshed.owl.carousel\":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger(\"refresh\",null,\"navigation\"),this.update(),this.draw(),this._core.trigger(\"refreshed\",null,\"navigation\"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['<span aria-label=\"Previous\">‹</span>','<span aria-label=\"Next\">›</span>'],navSpeed:!1,navElement:'button type=\"button\" role=\"presentation\"',navContainer:!1,navContainerClass:\"owl-nav\",navClass:[\"owl-prev\",\"owl-next\"],slideBy:1,dotClass:\"owl-dot\",dotsClass:\"owl-dots\",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a(\"<div>\").addClass(c.navContainerClass).appendTo(this.$element)).addClass(\"disabled\"),this._controls.$previous=a(\"<\"+c.navElement+\">\").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on(\"click\",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a(\"<\"+c.navElement+\">\").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on(\"click\",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('<button role=\"button\">').addClass(c.dotClass).append(a(\"<span>\")).prop(\"outerHTML\")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a(\"<div>\").addClass(c.dotsClass).appendTo(this.$element)).addClass(\"disabled\"),this._controls.$absolute.on(\"click\",\"button\",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d,e;e=this._core.settings;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)\"$relative\"===b&&e.navContainer?this._controls[b].html(\"\"):this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))\"function\"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if(\"page\"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||\"page\"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass(\"disabled\",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass(\"disabled\",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass(\"disabled\",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass(\"disabled\",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join(\"\")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(\".active\").removeClass(\"active\"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass(\"active\"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return\"page\"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){\"use strict\";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={\"initialized.owl.carousel\":a.proxy(function(c){c.namespace&&\"URLHash\"===this._core.settings.startPosition&&a(b).trigger(\"hashchange.owl.navigation\")},this),\"prepared.owl.carousel\":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(\"[data-hash]\").addBack(\"[data-hash]\").attr(\"data-hash\");if(!c)return;this._hashes[c]=b.content}},this),\"changed.owl.carousel\":a.proxy(function(c){if(c.namespace&&\"position\"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on(\"hashchange.owl.navigation\",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off(\"hashchange.owl.navigation\");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))\"function\"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+\" \"+h.join(f+\" \")+f).split(\" \"),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a(\"<support>\").get(0).style,h=\"Webkit Moz O ms\".split(\" \"),i={transition:{end:{WebkitTransition:\"webkitTransitionEnd\",MozTransition:\"transitionend\",OTransition:\"oTransitionEnd\",transition:\"transitionend\"}},animation:{end:{WebkitAnimation:\"webkitAnimationEnd\",MozAnimation:\"animationend\",OAnimation:\"oAnimationEnd\",animation:\"animationend\"}}},j={csstransforms:function(){return!!e(\"transform\")},csstransforms3d:function(){return!!e(\"perspective\")},csstransitions:function(){return!!e(\"transition\")},cssanimations:function(){return!!e(\"animation\")}};j.csstransitions()&&(a.support.transition=new String(f(\"transition\")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f(\"animation\")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f(\"transform\")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document);","window.WebApp = { pageDoneCallback: null };\n// Remove Facebook #_=_ append\n\nif (window.location.hash == '#_=_') {\n window.location.hash = '';\n}\n\nwindow.getParameterByName = function getParameterByName(name) {\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\"),\n results = regex.exec(location.search);\n return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n};\n\nwindow.removeParamByName = function removeParamByName(key, sourceURL) {\n var rtn = sourceURL.split(\"?\")[0],\n param,\n params_arr = [],\n queryString = (sourceURL.indexOf(\"?\") !== -1) ? sourceURL.split(\"?\")[1] : \"\";\n if (queryString !== \"\") {\n params_arr = queryString.split(\"&\");\n for (var i = params_arr.length - 1; i >= 0; i -= 1) {\n param = params_arr[i].split(\"=\")[0];\n if (param === key) {\n params_arr.splice(i, 1);\n }\n }\n rtn = rtn + \"?\" + params_arr.join(\"&\");\n }\n return rtn;\n};\n\nwindow.setCookie = function setCookie(cname,cvalue,exdays) {\n var d = new Date();\n d.setTime(d.getTime() + (exdays*24*60*60*1000));\n var expires = \"expires=\" + d.toGMTString();\n document.cookie = cname + \"=\" + cvalue + \"; \" + expires + \";path=/\";\n};\n\nwindow.getCookie = function getCookie(cname) {\n var name = cname + \"=\";\n var ca = document.cookie.split(';');\n for(var i=0; i<ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0)==' ') c = c.substring(1);\n if (c.indexOf(name) != -1) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n};\n\nwindow.deleteCookie = function deleteCookie(name) {\n document.cookie = name + \"=; expires=Thu, 01-Jan-70 00:00:01 GMT;path=/\";\n};\n\nwindow.isValidEmail = function isValidEmail(emailAddress) {\n var pattern = new RegExp(/^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i);\n return pattern.test(emailAddress);\n};\n\nwindow.isMobile = function isMobile() {\n return false;\n};\n\n//Duplication with data-confirm-modal lib.\n// $(function() {\n// \t// Override rails default confirm (window.confirm) with bootbox.confirm\n// \t$.rails.allowAction = function(element) {\n// var message = element.data('confirm'),\n// answer = false;\n// if (!message) { return true; }\n \n// if ($.rails.fire(element, 'confirm')) {\n// bootbox.confirm(message, function(confirmed) {\n// if(!confirmed) return;\n\n// var callback = $.rails.fire(element, 'confirm:complete', [answer]);\n\n// if(callback) {\n// var oldAllowAction = $.rails.allowAction;\n// $.rails.allowAction = function() { return true; };\n// if (element.prop(\"tagName\") === 'FORM') element.trigger('submit');\n// else element.trigger('click');\n// $.rails.allowAction = oldAllowAction;\n// }\n// });\n// }\n// return false;\n// };\n// });","(function() {\n var app = angular.module('app',[]);\n\n $(document).on('turbolinks:load', function () {\n angular.bootstrap(document.body, ['app']);\n });\n\n app.filter('maskString', function () {\n return function (str) {\n if (!str) { return '******'; }\n\n return str.replace(/./g, '*').trim();\n };\n });\n\n app.filter('unsafe', function($sce) {\n return function(val) {\n return $sce.trustAsHtml(val);\n };\n });\n\n app.filter('formatPhone', function () {\n return function (tel) {\n if (!tel) { return ''; }\n\n var value = tel.toString().trim().replace(/^\\+/, '');\n\n if (value.match(/[^0-9]/)) {\n return tel;\n }\n\n var country, city, number;\n\n switch (value.length) {\n case 10: // +1PPP####### -> C (PPP) ###-####\n country = 1;\n city = value.slice(0, 3);\n number = value.slice(3);\n break;\n\n case 11: // +CPPP####### -> CCC (PP) ###-####\n country = value[0];\n city = value.slice(1, 4);\n number = value.slice(4);\n break;\n\n case 12: // +CCCPP####### -> CCC (PP) ###-####\n country = value.slice(0, 3);\n city = value.slice(3, 5);\n number = value.slice(5);\n break;\n\n default:\n return tel;\n }\n\n if (country == 1) {\n country = \"\";\n }\n\n number = number.slice(0, 3) + '-' + number.slice(3);\n\n return (country + \" \" + city + \"-\" + number).trim();\n };\n });\n\n app.filter('noFractionCurrency',\n [ '$filter', '$locale',\n function(filter, locale) {\n var currencyFilter = filter('currency');\n var formats = locale.NUMBER_FORMATS;\n return function(amount, currencySymbol) {\n var value = currencyFilter(amount, currencySymbol);\n var sep = value.indexOf(formats.DECIMAL_SEP);\n if (value.substring(sep + 1) !== '00') {\n return value;\n }\n\n if(amount >= 0) {\n return value.substring(0, sep);\n }\n return value.substring(0, sep) + ')';\n };\n } ]\n );\n\n app.directive('onlyNum', function() {\n return function(scope, element, attrs) {\n\n var keyCode = [8,9,37,39,48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105,110];\n element.bind(\"keydown\", function(event) {\n if($.inArray(event.which,keyCode) == -1) {\n scope.$apply(function(){\n scope.$eval(attrs.onlyNum);\n event.preventDefault();\n });\n event.preventDefault();\n }\n\n });\n };\n });\n\n app.directive('onlyDecimal', function() {\n return function(scope, element, attrs) {\n\n var keyCode = [8,9,37,39,48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105,110, 190];\n element.bind(\"keydown\", function(event) {\n if($.inArray(event.which,keyCode) == -1) {\n scope.$apply(function(){\n scope.$eval(attrs.onlyNum);\n event.preventDefault();\n });\n event.preventDefault();\n }\n });\n };\n });\n\n app.directive('smartDecimal', function () {\n return {\n require: 'ngModel',\n link: function (scope, element, attrs, ngModel) {\n scope.$watch(attrs.ngModel, function(newValue, oldValue) {\n var spiltArray = String(newValue).split(\"\");\n\n if (spiltArray.length === 0) return;\n if (spiltArray.length === 1 && (spiltArray[0] == '-' || spiltArray[0] === '.' )) return;\n if (spiltArray.length === 2 && newValue === '-.') return;\n\n if(attrs.max) {\n var maxValue = parseFloat(attrs.max);\n if(maxValue < parseFloat(newValue)){\n newValue = maxValue;\n ngModel.$setViewValue(newValue);\n ngModel.$render();\n }\n }\n\n if(attrs.min) {\n var minValue = parseFloat(attrs.min);\n if(minValue > parseFloat(newValue)){\n newValue = minValue;\n ngModel.$setViewValue(newValue);\n ngModel.$render();\n }\n }\n\n if(attrs.allowNegative == \"false\") {\n if(spiltArray[0] == '-') {\n newValue = newValue.replace(\"-\", \"\");\n ngModel.$setViewValue(newValue);\n ngModel.$render();\n }\n }\n\n if(attrs.allowDecimal == \"false\") {\n newValue = parseInt(newValue);\n ngModel.$setViewValue(newValue);\n ngModel.$render();\n }\n\n if(attrs.allowDecimal != \"false\") {\n var fractionNumber = 2;\n if(attrs.decimalUpto) {\n fractionNumber = attrs.decimalUpto;\n }\n\n var n = String(newValue).split(\".\");\n if(n[1]) {\n var n2 = n[1].slice(0, fractionNumber);\n newValue = [n[0], n2].join(\".\");\n ngModel.$setViewValue(newValue);\n ngModel.$render();\n }\n }\n\n /*Check it is number or not.*/\n if (isNaN(newValue)) {\n ngModel.$setViewValue(oldValue);\n ngModel.$render();\n }\n });\n }\n };\n });\n\n app.directive('inputMaxLengthNumber', function() {\n return {\n require: 'ngModel',\n restrict: 'A',\n link: function (scope, element, attrs, ngModelCtrl) {\n function fromUser(text) {\n var maxlength = Number(attrs.maxlength);\n if (String(text).length > maxlength) {\n ngModelCtrl.$setViewValue(ngModelCtrl.$modelValue);\n ngModelCtrl.$render();\n return ngModelCtrl.$modelValue;\n }\n return text;\n }\n ngModelCtrl.$parsers.push(fromUser);\n }\n };\n });\n\n app.controller('GlobalCtrl', [\n \"$scope\", '$compile', function($scope, $compile) {\n $scope.compile_content = function(data) {\n $compile(data)($scope);\n $scope.$apply();\n };\n }\n ]);\n \n this.app = app;\n\n}).call(this);","WebApp.AngularUtils = new function(){\n var awaitingDataApplies = {};\n\n function pageDoneCallback() {\n var apply;\n for (apply in awaitingDataApplies) {\n if(awaitingDataApplies.hasOwnProperty(apply)){\n awaitingDataApplies[apply].call();\n }\n }\n }\n\n WebApp.pageDoneCallback = pageDoneCallback;\n\n\tthis.applyData = function(elementSelector, itemToCheckScopeOn, scopeApplyFunction) {\n\t\tvar element = $(elementSelector),\n\t\t\tscope = $(elementSelector).scope();\n\n\t\tfunction applyData(isValidScope) {\n\t\t\tif (typeof(isValidScope) === 'undefined' || !isValidScope) {\n\t\t\t\telement = $(elementSelector);\n\t\t\t\tscope = element.scope();\n\t\t\t}\n\n\t\t\tscope.$apply(function(){\n \t\t\t\tscopeApplyFunction.call(element, scope);\n \t\t\t});\n\n\t\t\tdelete awaitingDataApplies[elementSelector];\n\t\t}\n\n\t\tif (scope && scope[itemToCheckScopeOn]) {\n\t\t\tapplyData(true);\n\t\t} else {\n\t\t\tawaitingDataApplies[elementSelector] = applyData;\n\t\t}\n\t};\n};\n","(function () {\n app.controller('DashboardCtrl', [\n \"$scope\", '$timeout',\n function ($scope, $timeout) {\n\n $scope.init = function () {\n };\n }\n ]);\n\n}).call(this);\n"],"sourceRoot":""}