{"version":3,"sources":["webpack:///./src/views/App/Dashboard/index.vue?6385","webpack:///./src/views/App/Dashboard/ChartsCard/ChartBar.vue?116f","webpack:///./src/views/App/Dashboard/DashboardLayout.vue?9373","webpack:///./src/views/App/Dashboard/WidgetCard.vue?910a","webpack:///./src/views/App/Dashboard/ChartsCard/ChartBar.vue","webpack:///./src/views/App/Dashboard/ChartsCard/ChartBar.vue?5b80","webpack:///./src/views/App/Dashboard/ChartsCard/Number.vue?a219","webpack:///./src/views/App/Dashboard/ChartsCard/Number.vue","webpack:///./src/views/App/Dashboard/ChartsCard/Number.vue?3970","webpack:///./src/views/App/Dashboard/ChartsCard/Number.vue?e45d","webpack:///./src/views/App/Dashboard/ChartsCard/TableCard.vue?2b97","webpack:///./src/views/App/Dashboard/ChartsCard/TableCard.vue","webpack:///./src/views/App/Dashboard/ChartsCard/TableCard.vue?b5cc","webpack:///./src/views/App/Dashboard/ChartsCard/TableCard.vue?51b2","webpack:///./src/views/App/Dashboard/ChartsCard/ChartColumn.vue?2b96","webpack:///./src/views/App/Dashboard/ChartsCard/ChartPie.vue?e6fa","webpack:///./src/views/App/Dashboard/ChartsCard/ChartRadar.vue?b300","webpack:///./src/views/App/Dashboard/ChartsCard/ChartTimeLine.vue?f90e","webpack:///./src/views/App/Dashboard/ChartsCard/ChartColumn.vue","webpack:///./src/views/App/Dashboard/ChartsCard/ChartColumn.vue?f08a","webpack:///./src/views/App/Dashboard/ChartsCard/ChartPie.vue","webpack:///./src/views/App/Dashboard/ChartsCard/ChartPie.vue?3ee9","webpack:///./src/views/App/Dashboard/ChartsCard/ChartRadar.vue","webpack:///./src/views/App/Dashboard/ChartsCard/ChartRadar.vue?0ad3","webpack:///./src/views/App/Dashboard/ChartsCard/ChartTimeLine.vue","webpack:///./src/views/App/Dashboard/ChartsCard/ChartTimeLine.vue?3e3f","webpack:///./src/views/App/Dashboard/ChartsCard/ChartHeatGrid.vue?66d2","webpack:///./src/views/App/Dashboard/ChartsCard/ChartHeatGrid.vue","webpack:///./src/views/App/Dashboard/ChartsCard/ChartHeatGrid.vue?188f","webpack:///./src/views/App/Dashboard/ChartsCard/ChartHeatGrid.vue?6130","webpack:///./src/views/App/Dashboard/ChartsCard/ChartStacked.vue","webpack:///./src/views/App/Dashboard/ChartsCard/ChartStacked.vue?575c","webpack:///./src/views/App/Dashboard/ChartsCard/ChartStacked.vue?987a","webpack:///./src/views/App/Dashboard/ChartsCard/InstallationSummaryCard.vue?d6ad","webpack:///./src/views/App/Dashboard/ChartsCard/InstallationSummaryCard.vue","webpack:///./src/views/App/Dashboard/ChartsCard/InstallationSummaryCard.vue?b678","webpack:///./src/views/App/Dashboard/ChartsCard/InstallationSummaryCard.vue?bb91","webpack:///./src/views/App/Dashboard/ChartsCard/InstallationsStatusChangesTable.vue?e251","webpack:///./src/views/App/Dashboard/ChartsCard/InstallationsStatusChangesTable.vue","webpack:///./src/views/App/Dashboard/ChartsCard/InstallationsStatusChangesTable.vue?ed11","webpack:///./src/views/App/Dashboard/ChartsCard/InstallationsStatusChangesTable.vue?c394","webpack:///./src/model/data/DeviceStatus/DeviceGlobalStatusEnum.ts","webpack:///./src/model/data/InstallationStatusChange.ts","webpack:///./src/model/data/dashboard/WidgetDataResponseStatus.ts","webpack:///./src/model/data/dashboard/InstallationSummary.ts","webpack:///./src/model/data/dashboard/WidgetSingleSerie.ts","webpack:///./src/model/data/dashboard/WidgetData.ts","webpack:///./src/model/communication/dashboard/widget/FetchDashboardWidgetDataResData.ts","webpack:///./src/model/communication/dashboard/widget/FetchDashboardWidgetDataCommand.ts","webpack:///./src/model/communication/dashboard/widget/UpdateDashboardWidgetCommand.ts","webpack:///./src/views/App/Dashboard/WidgetCard.vue","webpack:///./src/views/App/Dashboard/WidgetCard.vue?a2ac","webpack:///./src/views/App/Dashboard/WidgetCard.vue?c8bc","webpack:///./src/views/App/Dashboard/DashboardLayout.vue","webpack:///./src/views/App/Dashboard/DashboardLayout.vue?26ce","webpack:///./src/views/App/Dashboard/DashboardLayout.vue?3e7d","webpack:///./src/views/App/Dashboard/configurator/WidgetConfiguratorCard.vue?6aa6","webpack:///./src/views/App/Dashboard/configurator/BaseWidgetInformationCard.vue?4d21","webpack:///./src/views/App/Dashboard/configurator/BaseWidgetInformationCard.vue","webpack:///./src/views/App/Dashboard/configurator/BaseWidgetInformationCard.vue?d06e","webpack:///./src/views/App/Dashboard/configurator/BaseWidgetInformationCard.vue?9d24","webpack:///./src/views/App/Dashboard/configurator/WidgetViewConfigCard.vue?938a","webpack:///./src/views/App/Dashboard/configurator/DeviceStatus/ViewConfig.vue?a241","webpack:///./src/views/App/Dashboard/configurator/DeviceStatus/ViewConfig.vue","webpack:///./src/views/App/Dashboard/configurator/DeviceStatus/ViewConfig.vue?0555","webpack:///./src/views/App/Dashboard/configurator/DeviceStatus/ViewConfig.vue?d593","webpack:///./src/views/App/Dashboard/configurator/InstallationsStatusChangesTable/ViewConfig.vue?8886","webpack:///./src/views/App/Dashboard/configurator/InstallationsStatusChangesTable/ViewConfig.vue","webpack:///./src/views/App/Dashboard/configurator/InstallationsStatusChangesTable/ViewConfig.vue?dc8e","webpack:///./src/views/App/Dashboard/configurator/InstallationsStatusChangesTable/ViewConfig.vue?4700","webpack:///./src/views/App/Dashboard/configurator/CashCount/ViewConfig.vue?f717","webpack:///./src/views/App/Dashboard/configurator/CashCount/ViewConfig.vue","webpack:///./src/views/App/Dashboard/configurator/CashCount/ViewConfig.vue?3642","webpack:///./src/views/App/Dashboard/configurator/CashCount/ViewConfig.vue?73e4","webpack:///./src/views/App/Dashboard/configurator/CashDistribution/ViewConfig.vue?e757","webpack:///./src/views/App/Dashboard/configurator/CashDistribution/ViewConfig.vue","webpack:///./src/views/App/Dashboard/configurator/CashDistribution/ViewConfig.vue?c430","webpack:///./src/views/App/Dashboard/configurator/CashDistribution/ViewConfig.vue?6003","webpack:///./src/views/App/Dashboard/configurator/Transactions/ViewConfig.vue?5567","webpack:///./src/views/App/Dashboard/configurator/Transactions/ViewConfig.vue","webpack:///./src/views/App/Dashboard/configurator/Transactions/ViewConfig.vue?6e2d","webpack:///./src/views/App/Dashboard/configurator/Transactions/ViewConfig.vue?e141","webpack:///./src/views/App/Dashboard/configurator/WidgetViewConfigCard.vue","webpack:///./src/views/App/Dashboard/configurator/WidgetViewConfigCard.vue?b919","webpack:///../../../src/components/VSlider/VSlider.ts","webpack:///../../../../src/components/VColorPicker/util/index.ts","webpack:///../../../src/components/VColorPicker/VColorPickerPreview.ts","webpack:///../../../src/components/VColorPicker/VColorPickerCanvas.ts","webpack:///../../../src/components/VColorPicker/VColorPickerEdit.ts","webpack:///../../src/util/colors.ts","webpack:///../../../src/components/VColorPicker/VColorPickerSwatches.ts","webpack:///../../../src/components/VColorPicker/VColorPicker.ts","webpack:///./src/views/App/Dashboard/configurator/WidgetViewConfigCard.vue?8832","webpack:///./src/views/App/Dashboard/configurator/WidgetFilterCard.vue?a392","webpack:///./src/views/App/Dashboard/configurator/CashCount/Filter.vue?c309","webpack:///./src/views/App/Dashboard/configurator/CashCount/Filter.vue","webpack:///./src/views/App/Dashboard/configurator/CashCount/Filter.vue?ffdc","webpack:///./src/views/App/Dashboard/configurator/CashCount/Filter.vue?12d6","webpack:///./src/views/App/Dashboard/configurator/CashDistribution/Filter.vue?74e3","webpack:///./src/views/App/Dashboard/configurator/CashDistribution/Filter.vue","webpack:///./src/views/App/Dashboard/configurator/CashDistribution/Filter.vue?535a","webpack:///./src/views/App/Dashboard/configurator/CashDistribution/Filter.vue?476e","webpack:///./src/views/App/Dashboard/configurator/Transactions/Filter.vue?0380","webpack:///./src/views/App/Dashboard/configurator/Transactions/Filter.vue","webpack:///./src/views/App/Dashboard/configurator/Transactions/Filter.vue?da1e","webpack:///./src/views/App/Dashboard/configurator/Transactions/Filter.vue?531f","webpack:///./src/views/App/Dashboard/configurator/SoftwareVersions/Filter.vue?5156","webpack:///./src/components/TableHeaderFilters/SoftwareVersionsSubsetFilter.vue?47da","webpack:///./src/components/TableHeaderFilters/SoftwareVersionsSubsetFilter.vue","webpack:///./src/components/TableHeaderFilters/SoftwareVersionsSubsetFilter.vue?4ea3","webpack:///./src/components/TableHeaderFilters/SoftwareVersionsSubsetFilter.vue?d9a6","webpack:///./src/views/App/Dashboard/configurator/SoftwareVersions/Filter.vue","webpack:///./src/views/App/Dashboard/configurator/SoftwareVersions/Filter.vue?219a","webpack:///./src/views/App/Dashboard/configurator/SoftwareVersions/Filter.vue?286a","webpack:///./src/views/App/Dashboard/configurator/InstallationSummary/InstallationSummaryFilter.vue?404e","webpack:///./src/model/communication/device/GetDistinctInstallationsCommand.ts","webpack:///./src/views/App/Dashboard/configurator/InstallationSummary/InstallationSummaryFilter.vue","webpack:///./src/views/App/Dashboard/configurator/InstallationSummary/InstallationSummaryFilter.vue?f5b1","webpack:///./src/views/App/Dashboard/configurator/InstallationSummary/InstallationSummaryFilter.vue?a65e","webpack:///./src/views/App/Dashboard/configurator/WidgetFilterCard.vue","webpack:///./src/views/App/Dashboard/configurator/WidgetFilterCard.vue?cf9b","webpack:///./src/views/App/Dashboard/configurator/WidgetFilterCard.vue?69a9","webpack:///./src/views/App/Dashboard/configurator/WidgetPreviewCard.vue?3389","webpack:///./src/views/App/Dashboard/configurator/WidgetPreviewCard.vue","webpack:///./src/views/App/Dashboard/configurator/WidgetPreviewCard.vue?649e","webpack:///./src/views/App/Dashboard/configurator/WidgetPreviewCard.vue?fbe1","webpack:///./src/model/communication/dashboard/widget/CreateDashboardWidgetCommand.ts","webpack:///./src/views/App/Dashboard/configurator/WidgetConfiguratorCard.vue","webpack:///./src/views/App/Dashboard/configurator/WidgetConfiguratorCard.vue?2558","webpack:///./src/views/App/Dashboard/configurator/WidgetConfiguratorCard.vue?74f9","webpack:///./src/model/communication/dashboard/dashboard/FetchDashboardResData.ts","webpack:///./src/model/communication/dashboard/dashboard/FetchDashboardCommand.ts","webpack:///./src/model/communication/dashboard/widget/DeleteDashboardWidgetCommand.ts","webpack:///./src/views/App/Dashboard/index.vue","webpack:///./src/views/App/Dashboard/index.vue?3a25","webpack:///./src/views/App/Dashboard/index.vue?a342","webpack:///./src/components/ColoredCurrencyTextField.vue?df93","webpack:///./src/components/ColoredCurrencyTextField.vue","webpack:///./src/components/ColoredCurrencyTextField.vue?e57e","webpack:///./src/components/ColoredCurrencyTextField.vue?b616","webpack:///./node_modules/vue-chartjs/es/mixins/index.js","webpack:///./node_modules/vue-chartjs/es/BaseCharts.js","webpack:///./src/model/data/enums/StockTypeEnum.ts","webpack:///./node_modules/chart.js/dist/Chart.js","webpack:///./src/model/data/enums/TransactionTypeEnum.ts","webpack:///./src/components/DeviceFolderTree.vue?fb6b","webpack:///./src/components/DeviceFolderTree.vue","webpack:///./src/components/DeviceFolderTree.vue?bb2b","webpack:///./src/components/DeviceFolderTree.vue?fd44","webpack:///./src/model/data/StockContent.ts","webpack:///./src/model/data/CashCount.ts","webpack:///./src/model/data/cashFlow/MachineBag.ts","webpack:///./src/model/data/status/MachineStatus.ts","webpack:///./src/views/App/Dashboard/ChartsCard/ChartLine.vue?ce2d","webpack:///./src/views/App/Dashboard/ChartsCard/ChartLine.vue","webpack:///./src/views/App/Dashboard/ChartsCard/ChartLine.vue?356c","webpack:///./src/views/App/Dashboard/ChartsCard/InstallationsStatusChangesTable.vue?8e2a","webpack:///./src/components/TableHeaderFilters/TagsFilter.vue?1664","webpack:///./src/components/TableHeaderFilters/TagsFilter.vue","webpack:///./src/components/TableHeaderFilters/TagsFilter.vue?3fe4","webpack:///./src/components/TableHeaderFilters/TagsFilter.vue?512a","webpack:///./src/model/data/content/MachineContent.ts","webpack:///./node_modules/vue-responsive-dash/dist/vue-responsive-dash.common.js"],"names":["_vm","this","_h","$createElement","_c","_self","attrs","dashboard","title","icon","slot","tvMode","_e","on","$event","addNewWidget","onEdit","duplicateWidget","deleteWidget","model","value","callback","$$v","showWidgetConfiguratorDialog","expression","tempWidget","isNewWidget","fetchDashboard","dashboardNotAvailable","$t","staticClass","_v","_s","staticRenderFns","_l","layout","_b","key","breakpoint","widget","index","id","widgets","$emit","scopedSlots","_u","fn","ref","hover","class","loading","viewConfig","color","description","isPreview","_g","downloadChart","widgetData","status","currentComponent","tag","style","overflow","height","datasets","labels","installationSummaries","installationsStatusHistory","filter","domProps","statusMessage","_t","extend","extends","data","options","responsive","maintainAspectRatio","scales","xAxes","ticks","beginAtZero","props","Array","computed","chartdata","mounted","renderChart","component","filters","currency","numberValue","components","ColoredCurrencyTextField","Object","isCurrencyVulue","length","res","VCard","headers","items","text","map","c","label","forEach","l","item","Name","d","push","VDataTable","yAxes","elements","line","fill","type","source","Date","parseInt","subtract","utcOffset","toDate","getTime","chartOptions","xaxis","categories","chartSeries","chart","dataLabels","enabled","colors","plotOptions","heatmap","distributed","enableShades","series","serie","name","values","VCardText","x","stacked","y","staticStyle","backgroundColor","installation","image","GlobalStatusInstallationChip","VFaIcon","InstallationStatusEnum","isInLane","machines","includes","images","getImageFromModel_200","machine","supportedCashType","showThresholdAlert","contentMachines","ms","thresholdAlerts","showBacknotesIcon","m","CashTypeEnum","Banknote","machineSerialNumber","serialNumber","showCoinsIcon","Coin","showNeedCleaning","statusMachines","cleaningStatus","CleaningStatusTypeEnum","Necessary","Warning","Blocked","PartiallyBlocked","methods","VChip","VImg","VSpacer","legendText","getFormattedDate","toString","toUpperCase","moment","utc","fromNow","sn","date","format","longDateFormat","VBadge","DeviceGlobalStatusEnum","WidgetDataResponseStatus","installationName","Unknown","timestamp","receivedAt","obj","Id","InstallationName","Status","Timestamp","ReceivedAt","machinesSerialNumber","installationLastMessage","installationAgentIP","isNew","IsNew","MachinesSerialNumber","InstallationLastMessage","InstallationAgentIP","agentInfo","content","StatusMachines","e","MachineStatus","parse","AgentInfo","ContentMachines","MachineContent","Content","CashCount","Installation","Values","fromIdx","toIdx","undefined","onlyUnique","self","indexOf","Ok","StatusMessage","tempLabels","Labels","VersionObfuscator","obfuscate","Series","jsonSerie","s","fillFromJson","idx","move","console","groupEnd","removeUndefinedValues","InstallationSummaries","jsonInstallationSummary","InstallationsStatusHistory","jsonInstallationStatusChange","response","Payload","ApiGenericResponse","httpVerb","endPoint","executeCommand","Command","ENDPOINT","clone","positionAndSizeList","p","width","Number","TableCard","ChartLine","ChartBar","ChartColumn","ChartPie","ChartRadar","ChartTimeLineComponent","ChartTimeLine","ChartHeadtGrid","ChartStacked","InstallationSummaryCard","InstallationsStatusChangesTable","application","currentSet","viewType","WidgetViewTypesEnum","PieChart","RadarChart","borderColor","TimeLineChart","LineChart","Table","BarChart","HeatGridChart","ColumnChart","StackedChart","canDownload","watch","handler","newValue","oldValue","updateWidget","JSON","stringify","fetchWidgetData","deep","widgetRef","execute","responseStatus","ApiResponseStatusEnum","Success","error","refreshTimeout","setTimeout","$vuetify","log","a","document","createElement","href","$refs","canvas","toDataURL","download","click","VAlert","VBtn","VCardActions","VCardSubtitle","VCardTitle","VCol","VHover","VRow","VSkeletonLoader","VTooltip","Dashboard","DashLayout","DashItem","WidgetCard","dlayouts","breakpointWidth","thresholds","md","numberOfCols","sm","xs","errorMessage","canDoLivePreview","currentStep","step","i","canDoPreviousStep","previousStep","canDoNextStep","nextStep","onCancelClick","onSaveClick","availableWidgetTypes","$set","availableRefreshTimeout","WidgetTypesEnum","$tc","count","licenseData","state","license","licenseModules","widgetTypes","DeviceCount","disabled","isAvailable","LicenseModuleEnum","ServiceAndUpdatesManagement","InstallationSummary","authUserHasPrivilege","StatusManagement","DeviceStatus","InstallationsStatusChanges","UpdateStatus","UpdatesManagement","CashFlowManagement","CashFlowContentMonitoring","CashDistribution","Transactions","CashFlowTransactionsReporting","VSelect","VTextField","availableViewTypes","availableIcons","widgetType","availableStatus","k","isNaN","availableCashCountViewType","availableBinType","binType","BinCountType","ByBinCount","availableBinCount","ByBinSize","availableBinSize","CashCountViewType","DistributionCount","DistributionPercentage","DistributionValue","TotalValue","cashCountViewType","availableDistributionType","CashDistributionViewType","DistributionCountAverage","DistributionCountTotal","availableCountType","availableAggregationTypes","aggregationType","availableTimeOfDayDetails","TransCountType","AverageValue","AveragePiecesCount","TotalPiecesCount","AverageOperationCount","TotalOperationCount","DenominationDistribution","AggregationTypeEnum","AggregateByTimeOfDay","AggregateByMonth","AggregateByDayOfWeek","TimelineByHours","TimelineByDay","TimelineByMonth","AbsoluteValue","DeviceStatusViewConfig","InstallationsStatusChangesTableViewConfig","CashCountViewConfig","CashDistributionViewConfig","TransactionsViewConfig","getAvailableViewType","v","mixins","directives","ClickOutside","inverseLabel","max","default","min","thumbColor","thumbLabel","Boolean","validator","thumbSize","tickLabels","tickSize","trackColor","trackFillColor","vertical","app","keyPressed","isFocused","isActive","noClick","classes","VInput","internalValue","get","set","val","roundValue","Math","trackTransition","minValue","parseFloat","maxValue","stepNumeric","inputWidth","trackFillStyles","startDir","endDir","valueDir","start","rtl","end","isDisabled","transition","trackStyles","showTicks","numTicks","showThumbLabel","$scopedSlots","computedTrackColor","validationState","computedTrackFillColor","computedThumbColor","parsed","beforeMount","genDefaultSlot","children","slider","genSlider","themeClasses","onBlur","onSliderClick","genChildren","genThumbContainer","genInput","readonly","tabindex","$attrs","genTrackContainer","setBackgroundColor","genSteps","range","direction","offsetDirection","filled","thumbLabelContent","genThumbLabelContent","genThumbLabel","setTextColor","getThumbContainerStyles","role","String","focus","blur","keydown","keyup","touchstart","mousedown","onDrag","size","transform","origin","genThumb","onThumbMouseDown","mouseUpOptions","passive","capture","mouseMoveOptions","onSliderMouseUp","onMouseMove","parseMouseMove","onKeyDown","parseKeyDown","onKeyUp","thumb","onFocus","track","trackLength","clickOffset","clickPos","isInsideTrack","trackStart","up","pageup","pagedown","home","left","right","down","steps","increase","multiplier","trimmedStep","decimals","offset","hsva","hexa","hsla","rgba","alpha","hex","hue","fromHexa","has","fromRGBA","r","g","b","oldColor","fromHSLA","fromHSVA","rest","input","hideAlpha","genAlpha","genTrack","hideDetails","backgroundImage","genSliders","genDot","background","genHue","h","render","dotSize","boundingRect","top","dot","emitColor","updateCanvas","ctx","saturationGradient","valueGradient","handleClick","$el","handleMouseDown","window","handleMouseMove","handleMouseUp","genCanvas","radius","modes","inputs","from","hideModeSwitch","mode","internalMode","currentMode","created","getValue","parseValue","changeMode","newMode","target","genInputs","maxlength","change","el","newVal","genSwitch","small","VIcon","red","base","lighten5","lighten4","lighten3","lighten2","lighten1","darken1","darken2","darken3","darken4","accent1","accent2","accent3","accent4","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","grey","shades","black","white","transparent","parseDefaultColors","fromHex","swatches","maxWidth","maxHeight","genColor","parseColor","dark","light","genSwatches","swatch","canvasHeight","flat","hideCanvas","hideInputs","showSwatches","swatchesMaxHeight","hasAlpha","immediate","updateColor","extractColor","genControls","genEdit","genPreview","VSheet","elevationClasses","VColorPicker","VMenu","ClientPrivileges","availableMachineModelsFiltered","loadingModels","addNewTagFilter","removeLastTagFilter","tagFilter","byTag","availableCashTypes","availableStockTypes","currencies","installationWorkload","StockTypeEnum","Bag","Roll","NotRecycling","availableDateRangeType","dateRangeType","DateRangeTypeEnum","Dynamic","availableDynamicDateRange","Fixed","startDateText","endDateText","dateRange","availableTransactionTypes","startDate","toISOString","substr","endDate","setUTCHours","setUTCMinutes","setUTCSeconds","TransactionTypeEnum","userDateFormat","VDatePicker","availableSws","selectedSw","showOnlyMultipleSelection","softwareVersionsSubset","setToValue","isMenuOpen","swName","onApply","setToDefault","closeMenu","radioGroup","availableSing","selectedSign","obfuscatedAvailableItems","obfuscatedVersion","selectedVersion","selectedObfuscatedVersions","singleVersion","versions","availableSoftwares","availableSoftwareVersions","swUpdateType","updateType","ComparisonOperatorEnum","LessThanOrEqualTo","GreaterThanOrEqualTo","availableSwsFilterByTypeAndName","isArray","some","sw","UpdateTypeEnum","ThirdPartySoftware","find","versionsList","setObfuscatedAvailableItems","newObfuscatedAvailableItems","setRadioGroup0SectionToDefault","setRadioGroup1SectionToDefault","comparisonOperator","EqualTo","ovTemp","ov","version","trim","softwareVersionsSubsetObjectToEmit","SoftwareVersionsSubset","VDivider","VRadio","VRadioGroup","swType","ShowOnlyMultipleSelectionSwTypeList","Firmware","SensorFirmware","SensorTemplate","SoftwareVersionsSubsetFilter","ignoreSelectedSwChanged","availableSoftwareNames","selectedVersions","bySoftware","temp","InstalledSoftware","swVersionsSubset","newSoftwareVersionsSubset","softwareVersionsSubsets","comboboxInstallations","selectedInstallation","availableInstallations","installationNames","widgetId","byInstallationName","setPreselectedItem","getDistinctInstallations","VCombobox","DeviceFolderTree","CashCountFilter","CashDistributionFilter","TransactionsFilter","SoftwareVersionsFilter","TagsFilter","InstallationSummaryFilter","availableMachineModels","Tag","pop","livePreviewEnabled","localWidget","onRefresh","canRenderWidgetCard","widgetCard","VSwitch","BaseWidgetInformationCard","WidgetViewConfigCard","WidgetPreviewCard","WidgetFilterCard","showPreview","widgetPreviewCard","fetchAndClose","VTab","VTabItem","VTabs","VTabsItems","dashboardId","params","DashboardLayout","WidgetConfiguratorCard","$route","currentBreakpoint","widgetToDuplicate","widgetToEdit","DashboardWidget","VDialog","alertMessage","formatCurrency","required","autoColor","showAlertIf","dataHandler","newData","oldData","$data","_chart","newDatasetLabels","dataset","oldDatasetLabels","oldLabels","newLabels","oldDatasetKeys","keys","newDatasetKeys","deletionKeys","attribute","deletionKey","hasOwnProperty","xLabels","yLabels","update","destroy","chartData","generateChart","chartId","chartType","styles","cssClasses","plugins","_plugins","addPlugin","plugin","generateLegend","Error","getContext","beforeDestroy","Bar","HorizontalBar","Doughnut","Line","Radar","stockTypeEnumLabel","stockType","global","factory","module","exports","createCommonjsModule","getCjsExportFromNamespace","n","colorName","conversions","reverseKeywords","convert","rgb","channels","hsl","hsv","hwb","cmyk","xyz","lab","lch","keyword","ansi16","ansi256","hcg","apple","gray","defineProperty","comparativeDistance","pow","delta","rdif","gdif","bdif","diff","diffc","w","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","z","t1","t2","t3","sv","smin","lmin","hi","floor","f","q","t","sl","vmin","wh","bl","ratio","y2","x2","z2","hr","atan2","PI","sqrt","cos","sin","args","arguments","round","ansi","mult","rem","integer","string","substring","match","colorString","split","char","join","grayscale","chroma","pure","mg","buildGraph","graph","models","len","parent","deriveBFS","fromModel","queue","current","adjacents","adjacent","node","unshift","link","to","wrapConversion","toModel","path","cur","conversion","route","wrapRaw","wrappedFn","prototype","slice","call","wrapRounded","result","routes","routeModels","raw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","abbr","per","hexAlpha","scale","vals","hexDouble","reverseNames","num","str","Color","valid","setValues","lightness","whiteness","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","concat","cmykArray","rgbaArray","hslaArray","setChannel","saturation","saturationv","blackness","magenta","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","yiq","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","prop","spaces","maxes","getValues","space","charAt","capped","chans","sname","svalues","chartjsColor","isValidKey","helpers","noop","uid","isNullOrUndef","isObject","isFinite","valueOrDefault","defaultValue","valueAtIndexOrDefault","thisArg","apply","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","create","klen","_merger","tval","sval","merge","_mergerIf","mergeIf","sources","merger","assign","dst","src","inherits","extensions","me","ChartElement","constructor","Surrogate","__super__","_deprecated","scope","previous","warn","helpers_core","callCallback","array","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clear","clearRect","roundedRect","bottom","moveTo","arc","closePath","rect","drawPoint","rotation","xOffset","yOffset","cornerRadius","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","stroke","_isPointInArea","point","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaults","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","fontStyle","resolve","context","info","cacheable","exports$2","_factorize","sort","log10","exponent","LOG10E","powerOf10","isPowerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","getAdapter","overrideTextDirection","original","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","helpers_rtl","helpers$1","easing","math","interpolate","view","ease","actual","c0","c1","Element","configuration","initialize","_type","hidden","pivot","_view","_model","_start","tooltipPosition","hasValue","isNumber","core_element","exports$3","numSteps","onAnimationProgress","onAnimationComplete","core_animation","animation","duration","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","now","animating","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","enumerable","method","object","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","getDataset","scalesOpts","xAxisID","yAxisID","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_update","_data","createMetaDataset","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_config","_cachedDataOpts","easingValue","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","inner","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","abs","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","next","percent","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","stack","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","metasets","_getMatchingVisibleMetas","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","position","tooltips","callbacks","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","listItemSpan","list","setAttribute","appendChild","createTextNode","outerHTML","legend","generateLabels","controller","onClick","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","j","isDatasetVisible","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains180","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","defaultClip","toClip","controller_line","config","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","display","circular","pointLabels","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controller_scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","core_interaction","single","nearest","intersectsItem","filterByPosition","where","pos","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","sizes","handleMaxPadding","updatePos","getMargins","marginForPositions","positions","margin","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","platform_dom","platform_dom$1","__proto__","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","property","initCanvas","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","addEventListener","eventListenerOptions","addListener","removeListener","removeEventListener","createEvent","nativeEvent","fromNativeEvent","event","throttled","ticking","createDiv","cls","className","createResizer","maxSize","resizer","expand","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","add","unwatchForRender","remove","addResizeListener","container","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","root","getRootNode","targetNode","host","getElementById","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","platform","core_plugins","_cacheId","register","unregister","getAll","notify","hook","descriptor","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","reduce","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","prefix","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","animationDuration","responsiveAnimationDuration","Chart","construct","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","unbindEvents","toBase64Image","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","configMerge","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","sign","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","niceFraction","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","srcElement","getBoundingClientRect","touches","clientX","clientY","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","thing","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","formats","startOf","endOf","_create","override","members","_date","core_adapters","core_ticks","formatters","tickValue","logDelta","tickString","maxTick","logTick","numExponential","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$a","sample","arr","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","offsets","widestLabelSize","highestLabelSize","major","minor","valueAt","first","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","spacing","getMajorIndices","skipMajors","tick","ceil","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","defaultConfig","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","unit","maxNumSpaces","maxTicks","precision","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","common","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","arrayUnique","hash","out","getMin","time","getMax","buildLookupTable","timestamps","distribution","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","labelsAdded","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","valueOf","amount","filler","propagate","mappers","visible","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","cy","computeBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","plugin_title","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","toLowerCase","transactionTypeEnumLabel","Deposit","EmptyBag","EndDay","ManualEmpty","Withdrawal","EmptyStocks","MoveToBag","Change","Refill","UserBalance","Resume","ManualRefill","ChangedContent","EmptyToBag","ManualDeposit","Payment","Transfer","CassetteCollection","VirtualSafeDeposit","VirtualSafeWithdrawal","CashInHopperCollection","reload","editedFolderTree","leaf","openAll","open","K","FOLDER_COLOR","selectedFolder","disabledNode","$store","getters","folderNames","folderTree","found","disableChildren","child","currNode","VTreeview","stockIndex","StockIndex","StockType","CashDetail","totalAmount","totQty","denomination","quantity","cashDetail","getCurrencies","getTotals","stockContents","denominations","StockContents","Denominations","Denomination","Currencies","stockContent","totalsTemp","currentTotal","singleTotal","cashDetailTemp","cashDetailStock","cashDetailRes","isEquals","MachineBag","MachineId","machineId","BagId","bagId","BagPosition","bagPosition","machineInstallationName","globalStatus","doorStatus","coverStatus","bagStatus","bundlerStatus","blockedStocks","extension","lastUpdate","maintenanceRequired","nextMaintenance","lastMaintenanceForecastsUpdate","maintenanceStatus","Regular","MachineInstallationName","MachineSerialNumber","GlobalStatus","CleaningStatus","DoorStatus","CoverStatus","BagStatus","BundlerStatus","BlockedStocks","Extension","LastUpdate","MaintenanceRequired","NextMaintenance","LastMaintenanceForecastsUpdate","MaintenanceStatus","renderChartMethod","applied","selectedTagKey","availableTags","tagName","canApply","deleteFilters","availableValues","selectedTagValues","sentTagKey","sentTagValues","buttonMode","tagValues","VProgressCircular","machineBags","ThresholdAlerts","cc","MachineBags","modules","installedModules","__webpack_require__","moduleId","getter","o","Symbol","toStringTag","__esModule","ns","wellKnownSymbol","TO_STRING_TAG","test","locals","aFunction","that","__webpack_exports__","_createForOfIteratorHelper","_arrayLikeToArray","arr2","_unsupportedIterableToArray","minLen","allowArrayLike","it","iterator","F","done","TypeError","err","normalCompletion","didErr","_e2","toIndexedObject","nativeGetOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","dispatching_1","DispatcherBase","DispatcherWrapper","EventListBase","subscription_1","Subscription","browserDetector","reporter","batchProcessor","getState","stateHandler","listenerProxy","isIE","attachEvent","getObject","contentDocument","buildCssTextString","rules","seperator","important","makeDetectable","debug","injectObject","OBJECT_STYLE","positionCheckPerformed","offsetWidth","offsetHeight","mutateDom","alterPositionStyles","removeRelativeStyles","getNumericalValue","replace","onObjectLoad","getDocument","checkForObjectDocumentTimeoutId","clearTimeout","objectElement","objectDocument","cssText","tabIndex","onload","startSize","uninstall","detachEvent","detector","isAnyIeVersion","agent","navigator","userAgent","ieVersion","undef","div","all","getElementsByTagName","innerHTML","isLegacyOpera","opera","idCount","idHandler","eventListeners","getListeners","removeAllListeners","idGenerator","getId","setId","utils","getOption","isDetectable","markAsDetectable","isBusy","busy","markBusy","quiet","attachFunction","Batch","batch","topLevel","bottomLevel","process","fns","getSize","asyncProcess","autoProcess","asyncFrameHandler","isProcessing","addFunction","processBatchAsync","processBatch","processingBatch","forceProcessBatch","localAsyncProcess","cancelFrame","requestFrame","cancel","raf","force","hasState","scrollbarSizes","getScrollbarSizes","styleId","detectionContainerClass","initDocument","targetDocument","injectScrollStyle","widthSize","heightSize","containerClass","injectStyle","styleElement","containerAnimationClass","containerAnimationActiveClass","addAnimationClass","cb","getExpandElement","childNodes","getShrinkElement","isDetached","isInDocument","ownerDocument","contains","isUnrendered","elementStyle","widthCSS","heightCSS","storeStartSize","initListeners","storeStyle","storeCurrentSize","lastWidth","lastHeight","getExpandChildElement","getWidthOffset","getHeightOffset","getExpandWidth","getExpandHeight","getShrinkWidth","getShrinkHeight","positionScrollbars","expandWidth","expandHeight","shrinkWidth","shrinkHeight","injectContainerElement","onAnimationStart","onRendered","injectScrollElements","getLeftTopBottomRightCssText","rootContainer","scrollbarWidth","scrollbarHeight","containerContainerStyle","containerStyle","expandStyle","shrinkStyle","expandChildStyle","shrinkChildStyle","containerContainer","expandChild","shrinkChild","dir","onExpandScroll","onShrinkScroll","onExpand","onShrink","registerListenersAndPositionElements","updateChildSizes","updateDetectorElements","sizeChanged","areElementsInjected","notifyListenersIfNeeded","isFirstNotify","lastNotifiedWidth","lastNotifiedHeight","handleRender","handleScroll","finalizeDomMutation","ready","install","initState","cleanState","elementUtilsMaker","listenerHandlerMaker","idGeneratorMaker","idHandlerMaker","reporterMaker","batchProcessorMaker","objectStrategyMaker","scrollStrategyMaker","isCollection","toArray","isElement","nodeType","defaultIdHandler","globalOptions","callOnAdd","detectionStrategy","eventListenerHandler","elementUtils","desiredStrategy","importantCssRules","strategyOptions","onReadyCallbacks","listenTo","onResizeCallback","elementsReady","onReadyCallback","currentScript","scripts","exec","readyState","elementResizeDetector","elementResizeDetectorMaker","erd","strategy","binding","vnode","componentInstance","detail","elm","dispatchEvent","CustomEvent","unbind","Vue","directive","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","rawName","createForOfIteratorHelper","_typeof","classCallCheck","createClass","Dashboard_model_Dashboard","_ref","autoHeight","_layouts","_autoHeight","_width","breakpoints","matching","setpoint","_this","_step","bp","_iterator","updateCurrentBreakpoint","ah","updateLayouts","vue_element_resize_detector_common","watchProp","Dashboardvue_type_script_lang_js_","inheritAttrs","rlocal","provide","$dashboard","createPropWatchers","_this2","$props","$watch","components_Dashboardvue_type_script_lang_js_","componentNormalizer","fails","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","$forEach","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","callbackfn","getBuiltIn","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","V8_VERSION","SPECIES","METHOD_NAME","foo","isOnce","isExecuted","executeAsync","toInteger","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","internalObjectKeys","enumBugKeys","hiddenKeys","cssWithMappingToString","useSourceMap","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sourceRoot","sourceMap","base64","unescape","encodeURIComponent","mediaQuery","dedupe","alreadyImportedModules","_i","$","notARegExp","requireObjectCoercible","correctIsRegExpLogic","proto","searchString","anObject","flags","TO_STRING","RegExpPrototype","RegExp","nativeToString","NOT_GENERIC","INCORRECT_NAME","R","unsafe","classObj","resizeHandleSize","zIndex","resizableZIndex","objectSpread2","domObjects","init","DocumentFragment","SVGElement","SVGSVGElement","SVGElementInstance","HTMLElement","Event","Touch","PointerEvent","blank","utils_domObjects","win","MSPointerEvent","isWindow","Window","realWindow","getWindow","window_init","wrap","utils_window","is_window","docFrag","func","number","bool","is_element","_window","nodeName","plainObject","is","browser","browser_init","supportsTouch","supportsPointerEvent","isIOS7","isIOS","isIe9","isOperaMobile","prefixedMatchesSelector","pEventTypes","wheelEvent","DocumentTouch","pointerEnabled","appVersion","appName","over","utils_browser","dest","ret","lastTime","raf_init","cancelAnimationFrame","vendors","vendor","currTime","timeToCall","token","normalize","search","acc","combinedTypes","fireUntilImmediateStopped","immediatePropagationStopped","Eventable_Eventable","propagationStopped","eventList","subListener","nodeContains","closest","selector","matchesSelector","getParent","indexOfDeepestElement","deepestNodeIndex","deepestNodeParents","currentNode","deepestNode","currentNodeParent","deepestNodeParent","zIndexIsHigherThan","ancestryStart","getNodeParents","ownerSVGElement","currentNodeParents","commonIndex","parents","lastChild","previousSibling","limit","parentParent","higherNode","lowerNode","higherIndex","lowerIndex","matchesUpTo","getActualElement","correspondingUseElement","getScrollXY","relevantWindow","scrollX","documentElement","scrollY","getElementClientRect","clientRect","getClientRects","getElementRect","scroll","trySelector","querySelector","getStringOptionResult","getRect","resolveRectLike","functionArgs","returnValue","rectToXY","addEdges","edges","getOriginXY","actionName","actionOptions","actionOrigin","originRect","hypot","BaseEvent","interaction","currentTarget","interactable","_interaction","timeStamp","_proxy","defaultOptions_defaults","preventDefault","deltaSource","perAction","actions","InteractEvent_InteractEvent","phase","preEnd","super","relatedTarget","screenX","screenY","button","buttons","ctrlKey","shiftKey","altKey","metaKey","page","client","x0","y0","t0","dt","clientX0","clientY0","velocity","speed","swipe","dragEnter","dragLeave","axes","starting","ending","prevEvent","coords","pointers","downTime","getSwipe","velocityY","velocityX","overlap","isNonNativeEvent","phaselessTypes","phases","defineProperties","pageX","pageY","dx","dy","Interactable_Interactable","defaultContext","scopeEvents","_actions","_context","_win","_doc","_scopeEvents","_rectChecker","onstart","onmove","onend","oninertiastart","off","optionName_","optionName","optionValue","updatePerActionListeners","checker","action","_backCompatOption","eventTarget","testIgnore","ignoreFrom","testAllow","allowFrom","iEvent","fire","typeArg","listenerArg","addRemove","_onOff","actionName_","methodDict","methodName","setPerAction","setting","delegatedEvents","delegated","removeDelegate","InteractableSet_InteractableSet","selectorMap","addListeners","targetMappings","targetIndex","Interactable","mappingInfo","addDocument","isSelector","inContext","pointerExtend","prefixedPropREs","webkit","moz","utils_pointerExtend","copyCoords","setCoordDeltas","targetObj","setCoordVelocity","setZeroCoords","isNativePointer","pointer","getXY","xy","getPageXY","getClientXY","getPointerId","pointerId","identifier","setCoords","pointerAverage","tmpXY","getTouchPair","changedTouches","touchBBox","touchDistance","sourceX","sourceY","touchAngle","getPointerType","pointerType","getEventTargets","composedPath","newCoords","targets","documents","eventsMethods","addDelegate","delegateListener","delegateUseCapture","supportsOptions","supportsPassive","optionalArg","getOptions","typeIsEmpty","typeListeners","doc","delegates","delegate","matchFound","fakeEvent","events_FakeEvent","stopPropagation","stopImmediatePropagation","createInteractStatic","interact","interactables","new","globalEvents","getPointerAverage","getTouchBBox","getTouchDistance","getTouchAngle","use","usePlugin","isSet","eventType","interactions","pointerMoveTolerance","removeDocument","warnOnce","message","warned","copyAction","PointerInfo","downTarget","_ProxyValues","_ProxyMethods","idCounter","Interaction_Interaction","scopeFire","_rects","_scopeFire","prepared","downEvent","downPointer","_latestPointer","pointerIsDown","pointerWasMoved","_interacting","_ending","_stopped","simulation","doMove","signalArg","pointerIndex","updatePointer","pointerInfo","interacting","_doPhase","modification","endResult","duplicateMove","getPointerIndex","duplicate","curEventTarget","removePointer","endPhaseResult","curPointer","_now","_updateLatestPointer","beforeResult","_createPreparedEvent","_fireEvent","core_Interaction","checkAndPreventDefault","docOptions","getDocOptions","onInteractionEvent","interactablePreventDefault_install","docEvents","interactablePreventDefault","finder","methodOrder","details","allowResume","firstNonActive","hasPointerId","gesture","interactionFinder","methodNames","interactions_install","doOnInteractions","releasePointersOnRemovedEls","pointerDown","pointerMove","pointerUp","documentBlur","prevTouchTime","arg","changedTouch","searchDetails","getInteraction","invalidPointer","foundInteraction","onDocSignal","eventMethodName","eventMethod","eventOptions","interactions_interactions","core_interactions","scope_Scope","random","isInitialized","listenerMaps","Eventable","interactStatic","InteractEvent","onWindowUnload","unset","initScope","pluginIsInstalled","pluginIdRoot","otherId","getDocIndex","docIndex","interact_scope","interact_interact","_interactjs_interact","interact_init","plugin_install","draggable","drag","beforeMove","opposite","plugin_draggable","setOnEvents","lockAxis","startAxis","dragOptions","mouseButtons","drag_plugin","DropEvent_DropEvent","dropState","dragEvent","dropzone","rejected","enter","activeDrops","deactivateEvent","drop_plugin_install","dropzoneMethod","dropCheck","draggableElement","dropElement","dropCheckMethod","dynamicDrop","dragenter","dragleave","dropactivate","dropdeactivate","dropmove","drop","collectDrops","drops","accept","dropElements","querySelectorAll","dropzoneElement","fireActivationEvents","getActiveDrops","dragElement","activeDrop","getDrop","pointerEvent","validDrops","dropIndex","getDropEvents","_pointerEvent","dropEvents","leave","activate","deactivate","prevDropzone","dragmove","fireDropEvents","onEventCreated","dropResult","normalized","corrected","correctedType","ondrop","ondropactivate","ondropdeactivate","ondragenter","ondragleave","ondropmove","dropped","dropOverlap","dragRect","overlapArea","overlapRatio","drop_plugin","gesture_plugin_install","gesturable","updateGestureProps","da","startDistance","gestureOptions","gesture_plugin","resize_plugin_install","cursors","initCursors","defaultMargin","resizable","resizeChecker","resizeOptions","resizeEdges","checkResizeEdge","preserveAspectRatio","square","interactableElement","topleft","bottomright","topright","bottomleft","resizeEvent","deltaRect","plugin_move","invert","invertible","startRect","updateEventAxes","resizeAxes","cursorKey","resize_plugin","actions_plugin","InteractableMethods_install","getAction","defaultActionChecker","actionChecker","styleCursor","0","1","3","4","__warnedUseImport","InteractableMethods","base_install","manualStart","maxPerElement","maxInteractions","autoStart","withinInteractionLimit","cursorElement","prepareOnDown","actionInfo","getActionInfo","prepare","prepareOnMove","startOnMove","setInteractionCursor","clearCursorOnStop","setCursor","validateAction","testIgnoreAllow","validateMatches","matchElements","matchElement","matchAction","pushMatches","forEachMatch","maxActions","autoStartMax","activeInteractions","interactableCount","elementCount","otherAction","prevCursorElement","cursorChecker","getCursor","beforeStart","absX","absY","targetOptions","currentAxis","getDraggable","checkStartAxis","thisAxis","dragAxis","hold_install","hold","delay","getHoldDuration","autoStartHoldTimer","auto_start_plugin","DashItem_model","Layout_model","EMIT_PROPS","watchEmitProp","DashItemvue_type_script_lang_js_","minWidth","minHeight","draggableZIndex","moveHold","resizeHold","dragAllowFrom","dragIgnoreFrom","locked","inject","$layout","$item","interactInstance","dragging","resizing","unWatch","resizingOrDragging","cssTransforms","useCssTransforms","widthPx","heightPx","cssStyle","cssTransform","cssTopLeft","resizeTop","resizeBottom","resizeLeft","resizeRight","resizeTopLeft","resizeBottomLeft","resizeTopRight","resizeBottomRight","setDraggable","onMoveStart","onMove","onMoveEnd","setResizable","_this3","onResizeStart","onResizeEnd","_onMoveStart","toItem","_onMove","_onMoveEnd","_onResizeStart","_onResize","_onResizeEnd","_this4","createDashItemWatchers","_this5","addDashItem","removeDashItem","components_DashItemvue_type_script_lang_js_","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","C_Projects_WEBSITE_vue_responsive_dash_node_modules_vue_cli_plugin_babel_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__","C_Projects_WEBSITE_vue_responsive_dash_node_modules_vue_cli_plugin_babel_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__","ste_simple_events__WEBPACK_IMPORTED_MODULE_2__","colWidth","rowHeight","_moved","_hover","_moving","_resizing","_onMoveStartEventDispatcher","_onMoveEventDispatcher","_onMoveEndEventDispatcher","_onResizeStartEventDispatcher","_onResizeEventDispatcher","_onResizeEndEventDispatcher","_colWidth","_rowHeight","_margin","_x","_left","getLeftFromX","_y","_top","getTopFromY","_minWidth","_maxWidth","_minHeight","_maxHeight","_height","_widthPx","getWidthInPx","_heightPx","getHeightInPx","_draggable","_resizable","_resizeEdges","_resizeHandleSize","_moveHold","_resizeHold","_locked","updatePositionAndSize","dispatch","mW","checkSizeLimits","dh","rh","rhs","asEvent","WebkitTransform","MozTransform","msTransform","OTransform","_DashItem_vue__WEBPACK_IMPORTED_MODULE_3__","_DashLayout_vue__WEBPACK_IMPORTED_MODULE_4__","_Dashboard_vue__WEBPACK_IMPORTED_MODULE_5__","VueResponsiveDash","installed","GlobalVue","v8","_defineProperties","writable","_createClass","Constructor","protoProps","staticProps","classof","Iterators","definePropertyModule","objectKeys","Properties","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","propertyIsEnumerable","UNSCOPABLES","ArrayPrototype","MATCH","isRegExp","getOwnPropertySymbols","listToStyles","parentId","newStyles","media","part","parts","addStylesClient","hasDocument","DEBUG","stylesInDom","singletonElement","singletonCounter","isProduction","ssrIdKey","isOldIE","_isProduction","addStylesToDom","newList","mayRemove","domStyle","refs","addStyle","createStyleElement","styleIndex","applyToSingletonTag","applyToTag","newObj","replaceText","textStore","replacement","styleSheet","cssNode","ssrId","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","C","argumentsLength","mapfn","mapping","iteratorMethod","argument","placeholderId","placeholderY","placeholderHeight","placeholderMaxWidth","placeholder","itemsFromLayout","DashLayoutvue_type_script_lang_js_","compact","maxRowHeight","minRowHeight","maxColWidth","minColWidth","itemBeingDragged","itemBeingResized","_this$l","_this$$attrs","initialItems","addLayoutInstance","removeLayoutInstance","components_DashLayoutvue_type_script_lang_js_","IS_PURE","store","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DashItem_vue_vue_type_style_index_0_id_2ce8db4c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DashItem_vue_vue_type_style_index_0_id_2ce8db4c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","whitespaces","whitespace","ltrim","rtrim","TYPE","bitmap","CONVERT_TO_STRING","S","charCodeAt","codeAt","originalArray","NATIVE_WEAK_MAP","objectHas","sharedKey","WeakMap","enforce","wmget","wmhas","wmset","STATE","inspectSource","enforceInternalState","TEMPLATE","simple","Function","setPrototypeOf","dummy","Wrapper","NewTarget","NewTargetPrototype","wrappedWellKnownSymbolModule","NAME","activeXDocument","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","close","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","domain","ActiveXObject","__extends","extendStatics","__","SimpleEventHandlingBase","SimpleEventList","NonUniformSimpleEventList","SimpleEventDispatcher","ste_core_1","_super","_dispatch","dispatchAsync","_events","createDispatcher","subscribe","sub","one","unsubscribe","unsub","createIteratorConstructor","getPrototypeOf","setToStringTag","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","EventManagement","propertyKey","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","getCurrentScript","pageSource","inlineScriptSourceRegExp","inlineScriptSource","ieStackRegExp","ffStackRegExp","stackDetails","scriptLocation","currentLocation","location","functionToString","postfix","feature","detection","POLYFILL","NATIVE","returnMethod","nativeDefineProperty","Attributes","arraySpeciesCreate","ACCESSORS","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","A","actualStart","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","shared","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","symbol","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","IS_OBJECT_PROTOTYPE","setter","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","replacer","$replacer","checkCorrectnessOfIteration","INCORRECT_ITERATION","iterable","inheritIfRequired","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","third","radix","maxCode","digits","code","NumberWrapper","regexp","_classCallCheck","instance","ignoreCase","multiline","dotAll","unicode","sticky","thrower","argument0","argument1","PrototypeOfArrayIteratorPrototype","arrayIterator","TO_STRING_TAG_SUPPORT","FunctionPrototype","FunctionPrototypeToString","nameRE","_objectSpread2","_defineProperty","ownKeys","enumerableOnly","symbols","getOwnPropertyDescriptors","createWellKnownSymbol","withoutSetter","nativeKeys","FAILS_ON_PRIMITIVES","IndexedObject","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","boundFunction","every","PREFERRED_STRING","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DashLayout_vue_vue_type_style_index_0_id_52e92723_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DashLayout_vue_vue_type_style_index_0_id_52e92723_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","SHARED","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","$includes","EXISTS","variable","namespace","NASHORN_BUG","___CSS_LOADER_API_IMPORT___","Layout","C_Projects_WEBSITE_vue_responsive_dash_node_modules_vue_cli_plugin_babel_node_modules_babel_runtime_helpers_esm_createForOfIteratorHelper__WEBPACK_IMPORTED_MODULE_8__","C_Projects_WEBSITE_vue_responsive_dash_node_modules_vue_cli_plugin_babel_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_9__","C_Projects_WEBSITE_vue_responsive_dash_node_modules_vue_cli_plugin_babel_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_10__","_DashItem_model__WEBPACK_IMPORTED_MODULE_11__","_itemBeingDragged","_itemBeingResized","_initalItemIds","_dashItems","_dragStartListeners","_dragListeners","_dragEndListeners","_resizeStartListeners","_resizeListeners","_resizeEndListeners","_breakpoint","_numberOfCols","_breakpointWidth","_useCssTransforms","_minRowHeight","_maxRowHeight","_minColWidth","_maxColWidth","_compact","bottomY","updateDashItems","unDragStart","itemDragging","unDrag","unDragEnd","itemDraggingComplete","unResizeStart","itemResizing","unResize","unResizeEnd","itemResizingComplete","compactLayout","syncItems","initialItemIdIndex","itemsCopy","placeholderIndex","moveItem","getXFromLeft","getYFromTop","dashItem","getDashItemById","getWidthFromPx","getHeightFromPx","d2","_step2","_iterator2","checkForCollision","correctItemBounds","_this6","sorted","sortItems","compareWith","getLockedItems","compactItem","moved","getFirstCollision","collides","isUserAction","_this7","movingUp","_step3","collisions","getAllCollisions","_iterator3","_loop2","collision","collisionIndex","moveItemFromCollision","colllidesWith","itemToMove","fakeItem","_this8","fromItem","bw","calculateWidth","calculateHeight","mrh","rH","mcw","colWidthCalc","ibd","ibr","uct","keepSquare","aPossiblePrototype","CORRECT_SETTER","TAG","$map","check","globalThis","ArrayIteratorMethods","ArrayValues","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","desc","__spreadArrays","il","jl","management_1","_wrap","_subscriptions","_loop_1","ev","nargs","this_1","cleanup","_a","state_1","dispatcher","_subscribe","_unsubscribe","_one","_has","_clear","_count","CORRECT_PROTOTYPE_GETTER","ARRAY_ITERATOR","kind","Arguments","simple_events_1","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","nativeSlice","fin","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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","file":"js/chunk_app_dashboard_view.817c929b.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.dashboard)?_c('app-page',{attrs:{\"pageTitle\":_vm.dashboard.title,\"icon\":'fa-' + _vm.dashboard.icon,\"color\":\"primary\"}},[_c('template',{slot:\"actions\"},[(!_vm.tvMode)?_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":function($event){return _vm.addNewWidget()}}},[_c('v-fa-icon',{attrs:{\"icon\":\"plus\"}})],1):_vm._e()],1),_c('DashboardLayout',{attrs:{\"dashboard\":_vm.dashboard},on:{\"edit\":function($event){return _vm.onEdit($event)},\"duplicate\":function($event){return _vm.duplicateWidget($event)},\"delete\":function($event){return _vm.deleteWidget($event)}}}),_c('v-dialog',{model:{value:(_vm.showWidgetConfiguratorDialog),callback:function ($$v) {_vm.showWidgetConfiguratorDialog=$$v},expression:\"showWidgetConfiguratorDialog\"}},[_c('WidgetConfiguratorCard',{attrs:{\"widget\":_vm.tempWidget,\"isNew\":_vm.isNewWidget},on:{\"fetch\":function($event){return _vm.fetchDashboard()},\"close\":function($event){_vm.showWidgetConfiguratorDialog = false}}})],1)],2):_c('app-page',{attrs:{\"pageTitle\":_vm.dashboardNotAvailable ? '' : _vm.$t('common.loading_data') + '..',\"icon\":_vm.dashboardNotAvailable ? '' : 'fa-spinner fa-spin',\"color\":\"primary\"}},[_c('v-row',[_c('v-spacer'),_c('v-col',{staticClass:\"text-center\"},[(_vm.dashboardNotAvailable)?_c('v-alert',{attrs:{\"type\":\"error\",\"text\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"dashboard.notAvailable\"))+\". \")]):_vm._e()],1),_c('v-spacer')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render, staticRenderFns\nimport script from \"./ChartBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartBar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('Dashboard',{attrs:{\"id\":\"dashboard\"}},_vm._l((_vm.dlayouts),function(layout){return _c('DashLayout',_vm._b({key:layout.breakpoint,attrs:{\"debug\":false}},'DashLayout',layout,false),_vm._l((_vm.dashboard.widgets),function(widget,index){return _c('DashItem',_vm._b({key:widget.id},'DashItem',_vm.dashboard.widgets[index],false,true),[_c('WidgetCard',{attrs:{\"widget\":widget},on:{\"edit\":function($event){return _vm.$emit('edit', $event)},\"duplicate\":function($event){return _vm.$emit('duplicate', $event)},\"delete\":function($event){return _vm.$emit('delete', $event)}}})],1)}),1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar hover = ref.hover;\nreturn [_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"height\":\"100%\",\"elevation\":hover ? 12 : 2}},[_c('v-skeleton-loader',{class:_vm.loading ? 'ma-3' : '',attrs:{\"loading\":_vm.loading,\"type\":\"paragraph, image\"}},[_c('v-row',{staticClass:\"mx-0\"},[_c('v-col',{staticClass:\"py-0\"},[_c('v-card-title',[_c('v-fa-icon',{staticClass:\"mr-2\",attrs:{\"icon\":_vm.widget.viewConfig.icon,\"color\":_vm.widget.viewConfig.color,\"s\":\"\"}}),_vm._v(\" \"+_vm._s(_vm.widget.title)+\" \")],1),_c('v-card-subtitle',{staticClass:\"pb-0\"},[_vm._v(\" \"+_vm._s(_vm.widget.description)+\" \")])],1),(!_vm.tvMode)?_c('v-col',{staticClass:\"flex-grow-0 flex-shrink-0 pa-2 ma-0\"},[_c('span',{staticClass:\"d-flex\"},[(hover && !_vm.isPreview)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.downloadChart()}}},on),[_c('v-fa-icon',{attrs:{\"icon\":\"download\",\"small\":\"\"}})],1)]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"dashboard.saveChart\"))+\" \")])]):_vm._e(),(hover && !_vm.isPreview)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.$emit('duplicate', _vm.widget)}}},on),[_c('v-fa-icon',{attrs:{\"icon\":\"copy\",\"small\":\"\"}})],1)]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"dashboard.duplicateWidget\"))+\" \")])]):_vm._e(),(hover && !_vm.isPreview)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.$emit('edit', _vm.widget)}}},on),[_c('v-fa-icon',{attrs:{\"icon\":\"edit\",\"small\":\"\"}})],1)]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"dashboard.edit_widget\"))+\" \")])]):_vm._e(),(hover && !_vm.isPreview)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.$emit('delete', _vm.widget)}}},on),[_c('v-fa-icon',{attrs:{\"icon\":\"trash\",\"small\":\"\"}})],1)]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"dashboard.deleteWidget\"))+\" \")])]):_vm._e()],1)]):_vm._e()],1)],1),(_vm.widgetData && !_vm.loading && _vm.widgetData.status == 1)?_c(_vm.currentComponent,{ref:\"chart\",tag:\"component\",staticClass:\"px-4 pb-3\",style:({ overflow: 'hidden', height: '100%' }),attrs:{\"datasets\":_vm.datasets,\"labels\":_vm.widgetData.labels,\"installationSummaries\":_vm.widgetData.installationSummaries,\"installationsStatusHistory\":_vm.widgetData.installationsStatusHistory,\"title\":_vm.widget.title,\"filters\":_vm.widget.filter}}):_vm._e(),(_vm.widgetData && !_vm.loading && _vm.widgetData.status != 1)?_c('v-card-text',[_c('v-alert',{attrs:{\"text\":\"\",\"border\":\"left\",\"color\":\"error\"}},[_c('span',{domProps:{\"textContent\":_vm._s(_vm.widgetData.statusMessage)}})])],1):_vm._e(),_c('v-card-actions',[_vm._t(\"actions\")],2)],1)]}}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue, { PropType } from \"vue\";\r\nimport { Bar, HorizontalBar } from \"vue-chartjs\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nexport default Vue.extend({\r\n extends: HorizontalBar,\r\n data() {\r\n return {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: {\r\n xAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n props: {\r\n datasets: Array,\r\n labels: Array,\r\n },\r\n computed: {\r\n chartdata() {\r\n return {\r\n labels: this.labels,\r\n datasets: this.datasets,\r\n };\r\n },\r\n },\r\n mounted() {\r\n this.renderChart(this.chartdata, this.options);\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBar.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"d-flex justify-center align-center text-h4\",attrs:{\"flat\":\"\"}},[(_vm.isCurrencyVulue)?_c('ColoredCurrencyTextField',{staticClass:\"ma-0 pa-0\",attrs:{\"currency\":_vm.filters.currency,\"value\":_vm.numberValue,\"autoColor\":\"\"}}):_c('span',{staticClass:\"ma-0 pa-0\",domProps:{\"textContent\":_vm._s(_vm.numberValue)}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport ColoredCurrencyTextField from \"@/components/ColoredCurrencyTextField.vue\";\r\n\r\nexport default Vue.extend({\r\n components: {\r\n ColoredCurrencyTextField,\r\n },\r\n props: {\r\n datasets: Array,\r\n filters: Object,\r\n },\r\n computed: {\r\n isCurrencyVulue() {\r\n return this.filters && this.filters.currency && this.filters.currency.length > 0;\r\n },\r\n numberValue() {\r\n var res = null;\r\n\r\n if (this.datasets && this.datasets.length > 0) {\r\n if (this.datasets[0].data && this.datasets[0].data.length > 0) res = this.datasets[0].data[0];\r\n }\r\n\r\n return res;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Number.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Number.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Number.vue?vue&type=template&id=db84c654&\"\nimport script from \"./Number.vue?vue&type=script&lang=ts&\"\nexport * from \"./Number.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-data-table',{staticClass:\"mt-3\",attrs:{\"dense\":\"\",\"headers\":_vm.headers,\"items\":_vm.items}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\r\nimport Vue from \"vue\";\r\n\r\nexport default Vue.extend({\r\n props: {\r\n datasets: Array,\r\n labels: Array,\r\n },\r\n computed: {\r\n headers() {\r\n return [{ text: \"Name\", value: \"Name\" }, ...this.datasets.map((c) => ({ text: c.label, value: c.label }))];\r\n },\r\n items: function() {\r\n var res = [];\r\n this.labels.forEach((l, index) => {\r\n var item = { Name: l };\r\n this.datasets.forEach((d) => {\r\n item[d.label] = d.data[index];\r\n });\r\n res.push(item);\r\n });\r\n return res;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TableCard.vue?vue&type=template&id=535743fb&\"\nimport script from \"./TableCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./TableCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VDataTable})\n","var render, staticRenderFns\nimport script from \"./ChartColumn.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartColumn.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render, staticRenderFns\nimport script from \"./ChartPie.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartPie.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render, staticRenderFns\nimport script from \"./ChartRadar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartRadar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render, staticRenderFns\nimport script from \"./ChartTimeLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartTimeLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport Vue, { PropType } from \"vue\";\r\nimport { Bar, HorizontalBar } from \"vue-chartjs\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nexport default Vue.extend({\r\n extends: Bar,\r\n data() {\r\n return {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n props: {\r\n datasets: Array,\r\n labels: Array,\r\n },\r\n computed: {\r\n chartdata() {\r\n return {\r\n labels: this.labels,\r\n datasets: this.datasets,\r\n };\r\n },\r\n },\r\n mounted() {\r\n this.renderChart(this.chartdata, this.options);\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartColumn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartColumn.vue?vue&type=script&lang=ts&\"","\r\nimport Vue, { PropType } from \"vue\";\r\nimport { Bar, Doughnut, HorizontalBar, Line } from \"vue-chartjs\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nexport default Vue.extend({\r\n extends: Doughnut,\r\n data() {\r\n return {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n },\r\n };\r\n },\r\n props: {\r\n datasets: Array,\r\n labels: Array,\r\n },\r\n computed: {\r\n chartdata() {\r\n return {\r\n labels: this.labels,\r\n datasets: this.datasets,\r\n };\r\n },\r\n },\r\n mounted() {\r\n this.renderChart(this.chartdata, this.options);\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=ts&\"","\r\nimport Vue, { PropType } from \"vue\";\r\nimport { Bar, Doughnut, HorizontalBar, Line, Radar } from \"vue-chartjs\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nexport default Vue.extend({\r\n extends: Radar,\r\n data() {\r\n return {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n },\r\n };\r\n },\r\n props: {\r\n datasets: Array,\r\n labels: Array,\r\n },\r\n computed: {\r\n chartdata() {\r\n return {\r\n labels: this.labels,\r\n datasets: this.datasets,\r\n };\r\n },\r\n },\r\n mounted() {\r\n this.renderChart(this.chartdata, this.options);\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartRadar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartRadar.vue?vue&type=script&lang=ts&\"","\r\nimport Vue, { PropType } from \"vue\";\r\nimport moment from \"moment\";\r\nimport { Line } from \"vue-chartjs\";\r\nimport _ from \"lodash\";\r\n\r\nexport default Vue.extend({\r\n extends: Line,\r\n data() {\r\n return {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n elements: {\r\n line: {\r\n fill: true,\r\n },\r\n },\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"time\",\r\n ticks: {\r\n source: \"auto\",\r\n },\r\n // time: {\r\n // displayFormats: {\r\n // hour: \"HH:mm | DD MMM\",\r\n // },\r\n // },\r\n },\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n props: {\r\n datasets: Array,\r\n labels: Array,\r\n },\r\n computed: {\r\n chartdata() {\r\n return {\r\n labels: this.labels.map((l) =>\r\n moment(new Date(parseInt(l)))\r\n .subtract(moment().utcOffset(), \"minutes\")\r\n .toDate()\r\n .getTime()\r\n ),\r\n datasets: this.datasets,\r\n };\r\n },\r\n },\r\n mounted() {\r\n \r\n \r\n this.renderChart(this.chartdata, this.options);\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartTimeLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartTimeLine.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.chartOptions.xaxis.categories != null)?_c('v-card-text',[_c('apexchart',{attrs:{\"width\":\"100%\",\"height\":\"auto\",\"type\":\"heatmap\",\"options\":_vm.chartOptions,\"series\":_vm.chartSeries}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nimport { WidgetData } from \"@/model/data/dashboard/WidgetData\";\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\n\r\nexport default Vue.extend({\r\n props: {\r\n data: Object as PropType,\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n chartOptions() {\r\n return {\r\n chart: {\r\n id: \"vuechart-heatgrid\",\r\n },\r\n xaxis: {\r\n categories: this.data.labels,\r\n type: \"category\",\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n style: {\r\n colors: [\"#000\"],\r\n },\r\n },\r\n plotOptions: {\r\n heatmap: {\r\n distributed: false,\r\n enableShades: true,\r\n },\r\n },\r\n };\r\n },\r\n chartSeries() {\r\n return _.map(this.data.series, (serie) => {\r\n return {\r\n name: serie.name,\r\n data: serie.values,\r\n };\r\n });\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartHeatGrid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartHeatGrid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartHeatGrid.vue?vue&type=template&id=ee997f8e&\"\nimport script from \"./ChartHeatGrid.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartHeatGrid.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCardText } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCardText})\n","\r\nimport Vue, { PropType } from \"vue\";\r\nimport { Bar, HorizontalBar } from \"vue-chartjs\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nexport default Vue.extend({\r\n extends: HorizontalBar,\r\n data() {\r\n return {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: {\r\n x: { stacked: true },\r\n y: { stacked: true },\r\n xAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n props: {\r\n datasets: Array,\r\n labels: Array,\r\n },\r\n computed: {\r\n chartdata() {\r\n return {\r\n labels: this.labels,\r\n datasets: this.datasets,\r\n };\r\n },\r\n },\r\n mounted() {\r\n this.renderChart(this.chartdata, this.options);\r\n },\r\n});\r\n","var render, staticRenderFns\nimport script from \"./ChartStacked.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartStacked.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartStacked.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartStacked.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.installation)?_c('v-card',{staticClass:\"d-flex align-center mx-3\",staticStyle:{\"padding-bottom\":\"0px !important\"},attrs:{\"flat\":\"\",\"color\":_vm.backgroundColor}},[(_vm.showThresholdAlert)?_c('v-chip',{attrs:{\"color\":\"warning\"}},[(_vm.showBacknotesIcon)?_c('v-fa-icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"money-bill-wave\",\"small\":\"\",\"dark\":\"\"}}):_vm._e(),(_vm.showCoinsIcon)?_c('v-fa-icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"coins\",\"small\":\"\",\"dark\":\"\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t(\"deviceContent.contentAlert\"))+\" \")],1):(_vm.showNeedCleaning)?_c('v-chip',{attrs:{\"color\":\"warning\"}},[_c('v-fa-icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"exclamation-triangle\",\"small\":\"\",\"dark\":\"\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"common.needCleaning\"))+\" \")],1):_c('GlobalStatusInstallationChip',{staticClass:\"text-h6\",attrs:{\"status\":_vm.installation.status,\"outlined\":false,\"medium\":\"\"}}),_c('v-spacer'),_vm._l((_vm.images),function(image,id){return _c('v-img',{key:id,staticClass:\"ml-1\",attrs:{\"src\":image,\"contain\":\"\",\"aspect-ratio\":\"1\",\"height\":\"100%\"}})})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\n\r\n// Vue components\r\nimport GlobalStatusInstallationChip from \"@/views/App/Components/chips/GlobalStatusInstallationChip.vue\";\r\n\r\n// Model\r\nimport { getImageFromModel_200 } from \"@/utility/Constants\";\r\nimport { MachineContent } from \"@/model/data/content/MachineContent\";\r\nimport { MachineStatus } from \"@/model/data/status/MachineStatus\";\r\nimport { CleaningStatusTypeEnum } from \"@/model/data/status/CleaningStatusTypeEnum\";\r\nimport { InstallationStatusEnum } from \"../../../../model/data/status/InstallationStatusEnum\";\r\nimport VFaIcon from \"@/components/VFaIcon.vue\";\r\nimport { Machine } from \"@/model/data/Machine\";\r\nimport { CashTypeEnum } from \"@/model/data/enums/CashTypeEnum\";\r\n\r\nexport default Vue.extend({\r\n components: {\r\n GlobalStatusInstallationChip,\r\n VFaIcon,\r\n },\r\n data() {\r\n return {\r\n InstallationStatusEnum,\r\n };\r\n },\r\n props: [\"installationSummaries\"],\r\n computed: {\r\n installation() {\r\n if (this.installationSummaries != null && this.installationSummaries.length > 0) return this.installationSummaries[0];\r\n else return null;\r\n },\r\n\r\n isInLane() {\r\n return this.installation.machines.length > 0 && this.installation.machines[0].model && this.installation.machines[0].model.includes(\"InLane\");\r\n },\r\n\r\n images() {\r\n var res = [];\r\n if (this.isInLane) res.push(this.getImageFromModel_200(this.installation.machines[0].model));\r\n else\r\n this.installation.machines.forEach((machine) => {\r\n res.push(this.getImageFromModel_200(machine.model, machine.supportedCashType));\r\n });\r\n return res;\r\n },\r\n\r\n showThresholdAlert() {\r\n var res = false;\r\n if (this.installation.contentMachines != null) {\r\n this.installation.contentMachines.forEach((ms: MachineContent) => {\r\n if (ms.thresholdAlerts != null && ms.thresholdAlerts.length > 0) res = true;\r\n });\r\n }\r\n // if (Math.floor(Math.random() * 8)) return false; // DEBUG\r\n return res;\r\n },\r\n\r\n showBacknotesIcon() {\r\n var res = false;\r\n if (this.installation.machines != null) {\r\n this.installation.machines\r\n .filter((m: Machine) => m.supportedCashType == CashTypeEnum.Banknote)\r\n .forEach((m: Machine) => {\r\n if (this.installation.contentMachines != null) {\r\n this.installation.contentMachines\r\n .filter((ms: MachineContent) => ms.machineSerialNumber == m.serialNumber)\r\n .forEach((ms: MachineContent) => {\r\n if (ms.thresholdAlerts != null && ms.thresholdAlerts.length > 0) res = true;\r\n });\r\n }\r\n });\r\n }\r\n return res;\r\n },\r\n\r\n showCoinsIcon() {\r\n var res = false;\r\n if (this.installation.machines != null) {\r\n this.installation.machines\r\n .filter((m: Machine) => m.supportedCashType == CashTypeEnum.Coin)\r\n .forEach((m: Machine) => {\r\n if (this.installation.contentMachines != null) {\r\n this.installation.contentMachines\r\n .filter((ms: MachineContent) => ms.machineSerialNumber == m.serialNumber)\r\n .forEach((ms: MachineContent) => {\r\n if (ms.thresholdAlerts != null && ms.thresholdAlerts.length > 0) res = true;\r\n });\r\n }\r\n });\r\n }\r\n return res;\r\n },\r\n\r\n showNeedCleaning() {\r\n var res = false;\r\n if (this.installation.statusMachines != null) {\r\n this.installation.statusMachines.forEach((ms: MachineStatus) => {\r\n if (ms.cleaningStatus == CleaningStatusTypeEnum.Necessary) res = true;\r\n });\r\n }\r\n\r\n // if (Math.floor(Math.random() * 8)) return false; // DEBUG\r\n return res;\r\n },\r\n\r\n backgroundColor() {\r\n if (this.showThresholdAlert || this.showNeedCleaning) return \"warning lighten-3\";\r\n switch (this.installation.status as InstallationStatusEnum) {\r\n case InstallationStatusEnum.Warning:\r\n return \"warning lighten-3\";\r\n case InstallationStatusEnum.Blocked:\r\n case InstallationStatusEnum.PartiallyBlocked:\r\n return \"error lighten-3\";\r\n default:\r\n return null;\r\n }\r\n },\r\n },\r\n methods: { getImageFromModel_200 },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationSummaryCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationSummaryCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstallationSummaryCard.vue?vue&type=template&id=7972b12a&\"\nimport script from \"./InstallationSummaryCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstallationSummaryCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VChip,VImg,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"pb-0\",domProps:{\"textContent\":_vm._s(_vm.legendText)}}),_c('v-data-table',{staticClass:\"mt-3\",attrs:{\"id\":\"virtual-scroll-table\",\"headers\":_vm.headers,\"items\":_vm.installationsStatusHistory,\"item-key\":\"installationName\",\"dense\":\"\",\"items-per-page\":-1,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.status\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('GlobalStatusInstallationChip',{staticClass:\"text-h6\",attrs:{\"status\":value,\"small\":\"\"}})]}},{key:\"item.timestamp\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.getFormattedDate(value))+\" \")]}},{key:\"item.receivedAt\",fn:function(ref){\nvar item = ref.item;\nvar value = ref.value;\nreturn [(item.isNew)?_c('v-badge',{attrs:{\"bordered\":\"\",\"inline\":\"\",\"tile\":\"\",\"color\":\"error\",\"content\":_vm.$t('common.new').toString().toUpperCase()}},[_vm._v(\" \"+_vm._s(_vm.moment.utc(value).fromNow())+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.moment.utc(value).fromNow())+\" \")])]}},{key:\"item.installationLastMessage\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(value ? _vm.moment.utc(value).fromNow() : _vm.$t(\"common.notAvailable\"))+\" \")]}},{key:\"item.installationAgentIP\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(value ? value : _vm.$t(\"common.notAvailable\"))+\" \")]}},{key:\"item.machinesSerialNumber\",fn:function(ref){\nvar value = ref.value;\nreturn _vm._l((value),function(sn){return _c('v-chip',{key:sn,staticClass:\"mr-2 my-1\",attrs:{\"small\":\"\",\"outlined\":\"\"}},[_vm._v(_vm._s(sn))])})}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { mapGetters } from \"vuex\";\r\n\r\n// Vue components\r\nimport GlobalStatusInstallationChip from \"@/views/App/Components/chips/GlobalStatusInstallationChip.vue\";\r\n\r\n// Model\r\nimport moment from \"moment\";\r\n\r\nexport default Vue.extend({\r\n components: { GlobalStatusInstallationChip },\r\n data() {\r\n return {\r\n moment,\r\n headers: [\r\n { value: \"installationName\", text: this.$t(\"common.installationName\") },\r\n { value: \"status\", text: this.$t(\"common.status\") },\r\n { value: \"timestamp\", text: \"\" + this.$t(\"common.eventTimestamp\") + \" \" + this.$t(\"common.1_apex\") },\r\n { value: \"receivedAt\", text: \"\" + this.$t(\"common.statusChanged\") + \" \" + this.$t(\"common.2_apex\") },\r\n { value: \"installationLastMessage\", text: this.$t(\"common.lastMessageReceived\") },\r\n { value: \"installationAgentIP\", text: this.$t(\"device_status.agent_remote_ip\") },\r\n { value: \"machinesSerialNumber\", text: this.$t(\"common.machines\") },\r\n ],\r\n };\r\n },\r\n props: [\"installationsStatusHistory\"],\r\n computed: {\r\n ...mapGetters([\"longDateFormat\"]),\r\n legendText() {\r\n return (\r\n this.$t(\"common.1_apex\") +\r\n \" \" +\r\n this.$t(\"dashboard.inst_status_changes_timestamp_explanation\") +\r\n \" \" +\r\n this.$t(\"common.2_apex\") +\r\n \" \" +\r\n this.$t(\"dashboard.inst_status_changes_received_at_explanation\")\r\n );\r\n },\r\n },\r\n methods: {\r\n getFormattedDate(date: Date) {\r\n return this.moment(date).format(this.longDateFormat(true, false, false, true, true));\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationsStatusChangesTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationsStatusChangesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstallationsStatusChangesTable.vue?vue&type=template&id=4c978bf4&\"\nimport script from \"./InstallationsStatusChangesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstallationsStatusChangesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InstallationsStatusChangesTable.vue?vue&type=style&index=0&id=4c978bf4&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBadge,VCard,VCardText,VChip,VDataTable})\n","export enum DeviceGlobalStatusEnum {\r\n Ok = 0,\r\n Warning = 1,\r\n PartiallyBlocked = 2,\r\n Blocked = 3,\r\n NotReceivingData = 4,\r\n Unknown = -1,\r\n}\r\n","import { DeviceGlobalStatusEnum } from \"./DeviceStatus/DeviceGlobalStatusEnum\";\r\n\r\nexport class InstallationStatusChange {\r\n id: number = -1;\r\n installationName: string = null;\r\n status: DeviceGlobalStatusEnum = DeviceGlobalStatusEnum.Unknown;\r\n timestamp: Date = null;\r\n receivedAt: Date = null;\r\n\r\n constructor() {}\r\n\r\n public parse(obj: any) {\r\n if (obj.Id) this.id = obj.Id;\r\n if (obj.InstallationName) this.installationName = obj.InstallationName;\r\n if (obj.Status != null && Object.values(DeviceGlobalStatusEnum).includes(obj.Status)) this.status = obj.Status;\r\n if (obj.Timestamp) this.timestamp = obj.Timestamp;\r\n if (obj.ReceivedAt) this.receivedAt = obj.ReceivedAt;\r\n }\r\n}\r\n\r\nexport class InstallationStatusChangeForUI extends InstallationStatusChange {\r\n isNew: boolean;\r\n machinesSerialNumber: string[] = [];\r\n installationLastMessage: Date = null;\r\n installationAgentIP: string = null;\r\n\r\n public parse(obj: any) {\r\n super.parse(obj);\r\n this.isNew = obj.IsNew;\r\n this.machinesSerialNumber = [];\r\n if (obj.MachinesSerialNumber && obj.MachinesSerialNumber.length > 0)\r\n obj.MachinesSerialNumber.forEach((sn) => {\r\n this.machinesSerialNumber.push(sn);\r\n });\r\n if (obj.InstallationLastMessage) this.installationLastMessage = obj.InstallationLastMessage;\r\n if (obj.InstallationAgentIP) this.installationAgentIP = obj.InstallationAgentIP;\r\n }\r\n}\r\n","export enum WidgetDataResponseStatus {\r\n Unknown = 0,\r\n Ok = 1,\r\n Error = 2,\r\n Warning = 3,\r\n Message = 4,\r\n}\r\n","import { Installation } from \"../Installation\";\r\nimport { MachineStatus } from \"../status/MachineStatus\";\r\nimport { AgentInfo } from \"../agent/AgentInfo\";\r\nimport { MachineContent } from \"../content/MachineContent\";\r\nimport { CashCount } from \"../CashCount\";\r\n\r\nexport class InstallationSummary extends Installation {\r\n /** Lista di machine status, informazioni specifiche sullo stato di ogni macchina */\r\n statusMachines: MachineStatus[] = [];\r\n\r\n /** Informazioni sull'agent */\r\n agentInfo: AgentInfo = null;\r\n\r\n /** Lista di machine content, informazioni specifiche sul contenuto di ogni macchina */\r\n contentMachines: MachineContent[] = [];\r\n\r\n /** Installation content */\r\n content: CashCount = null;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public parse(obj: any) {\r\n super.parse(obj);\r\n\r\n if (obj.StatusMachines && obj.StatusMachines.length > 0) {\r\n obj.StatusMachines.forEach((e) => {\r\n var ms: MachineStatus = new MachineStatus();\r\n ms.parse(e);\r\n this.statusMachines.push(ms);\r\n });\r\n }\r\n\r\n if (obj.AgentInfo) {\r\n this.agentInfo = new AgentInfo();\r\n this.agentInfo.parse(obj.AgentInfo);\r\n }\r\n\r\n if (obj.ContentMachines && obj.ContentMachines.length > 0) {\r\n obj.ContentMachines.forEach((e) => {\r\n var ms: MachineContent = new MachineContent();\r\n ms.parse(e);\r\n this.contentMachines.push(ms);\r\n });\r\n }\r\n\r\n if (obj.Content) {\r\n this.content = new CashCount();\r\n this.content.parse(obj.Content);\r\n }\r\n }\r\n}\r\n","export class WidgetSingleSerie {\r\n name: string;\r\n values: number[] = [];\r\n\r\n fillFromJson(data: any) {\r\n this.name = data.Name;\r\n this.values = [...data.Values];\r\n }\r\n\r\n move(fromIdx: number, toIdx: number) {\r\n // console.log(`merge in serie, from idx ${fromIdx} to ${toIdx}`);\r\n\r\n if (this.values[toIdx]) this.values[toIdx] += this.values[fromIdx];\r\n else this.values[toIdx] = this.values[fromIdx];\r\n\r\n this.values[fromIdx] = undefined;\r\n // console.log(`this.values`, this.values);\r\n }\r\n\r\n removeUndefinedValues() {\r\n this.values = this.values.filter((c) => c != undefined);\r\n }\r\n}\r\n","import { InstallationStatusChange, InstallationStatusChangeForUI } from \"../InstallationStatusChange\";\r\nimport { VersionObfuscator } from \"../updates/VersionObfuscator\";\r\nimport { InstallationSummary } from \"./InstallationSummary\";\r\nimport { WidgetDataResponseStatus } from \"./WidgetDataResponseStatus\";\r\nimport { WidgetSingleSerie } from \"./WidgetSingleSerie\";\r\n\r\nfunction onlyUnique(value, index, self) {\r\n return self.indexOf(value) === index;\r\n}\r\n\r\nexport class WidgetData {\r\n status: WidgetDataResponseStatus = WidgetDataResponseStatus.Ok;\r\n statusMessage: string = \"\";\r\n labels: string[] = [];\r\n series: WidgetSingleSerie[] = [];\r\n installationSummaries: InstallationSummary[] = [];\r\n installationsStatusHistory: InstallationStatusChangeForUI[] = [];\r\n\r\n fillFromJson(data: any) {\r\n this.statusMessage = data.StatusMessage;\r\n this.status = data.Status;\r\n\r\n // this.labels = data.Labels || [];\r\n // this.labels = this.labels.map((l) => VersionObfuscator.obfuscate(l));\r\n\r\n var tempLabels: string[] = data.Labels || [];\r\n tempLabels = tempLabels.map((l) => VersionObfuscator.obfuscate(l));\r\n\r\n if (data.Series) {\r\n data.Series.forEach((jsonSerie: any) => {\r\n var s = new WidgetSingleSerie();\r\n s.fillFromJson(jsonSerie);\r\n this.series.push(s);\r\n });\r\n }\r\n\r\n this.labels = tempLabels.filter(onlyUnique);\r\n tempLabels.forEach((label, idx) => {\r\n // console.group(\"label\", label, idx);\r\n // console.log(\"check label\", label, idx);\r\n // console.log(\"this.labels.indexOf(label) \", this.labels.indexOf(label));\r\n\r\n if (this.labels.indexOf(label) != idx) {\r\n // ho accorpato\r\n this.series.forEach((s) => {\r\n s.move(idx, this.labels.indexOf(label));\r\n });\r\n }\r\n console.groupEnd();\r\n });\r\n\r\n this.series.forEach((s) => {\r\n s.removeUndefinedValues();\r\n });\r\n\r\n if (data.InstallationSummaries) {\r\n data.InstallationSummaries.forEach((jsonInstallationSummary: any) => {\r\n var s = new InstallationSummary();\r\n s.parse(jsonInstallationSummary);\r\n this.installationSummaries.push(s);\r\n });\r\n }\r\n\r\n if (data.InstallationsStatusHistory) {\r\n data.InstallationsStatusHistory.forEach((jsonInstallationStatusChange: any) => {\r\n var s = new InstallationStatusChangeForUI();\r\n s.parse(jsonInstallationStatusChange);\r\n this.installationsStatusHistory.push(s);\r\n });\r\n }\r\n }\r\n}\r\n","import { WidgetData } from \"@/model/data/dashboard/WidgetData\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { ApiGenericResponse } from \"../../ApiGenericResponse\";\r\n\r\nexport class FetchDashboardWidgetDataResData extends ApiGenericResponse {\r\n widgetData: WidgetData = null;\r\n\r\n constructor(response: AxiosResponse) {\r\n super(response);\r\n if (response.data && response.data.Payload) {\r\n var widgetData = new WidgetData();\r\n widgetData.fillFromJson(response.data.Payload);\r\n this.widgetData = widgetData;\r\n }\r\n }\r\n}\r\n","import { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { ApiGenericResponse } from \"../../ApiGenericResponse\";\r\nimport { API_PREFIX, API_VERSION, Command, HttpVerbType } from \"../../Command\";\r\nimport { FetchDashboardWidgetDataResData } from \"./FetchDashboardWidgetDataResData\";\r\n\r\nexport class FetchDashboardWidgetDataCommand extends Command {\r\n endPoint: string;\r\n httpVerb: HttpVerbType = \"post\";\r\n widget: DashboardWidget;\r\n\r\n constructor(widget: DashboardWidget) {\r\n super();\r\n this.endPoint = API_PREFIX + API_VERSION + `/dashboard/widgetData`;\r\n this.widget = widget;\r\n }\r\n\r\n public async execute(): Promise {\r\n var res = await this.executeCommand(this.widget);\r\n return new FetchDashboardWidgetDataResData(res);\r\n }\r\n}\r\n","import { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { ApiGenericResponse } from \"../../ApiGenericResponse\";\r\nimport { API_PREFIX, API_VERSION, Command, HttpVerbType } from \"../../Command\";\r\n\r\nconst ENDPOINT = \"/dashboard/widget\";\r\n\r\nexport class UpdateDashboardWidgetCommand extends Command {\r\n endPoint: string = API_PREFIX + API_VERSION + ENDPOINT;\r\n httpVerb: HttpVerbType = \"put\";\r\n widget: DashboardWidget;\r\n\r\n constructor(widget: DashboardWidget, breakpoint: string) {\r\n super();\r\n this.widget = widget.clone();\r\n if (breakpoint) {\r\n // console.log(\"breakpoint: \", breakpoint);\r\n if (this.widget.positionAndSizeList.filter((p) => p.breakpoint == breakpoint).length != 1) {\r\n var obj = { breakpoint: breakpoint, x: 0, y: 0, width: 2, height: 2 };\r\n this.widget.positionAndSizeList.push(obj);\r\n }\r\n\r\n this.widget.positionAndSizeList.filter((p) => p.breakpoint == breakpoint)[0].x = widget.x;\r\n this.widget.positionAndSizeList.filter((p) => p.breakpoint == breakpoint)[0].y = widget.y;\r\n this.widget.positionAndSizeList.filter((p) => p.breakpoint == breakpoint)[0].width = widget.width;\r\n this.widget.positionAndSizeList.filter((p) => p.breakpoint == breakpoint)[0].height = widget.height;\r\n }\r\n this.widget.positionAndSizeList = this.widget.positionAndSizeList.filter((p) => p.breakpoint != null);\r\n }\r\n\r\n public async execute(): Promise {\r\n var res = await this.executeCommand(this.widget);\r\n return new ApiGenericResponse(res);\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\n\r\n// Vuex\r\nimport { RootState } from \"@/store\";\r\nimport { mapState } from \"vuex\";\r\n\r\n// vue components\r\nimport ChartBar from \"./ChartsCard/ChartBar.vue\";\r\nimport Number from \"./ChartsCard/Number.vue\";\r\nimport TableCard from \"./ChartsCard/TableCard.vue\";\r\nimport ChartLine from \"./ChartsCard/ChartLine.vue\";\r\nimport ChartColumn from \"./ChartsCard/ChartColumn.vue\";\r\nimport ChartPie from \"./ChartsCard/ChartPie.vue\";\r\nimport ChartRadar from \"./ChartsCard/ChartRadar.vue\";\r\nimport ChartTimeLineComponent from \"./ChartsCard/ChartTimeLine.vue\";\r\nimport ChartHeadtGrid from \"./ChartsCard/ChartHeatGrid.vue\";\r\nimport ChartStacked from \"./ChartsCard/ChartStacked.vue\";\r\nimport InstallationSummaryCard from \"./ChartsCard/InstallationSummaryCard.vue\";\r\nimport InstallationsStatusChangesTable from \"./ChartsCard/InstallationsStatusChangesTable.vue\";\r\n\r\n// model\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { FetchDashboardWidgetDataCommand } from \"@/model/communication/dashboard/widget/FetchDashboardWidgetDataCommand\";\r\nimport { ApiResponseStatusEnum } from \"@/model/communication/ApiResponseStatusEnum\";\r\nimport { WidgetViewTypesEnum } from \"@/model/data/dashboard/WidgetViewTypesEnum\";\r\nimport { Charts_Palette } from \"@/utility/Constants\";\r\nimport { UpdateDashboardWidgetCommand } from \"@/model/communication/dashboard/widget/UpdateDashboardWidgetCommand\";\r\n\r\nexport default Vue.extend({\r\n components: {\r\n Number,\r\n TableCard,\r\n ChartLine,\r\n ChartBar,\r\n ChartColumn,\r\n ChartPie,\r\n ChartRadar,\r\n ChartTimeLineComponent,\r\n ChartHeadtGrid,\r\n ChartStacked,\r\n InstallationSummaryCard,\r\n InstallationsStatusChangesTable,\r\n },\r\n data() {\r\n return {\r\n loading: false,\r\n widgetData: null,\r\n };\r\n },\r\n props: [\"widget\", \"isPreview\"],\r\n computed: {\r\n ...mapState({ tvMode: (s: RootState) => s.application.tvMode }),\r\n datasets() {\r\n let res = [];\r\n\r\n if (this.widgetData) {\r\n this.widgetData.series.forEach((serie, index) => {\r\n let currentSet;\r\n if ((this.widget as DashboardWidget).viewConfig.viewType == WidgetViewTypesEnum.PieChart)\r\n currentSet = { label: serie.name, data: serie.values, backgroundColor: Charts_Palette };\r\n else if ((this.widget as DashboardWidget).viewConfig.viewType == WidgetViewTypesEnum.RadarChart)\r\n currentSet = { label: serie.name, data: serie.values, backgroundColor: Charts_Palette[index], borderColor: Charts_Palette[index] };\r\n else currentSet = { label: serie.name, data: serie.values, backgroundColor: Charts_Palette[index] };\r\n\r\n if (\r\n (this.widget as DashboardWidget).viewConfig.viewType == WidgetViewTypesEnum.TimeLineChart ||\r\n (this.widget as DashboardWidget).viewConfig.viewType == WidgetViewTypesEnum.LineChart\r\n ) {\r\n currentSet.fill = false;\r\n currentSet.borderColor = Charts_Palette[index];\r\n }\r\n\r\n res.push(currentSet);\r\n });\r\n }\r\n\r\n return res;\r\n },\r\n\r\n currentComponent() {\r\n switch ((this.widget as DashboardWidget).viewConfig.viewType) {\r\n case WidgetViewTypesEnum.Number:\r\n return Number;\r\n case WidgetViewTypesEnum.InstallationSummaryCard:\r\n return InstallationSummaryCard;\r\n case WidgetViewTypesEnum.InstallationsStatusChangesTable:\r\n return InstallationsStatusChangesTable;\r\n case WidgetViewTypesEnum.Table:\r\n return TableCard;\r\n case WidgetViewTypesEnum.LineChart:\r\n return ChartLine;\r\n case WidgetViewTypesEnum.BarChart:\r\n return ChartBar;\r\n case WidgetViewTypesEnum.PieChart:\r\n return ChartPie;\r\n case WidgetViewTypesEnum.RadarChart:\r\n return ChartRadar;\r\n case WidgetViewTypesEnum.TimeLineChart:\r\n return ChartTimeLineComponent;\r\n case WidgetViewTypesEnum.HeatGridChart:\r\n return ChartHeadtGrid;\r\n case WidgetViewTypesEnum.ColumnChart:\r\n return ChartColumn;\r\n case WidgetViewTypesEnum.StackedChart:\r\n return ChartStacked;\r\n default:\r\n return null;\r\n }\r\n },\r\n\r\n canDownload() {\r\n return (\r\n this.widget.viewConfig.viewType != WidgetViewTypesEnum.Number &&\r\n this.widget.viewConfig.viewType != WidgetViewTypesEnum.Table &&\r\n this.widgetData != null &&\r\n (this.widgetData.labels.length > 0 || this.widgetData.series.length > 0)\r\n );\r\n },\r\n },\r\n watch: {\r\n widget: {\r\n handler(newValue, oldValue) {\r\n if (!this.isPreview) this.updateWidget();\r\n\r\n // se il widget è cambiato, ricarico i dati\r\n if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) this.fetchWidgetData(null);\r\n },\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n async fetchWidgetData(widgetRef: DashboardWidget) {\r\n if (!this.loading) {\r\n this.loading = true;\r\n\r\n try {\r\n let res;\r\n if (widgetRef == null) res = await new FetchDashboardWidgetDataCommand(this.widget).execute();\r\n else res = await new FetchDashboardWidgetDataCommand(widgetRef).execute();\r\n\r\n if (res.responseStatus == ApiResponseStatusEnum.Success) {\r\n this.widgetData = res.widgetData;\r\n } else {\r\n console.error(\"widget data res status is not success\");\r\n }\r\n\r\n // imposto il timeout per il refresh automatico\r\n if ((this.widget as DashboardWidget).refreshTimeout) {\r\n setTimeout(this.fetchWidgetData, (this.widget as DashboardWidget).refreshTimeout * 1000);\r\n }\r\n\r\n this.loading = false;\r\n } catch (error) {\r\n console.error(\"cannot fetch widget data:\", error);\r\n this.loading = false;\r\n }\r\n }\r\n },\r\n\r\n async updateWidget() {\r\n try {\r\n let res = await new UpdateDashboardWidgetCommand(this.widget, this.$vuetify.breakpoint.name).execute();\r\n\r\n if (res.responseStatus != ApiResponseStatusEnum.Success) {\r\n console.error(\"Error trying update widget with id: \", this.widget.id);\r\n }\r\n } catch (error) {\r\n console.error(\"Error trying update widget with id: \", this.widget.id, \" error: \", error);\r\n }\r\n },\r\n\r\n downloadChart() {\r\n console.log(\"downloadRequired\");\r\n let a = document.createElement(\"a\");\r\n a.href = this.$refs.chart.$refs.canvas.toDataURL(\"image/jpg\");\r\n a.download = this.widget.title + \".png\";\r\n a.click();\r\n },\r\n },\r\n mounted() {\r\n this.fetchWidgetData(null);\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WidgetCard.vue?vue&type=template&id=6fe5a31f&\"\nimport script from \"./WidgetCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./WidgetCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VHover } from 'vuetify/lib/components/VHover';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCol,VHover,VRow,VSkeletonLoader,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Dashboard, DashLayout, DashItem } from \"vue-responsive-dash\";\r\nimport WidgetCard from \"./WidgetCard.vue\";\r\n\r\nexport default Vue.extend({\r\n components: {\r\n Dashboard,\r\n DashLayout,\r\n DashItem,\r\n WidgetCard,\r\n },\r\n data() {\r\n return {\r\n dlayouts: [\r\n {\r\n breakpoint: \"lg\",\r\n breakpointWidth: this.$vuetify.breakpoint.thresholds.md,\r\n numberOfCols: 10,\r\n },\r\n {\r\n breakpoint: \"md\",\r\n breakpointWidth: this.$vuetify.breakpoint.thresholds.sm,\r\n numberOfCols: 8,\r\n },\r\n {\r\n breakpoint: \"sm\",\r\n breakpointWidth: this.$vuetify.breakpoint.thresholds.xs,\r\n numberOfCols: 4,\r\n },\r\n {\r\n breakpoint: \"xs\",\r\n breakpointWidth: 380,\r\n numberOfCols: 2,\r\n },\r\n ],\r\n };\r\n },\r\n props: [\"dashboard\"],\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardLayout.vue?vue&type=template&id=48184b01&\"\nimport script from \"./DashboardLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardLayout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.isNew ? _vm.$t(\"dashboard.create_widget\") : _vm.$t(\"dashboard.edit_widget\"))+\" \")]),_c('v-card-text',[(_vm.errorMessage)?_c('v-alert',{attrs:{\"dense\":\"\",\"text\":\"\",\"border\":\"left\",\"color\":\"error\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_c('span',{domProps:{\"textContent\":_vm._s(_vm.errorMessage)}})]),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.errorMessage = null}}},[_c('v-fa-icon',{attrs:{\"icon\":\"times\"}})],1)],1)],1)],1):_vm._e(),_c('v-row',{attrs:{\"align\":_vm.canDoLivePreview ? 'start' : 'center'}},[_c('v-col',[_c('v-tabs',{model:{value:(_vm.currentStep),callback:function ($$v) {_vm.currentStep=$$v},expression:\"currentStep\"}},_vm._l((_vm.steps),function(step,i){return _c('v-tab',{key:i},[_c('v-fa-icon',{attrs:{\"small\":\"\",\"icon\":step.icon}}),_c('span',{staticClass:\"ml-1\",domProps:{\"textContent\":_vm._s(step.name)}})],1)}),1),_c('v-tabs-items',{model:{value:(_vm.currentStep),callback:function ($$v) {_vm.currentStep=$$v},expression:\"currentStep\"}},_vm._l((_vm.steps),function(step,i){return _c('v-tab-item',{key:i},[_c(step.component,{tag:\"component\",attrs:{\"widget\":_vm.widget}})],1)}),1)],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('WidgetPreviewCard',{ref:\"widgetPreviewCard\",attrs:{\"widget\":_vm.widget}})],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":!_vm.canDoPreviousStep},on:{\"click\":_vm.previousStep}},[_c('v-fa-icon',{staticClass:\"mx-1\",attrs:{\"icon\":\"angle-double-left\"}})],1),_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":!_vm.canDoNextStep},on:{\"click\":_vm.nextStep}},[_c('v-fa-icon',{staticClass:\"mx-1\",attrs:{\"icon\":\"angle-double-right\"}})],1),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.onCancelClick}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"common.close\"))+\" \")])]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.onSaveClick}},[_c('v-fa-icon',{staticClass:\"mx-2\",attrs:{\"icon\":\"save\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"common.save\"))+\" \")],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableWidgetTypes,\"label\":_vm.$t('dashboard.widget_type')},model:{value:(_vm.widget.widgetType),callback:function ($$v) {_vm.$set(_vm.widget, \"widgetType\", $$v)},expression:\"widget.widgetType\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.title'),\"placeholder\":_vm.$t('dashboard.enter_widget_title')},model:{value:(_vm.widget.title),callback:function ($$v) {_vm.$set(_vm.widget, \"title\", $$v)},expression:\"widget.title\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.description'),\"placeholder\":_vm.$t('dashboard.enter_widget_description')},model:{value:(_vm.widget.description),callback:function ($$v) {_vm.$set(_vm.widget, \"description\", $$v)},expression:\"widget.description\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableRefreshTimeout,\"label\":_vm.$t('dashboard.widget_refresh_time')},model:{value:(_vm.widget.refreshTimeout),callback:function ($$v) {_vm.$set(_vm.widget, \"refreshTimeout\", $$v)},expression:\"widget.refreshTimeout\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { WidgetTypesEnum } from \"@/model/data/dashboard/WidgetTypesEnum\";\r\nimport { mapGetters, mapState } from \"vuex\";\r\nimport { RootState } from \"@/store\";\r\nimport { LicenseModuleEnum } from \"@/model/data/License/LicenseModuleEnum\";\r\nimport { LicenseData } from \"@/model/data/License/LicenseData\";\r\nimport { ClientPrivileges } from \"@/model/data/authentication/ClientPrivilegesEnum\";\r\n\r\nexport default Vue.extend({\r\n data() {\r\n return {\r\n WidgetTypesEnum,\r\n availableRefreshTimeout: [\r\n { value: 0, text: this.$t(\"common.no\") },\r\n { value: 30, text: this.$tc(\"common.second\", 30, { count: 30 }) },\r\n { value: 60, text: this.$tc(\"common.minute\", 1, { count: 1 }) },\r\n { value: 300, text: this.$tc(\"common.minute\", 5, { count: 5 }) },\r\n { value: 600, text: this.$tc(\"common.minute\", 10, { count: 10 }) },\r\n { value: 1800, text: this.$tc(\"common.minute\", 30, { count: 30 }) },\r\n { value: 3600, text: this.$tc(\"common.hour\", 1, { count: 1 }) },\r\n ],\r\n };\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n ...mapState({\r\n licenseData: (state: RootState) => state.license.licenseModules,\r\n }),\r\n ...mapGetters([\"authUserHasPrivilege\"]),\r\n\r\n availableWidgetTypes() {\r\n let widgetTypes = [];\r\n\r\n widgetTypes.push({\r\n text: this.$t(\"dashboard.widget_types.device_count\"),\r\n value: WidgetTypesEnum.DeviceCount,\r\n disabled: !(this.licenseData as LicenseData).isAvailable(LicenseModuleEnum.ServiceAndUpdatesManagement),\r\n });\r\n\r\n widgetTypes.push({\r\n text: this.$t(\"dashboard.widget_types.device_summary\"),\r\n value: WidgetTypesEnum.InstallationSummary,\r\n disabled:\r\n !(this.licenseData as LicenseData).isAvailable(LicenseModuleEnum.ServiceAndUpdatesManagement) || !this.authUserHasPrivilege(ClientPrivileges.StatusManagement),\r\n });\r\n\r\n widgetTypes.push({\r\n text: this.$t(\"dashboard.widget_types.device_status\"),\r\n value: WidgetTypesEnum.DeviceStatus,\r\n disabled:\r\n !(this.licenseData as LicenseData).isAvailable(LicenseModuleEnum.ServiceAndUpdatesManagement) || !this.authUserHasPrivilege(ClientPrivileges.StatusManagement),\r\n });\r\n\r\n widgetTypes.push({\r\n text: this.$t(\"dashboard.widget_types.installations_status_changes\"),\r\n value: WidgetTypesEnum.InstallationsStatusChanges,\r\n disabled:\r\n !(this.licenseData as LicenseData).isAvailable(LicenseModuleEnum.ServiceAndUpdatesManagement) || !this.authUserHasPrivilege(ClientPrivileges.StatusManagement),\r\n });\r\n\r\n widgetTypes.push({\r\n text: this.$t(\"dashboard.widget_types.update_status\"),\r\n value: WidgetTypesEnum.UpdateStatus,\r\n disabled:\r\n !(this.licenseData as LicenseData).isAvailable(LicenseModuleEnum.ServiceAndUpdatesManagement) || !this.authUserHasPrivilege(ClientPrivileges.UpdatesManagement),\r\n });\r\n\r\n widgetTypes.push({\r\n text: this.$t(\"dashboard.widget_types.cash_count\"),\r\n value: WidgetTypesEnum.CashCount,\r\n disabled:\r\n !(this.licenseData as LicenseData).isAvailable(LicenseModuleEnum.CashFlowManagement) || !this.authUserHasPrivilege(ClientPrivileges.CashFlowContentMonitoring),\r\n });\r\n\r\n widgetTypes.push({\r\n text: this.$t(\"dashboard.widget_types.cash_distribution\"),\r\n value: WidgetTypesEnum.CashDistribution,\r\n disabled:\r\n !(this.licenseData as LicenseData).isAvailable(LicenseModuleEnum.CashFlowManagement) || !this.authUserHasPrivilege(ClientPrivileges.CashFlowContentMonitoring),\r\n });\r\n\r\n widgetTypes.push({\r\n text: this.$t(\"dashboard.widget_types.transactions\"),\r\n value: WidgetTypesEnum.Transactions,\r\n disabled:\r\n !(this.licenseData as LicenseData).isAvailable(LicenseModuleEnum.CashFlowManagement) ||\r\n !this.authUserHasPrivilege(ClientPrivileges.CashFlowTransactionsReporting),\r\n });\r\n\r\n return widgetTypes;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseWidgetInformationCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseWidgetInformationCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseWidgetInformationCard.vue?vue&type=template&id=5721ac8b&\"\nimport script from \"./BaseWidgetInformationCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseWidgetInformationCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCardText,VCol,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableViewTypes,\"label\":_vm.$t('dashboard.view_type')},model:{value:(_vm.widget.viewConfig.viewType),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"viewType\", $$v)},expression:\"widget.viewConfig.viewType\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('dashboard.icon'),\"items\":_vm.availableIcons},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-fa-icon',{attrs:{\"icon\":item,\"color\":_vm.widget.viewConfig.color}})]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-fa-icon',{attrs:{\"icon\":item,\"color\":_vm.widget.viewConfig.color}})]}}]),model:{value:(_vm.widget.viewConfig.icon),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"icon\", $$v)},expression:\"widget.viewConfig.icon\"}})],1),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"color\":_vm.widget.viewConfig.color,\"dark\":\"\"}},on),[_c('v-fa-icon',{staticClass:\"mr-3\",attrs:{\"icon\":\"palette\"}}),_c('span',{domProps:{\"textContent\":_vm._s(_vm.$t('dashboard.selectColor'))}})],1)]}}])},[_c('v-color-picker',{attrs:{\"show-swatches\":\"\",\"hide-canvas\":\"\"},model:{value:(_vm.widget.viewConfig.color),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"color\", $$v)},expression:\"widget.viewConfig.color\"}})],1)],1)],1),(_vm.widget.widgetType == _vm.WidgetTypesEnum.DeviceStatus)?_c('DeviceStatusViewConfig',{attrs:{\"widget\":_vm.widget}}):_vm._e(),(_vm.widget.widgetType == _vm.WidgetTypesEnum.InstallationsStatusChanges)?_c('InstallationsStatusChangesTableViewConfig',{attrs:{\"widget\":_vm.widget}}):_vm._e(),(_vm.widget.widgetType == _vm.WidgetTypesEnum.CashCount)?_c('CashCountViewConfig',{attrs:{\"widget\":_vm.widget}}):_vm._e(),(_vm.widget.widgetType == _vm.WidgetTypesEnum.CashDistribution)?_c('CashDistributionViewConfig',{attrs:{\"widget\":_vm.widget}}):_vm._e(),(_vm.widget.widgetType == _vm.WidgetTypesEnum.Transactions)?_c('TransactionsViewConfig',{attrs:{\"widget\":_vm.widget}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableStatus,\"label\":_vm.$t('common.status'),\"multiple\":\"\"},model:{value:(_vm.widget.viewConfig.byStatus),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"byStatus\", $$v)},expression:\"widget.viewConfig.byStatus\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { InstallationStatusEnum, installationStatusEnumLabel } from \"@/model/data/status/InstallationStatusEnum\";\r\n\r\nexport default Vue.extend({\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n availableStatus() {\r\n var res = [];\r\n\r\n Object.values(InstallationStatusEnum)\r\n .filter((k) => !isNaN(Number(k)))\r\n .forEach((k) => {\r\n // console.log(\"K\", k);\r\n res.push({\r\n value: k,\r\n text: this.$t(installationStatusEnumLabel(k as InstallationStatusEnum)),\r\n });\r\n });\r\n\r\n // console.log(\"res\", res);\r\n\r\n return res;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewConfig.vue?vue&type=template&id=1b7e5c11&\"\nimport script from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"items\":_vm.availableStatus,\"label\":_vm.$t('common.status'),\"multiple\":\"\"},model:{value:(_vm.widget.viewConfig.byStatus),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"byStatus\", $$v)},expression:\"widget.viewConfig.byStatus\"}})],1)],1),_c('v-row',{staticClass:\"mx-0\",attrs:{\"align\":\"center\"}},[_c('span',{domProps:{\"textContent\":_vm._s(_vm.$t('dashboard.considered_as_new'))}}),_c('v-card',{attrs:{\"flat\":\"\",\"width\":\"200\"}},[_c('v-text-field',{staticClass:\"my-0 py-0 mx-3\",model:{value:(_vm.widget.viewConfig.consideredAsNewMinutes),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"consideredAsNewMinutes\", $$v)},expression:\"widget.viewConfig.consideredAsNewMinutes\"}})],1),_c('span',{domProps:{\"textContent\":_vm._s(_vm.$t('common.minutes') + '.')}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { InstallationStatusEnum, installationStatusEnumLabel } from \"@/model/data/status/InstallationStatusEnum\";\r\n\r\nexport default Vue.extend({\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n availableStatus() {\r\n var res = [];\r\n\r\n Object.values(InstallationStatusEnum)\r\n .filter((k) => !isNaN(Number(k)))\r\n .forEach((k) => {\r\n // console.log(\"K\", k);\r\n res.push({\r\n value: k,\r\n text: this.$t(installationStatusEnumLabel(k as InstallationStatusEnum)),\r\n });\r\n });\r\n\r\n // console.log(\"res\", res);\r\n\r\n return res;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewConfig.vue?vue&type=template&id=240ac4dc&\"\nimport script from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCol,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableCashCountViewType,\"label\":_vm.$t('dashboard.count_type')},model:{value:(_vm.widget.viewConfig.cashCountViewType),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"cashCountViewType\", $$v)},expression:\"widget.viewConfig.cashCountViewType\"}})],1),(_vm.widget.viewConfig.viewType != 1)?[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableBinType,\"label\":_vm.$t('dashboard.bin_type')},model:{value:(_vm.widget.viewConfig.binType),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"binType\", $$v)},expression:\"widget.viewConfig.binType\"}})],1),(_vm.widget.viewConfig.binType == _vm.BinCountType.ByBinCount)?_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableBinCount,\"label\":_vm.$t('dashboard.bin_count')},model:{value:(_vm.widget.viewConfig.binCount),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"binCount\", $$v)},expression:\"widget.viewConfig.binCount\"}})],1):_vm._e(),_c('v-col',[(_vm.widget.viewConfig.binType == _vm.BinCountType.ByBinSize)?_c('v-select',{attrs:{\"label\":_vm.$t('dashboard.bin_size'),\"items\":_vm.availableBinSize},model:{value:(_vm.widget.viewConfig.binSize),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"binSize\", $$v)},expression:\"widget.viewConfig.binSize\"}}):_vm._e()],1)]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { CashCountViewType } from \"@/model/data/dashboard/CashCountViewType\";\r\nimport { BinCountType } from \"@/model/data/dashboard/BinCountType\";\r\n\r\nexport default Vue.extend({\r\n data() {\r\n return {\r\n BinCountType,\r\n };\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n availableCashCountViewType() {\r\n return [\r\n {\r\n value: CashCountViewType.DistributionCount,\r\n text: this.$t(\"dashboard.widget_cash_count.view_type.distribution_count\"),\r\n },\r\n {\r\n value: CashCountViewType.DistributionPercentage,\r\n text: this.$t(\"dashboard.widget_cash_count.view_type.distribution_percentage\"),\r\n },\r\n {\r\n value: CashCountViewType.DistributionValue,\r\n text: this.$t(\"dashboard.widget_cash_count.view_type.distribution_value\"),\r\n },\r\n {\r\n value: CashCountViewType.TotalValue,\r\n text: this.$t(\"dashboard.widget_cash_count.view_type.total_value\"),\r\n },\r\n ];\r\n },\r\n availableBinType() {\r\n return [\r\n {\r\n value: BinCountType.ByBinCount,\r\n text: this.$t(\"dashboard.widget_cash_count.bin_configuration.by_bin_count\"),\r\n },\r\n {\r\n value: BinCountType.ByBinSize,\r\n text: this.$t(\"dashboard.widget_cash_count.bin_configuration.by_bin_size\"),\r\n },\r\n ];\r\n },\r\n availableBinCount() {\r\n switch ((this.widget as DashboardWidget).viewConfig.cashCountViewType) {\r\n case CashCountViewType.DistributionPercentage: // percentage\r\n return [2, 5, 10, 20];\r\n case CashCountViewType.DistributionCount: // count\r\n return [2, 5, 10, 20];\r\n case CashCountViewType.DistributionValue: // value\r\n return [2, 5, 10, 20];\r\n default:\r\n return [];\r\n }\r\n },\r\n availableBinSize() {\r\n switch ((this.widget as DashboardWidget).viewConfig.cashCountViewType) {\r\n case CashCountViewType.DistributionPercentage: // percentage\r\n return [2, 5, 10, 20];\r\n case CashCountViewType.DistributionCount: // count\r\n return [50, 100, 1000, 5000];\r\n case CashCountViewType.DistributionValue: // value\r\n return [1000, 2000, 5000, 10000];\r\n default:\r\n return [];\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewConfig.vue?vue&type=template&id=50a05c5a&\"\nimport script from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableDistributionType,\"label\":_vm.$t('dashboard.distribution_type')},model:{value:(_vm.widget.viewConfig.distributionType),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"distributionType\", $$v)},expression:\"widget.viewConfig.distributionType\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { CashDistributionViewType } from \"@/model/data/dashboard/CashDistributionViewType\";\r\n\r\nexport default Vue.extend({\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n availableDistributionType() {\r\n return [\r\n {\r\n value: CashDistributionViewType.DistributionCountAverage,\r\n text: this.$t(\"dashboard.widget_cash_distribution.distribution_type.distribution_count_average\"),\r\n },\r\n {\r\n value: CashDistributionViewType.DistributionCountTotal,\r\n text: this.$t(\"dashboard.widget_cash_distribution.distribution_type.distribution_count_total\"),\r\n },\r\n ];\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewConfig.vue?vue&type=template&id=ac3adc9e&\"\nimport script from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableCountType,\"label\":_vm.$t('dashboard.count_type')},model:{value:(_vm.widget.viewConfig.countType),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"countType\", $$v)},expression:\"widget.viewConfig.countType\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableAggregationTypes,\"label\":_vm.$t('dashboard.aggregation_type')},model:{value:(_vm.widget.viewConfig.aggregationType),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"aggregationType\", $$v)},expression:\"widget.viewConfig.aggregationType\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"disabled\":_vm.widget.viewConfig.aggregationType != 0,\"items\":_vm.availableTimeOfDayDetails,\"label\":_vm.$t('dashboard.time_of_day_detail')},model:{value:(_vm.widget.viewConfig.timeOfDayMinutesInterval),callback:function ($$v) {_vm.$set(_vm.widget.viewConfig, \"timeOfDayMinutesInterval\", $$v)},expression:\"widget.viewConfig.timeOfDayMinutesInterval\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\nimport _ from \"lodash\";\r\nimport { AggregationTypeEnum } from \"@/model/data/dashboard/AggregationTypeEnum\";\r\nimport { TransCountType } from \"@/model/data/dashboard/TransCountType\";\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\n\r\nexport default Vue.extend({\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n availableTimeOfDayDetails() {\r\n var res = [\r\n { value: 0, text: this.$t(\"common.no\") },\r\n { value: 5, text: this.$tc(\"common.minute\", 5, { count: 5 }) },\r\n { value: 10, text: this.$tc(\"common.minute\", 10, { count: 10 }) },\r\n { value: 15, text: this.$tc(\"common.minute\", 15, { count: 15 }) },\r\n { value: 30, text: this.$tc(\"common.minute\", 30, { count: 30 }) },\r\n { value: 60, text: this.$tc(\"common.hour\", 1, { count: 1 }) },\r\n ];\r\n\r\n return res;\r\n },\r\n availableCountType() {\r\n var res = [];\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.count_type.average_value\"),\r\n value: TransCountType.AverageValue,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.count_type.total_value\"),\r\n value: TransCountType.TotalValue,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.count_type.average_pieces_count\"),\r\n value: TransCountType.AveragePiecesCount,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.count_type.total_pieces_count\"),\r\n value: TransCountType.TotalPiecesCount,\r\n });\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.count_type.average_operation_count\"),\r\n value: TransCountType.AverageOperationCount,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.count_type.total_operation_count\"),\r\n value: TransCountType.TotalOperationCount,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.count_type.denomination_distribution\"),\r\n value: TransCountType.DenominationDistribution,\r\n });\r\n\r\n return res;\r\n },\r\n availableAggregationTypes() {\r\n var res = [];\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.aggregation_type.aggregate_by_time_of_day\"),\r\n value: AggregationTypeEnum.AggregateByTimeOfDay,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.aggregation_type.aggregate_by_month\"),\r\n value: AggregationTypeEnum.AggregateByMonth,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.aggregation_type.aggregate_by_day_of_week\"),\r\n value: AggregationTypeEnum.AggregateByDayOfWeek,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.aggregation_type.timeline_by_hours\"),\r\n value: AggregationTypeEnum.TimelineByHours,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.aggregation_type.timeline_by_day\"),\r\n value: AggregationTypeEnum.TimelineByDay,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.aggregation_type.timeline_by_month\"),\r\n value: AggregationTypeEnum.TimelineByMonth,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.aggregation_type.absolute_value\"),\r\n value: AggregationTypeEnum.AbsoluteValue,\r\n });\r\n\r\n return res;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewConfig.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewConfig.vue?vue&type=template&id=ab633774&\"\nimport script from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewConfig.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\nimport DeviceStatusViewConfig from \"./DeviceStatus/ViewConfig.vue\";\r\nimport InstallationsStatusChangesTableViewConfig from \"./InstallationsStatusChangesTable/ViewConfig.vue\";\r\n\r\nimport CashCountViewConfig from \"./CashCount/ViewConfig.vue\";\r\nimport CashDistributionViewConfig from \"./CashDistribution/ViewConfig.vue\";\r\nimport TransactionsViewConfig from \"./Transactions/ViewConfig.vue\";\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { WidgetTypesEnum } from \"@/model/data/dashboard/WidgetTypesEnum\";\r\n\r\nexport default Vue.extend({\r\n components: {\r\n DeviceStatusViewConfig,\r\n InstallationsStatusChangesTableViewConfig,\r\n CashCountViewConfig,\r\n CashDistributionViewConfig,\r\n TransactionsViewConfig,\r\n },\r\n data() {\r\n return {\r\n WidgetTypesEnum,\r\n availableIcons: [\r\n \"exclamation-triangle\",\r\n \"flag\",\r\n \"exclamation\",\r\n \"ban\",\r\n \"euro-sign\",\r\n \"coins\",\r\n \"money-bill-wave\",\r\n \"dollar-sign\",\r\n \"check-circle\",\r\n \"money-bill\",\r\n \"flag-checkered\",\r\n \"list-ul\",\r\n \"bell\",\r\n ],\r\n };\r\n },\r\n computed: {\r\n availableViewTypes() {\r\n return this.widget.getAvailableViewType().map((v) => ({\r\n value: v.value,\r\n text: this.$t(v.text),\r\n }));\r\n },\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetViewConfigCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetViewConfigCard.vue?vue&type=script&lang=ts&\"","import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n ticks: {\n type: [Boolean, String] as PropType,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n keyPressed: 0,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.keyPressed >= 2 ? 'none' : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n const value = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return value\n },\n trackFillStyles (): Partial {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n },\n },\n\n // If done in as immediate in\n // value watcher, causes issues\n // with vue-test-utils\n beforeMount () {\n this.internalValue = this.value\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onThumbMouseDown,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: this.isDisabled,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onDrag: Function,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n ...this.$attrs,\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n keyup: this.onKeyUp,\n touchstart: onDrag,\n mousedown: onDrag,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onThumbMouseDown (e: MouseEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.keyPressed = 2\n this.isActive = true\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n if ('touches' in e) {\n this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'touchend', this.onSliderMouseUp, mouseUpOptions)\n } else {\n this.app.addEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n }\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n this.keyPressed = 0\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent) {\n const { value } = this.parseMouseMove(e)\n this.internalValue = value\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onKeyUp () {\n this.keyPressed = 0\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect() as any\n const clickOffset = 'touches' in e ? (e as any).touches[0][click] : e[click] // Can we get rid of any here?\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n const isInsideTrack = clickOffset >= trackStart && clickOffset <= trackStart + trackLength\n const value = parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n\n return { value, isInsideTrack }\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n this.keyPressed += 1\n\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n","// Utilities\nimport {\n HSVA,\n HSVAtoRGBA,\n HSVAtoHex,\n RGBA,\n Hex,\n RGBAtoHSVA,\n HexToHSVA,\n HSLA,\n HSVAtoHSLA,\n RGBAtoHex,\n HSLAtoHSVA,\n parseHex,\n Hexa,\n} from '../../../util/colorUtils'\n\nexport interface VColorPickerColor {\n alpha: number\n hex: Hex\n hexa: Hexa\n hsla: HSLA\n hsva: HSVA\n hue: number\n rgba: RGBA\n}\n\nexport function fromHSVA (hsva: HSVA): VColorPickerColor {\n hsva = { ...hsva }\n const hexa = HSVAtoHex(hsva)\n const hsla = HSVAtoHSLA(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHSLA (hsla: HSLA): VColorPickerColor {\n const hsva = HSLAtoHSVA(hsla)\n const hexa = HSVAtoHex(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromRGBA (rgba: RGBA): VColorPickerColor {\n const hsva = RGBAtoHSVA(rgba)\n const hexa = RGBAtoHex(rgba)\n const hsla = HSVAtoHSLA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHexa (hexa: Hexa): VColorPickerColor {\n const hsva = HexToHSVA(hexa)\n const hsla = HSVAtoHSLA(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHex (hex: Hex): VColorPickerColor {\n return fromHexa(parseHex(hex))\n}\n\nfunction has (obj: object, key: string[]) {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\nexport function parseColor (color: any, oldColor: VColorPickerColor | null) {\n if (!color) return fromRGBA({ r: 255, g: 0, b: 0, a: 1 })\n\n if (typeof color === 'string') {\n if (color === 'transparent') return fromHexa('#00000000')\n\n const hex = parseHex(color)\n\n if (oldColor && hex === oldColor.hexa) return oldColor\n else return fromHexa(hex)\n }\n\n if (typeof color === 'object') {\n if (color.hasOwnProperty('alpha')) return color\n\n const a = color.hasOwnProperty('a') ? parseFloat(color.a) : 1\n\n if (has(color, ['r', 'g', 'b'])) {\n if (oldColor && color === oldColor.rgba) return oldColor\n else return fromRGBA({ ...color, a })\n } else if (has(color, ['h', 's', 'l'])) {\n if (oldColor && color === oldColor.hsla) return oldColor\n else return fromHSLA({ ...color, a })\n } else if (has(color, ['h', 's', 'v'])) {\n if (oldColor && color === oldColor.hsva) return oldColor\n else return fromHSVA({ ...color, a })\n }\n }\n\n return fromRGBA({ r: 255, g: 0, b: 0, a: 1 })\n}\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: VColorPickerColor, input: any) {\n if (input == null) return color\n\n if (typeof input === 'string') {\n return input.length === 7 ? color.hex : color.hexa\n }\n\n if (typeof input === 'object') {\n if (has(input, ['r', 'g', 'b'])) return stripAlpha(color.rgba, !input.a)\n else if (has(input, ['h', 's', 'l'])) return stripAlpha(color.hsla, !input.a)\n else if (has(input, ['h', 's', 'v'])) return stripAlpha(color.hsva, !input.a)\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n","// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport VSlider from '../VSlider/VSlider'\n\n// Utilities\nimport { RGBtoCSS, RGBAtoCSS } from '../../util/colorUtils'\n\n// Types\nimport Vue, { VNode, VNodeData, PropType } from 'vue'\nimport { VColorPickerColor, fromHSVA } from './util'\n\nexport default Vue.extend({\n name: 'v-color-picker-preview',\n\n props: {\n color: Object as PropType,\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n methods: {\n genAlpha (): VNode {\n return this.genTrack({\n staticClass: 'v-color-picker__alpha',\n props: {\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.alpha,\n step: 0,\n min: 0,\n max: 1,\n },\n style: {\n backgroundImage: this.disabled\n ? undefined\n : `linear-gradient(to ${this.$vuetify.rtl ? 'left' : 'right'}, transparent, ${RGBtoCSS(this.color.rgba)})`,\n },\n on: {\n input: (val: number) => this.color.alpha !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, a: val })),\n },\n })\n },\n genSliders (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__sliders',\n }, [\n this.genHue(),\n !this.hideAlpha && this.genAlpha(),\n ])\n },\n genDot (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__dot',\n }, [\n this.$createElement('div', {\n style: {\n background: RGBAtoCSS(this.color.rgba),\n },\n }),\n ])\n },\n genHue (): VNode {\n return this.genTrack({\n staticClass: 'v-color-picker__hue',\n props: {\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.hue,\n step: 0,\n min: 0,\n max: 360,\n },\n on: {\n input: (val: number) => this.color.hue !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, h: val })),\n },\n })\n },\n genTrack (options: VNodeData): VNode {\n return this.$createElement(VSlider, {\n class: 'v-color-picker__track',\n ...options,\n props: {\n disabled: this.disabled,\n ...options.props,\n },\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__preview',\n class: {\n 'v-color-picker__preview--hide-alpha': this.hideAlpha,\n },\n }, [\n this.genDot(),\n this.genSliders(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerCanvas.sass'\n\n// Helpers\nimport { clamp, convertToUnit } from '../../util/helpers'\nimport { fromHSVA, VColorPickerColor, fromRGBA } from './util'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\n\nexport default Vue.extend({\n name: 'v-color-picker-canvas',\n\n props: {\n color: {\n type: Object as PropType,\n default: () => fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data () {\n return {\n boundingRect: {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n } as ClientRect,\n }\n },\n\n computed: {\n dot (): { x: number, y: number} {\n if (!this.color) return { x: 0, y: 0 }\n\n return {\n x: this.color.hsva.s * parseInt(this.width, 10),\n y: (1 - this.color.hsva.v) * parseInt(this.height, 10),\n }\n },\n },\n\n watch: {\n 'color.hue': 'updateCanvas',\n },\n\n mounted () {\n this.updateCanvas()\n },\n\n methods: {\n emitColor (x: number, y: number) {\n const { left, top, width, height } = this.boundingRect\n\n this.$emit('update:color', fromHSVA({\n h: this.color.hue,\n s: clamp(x - left, 0, width) / width,\n v: 1 - clamp(y - top, 0, height) / height,\n a: this.color.alpha,\n }))\n },\n updateCanvas () {\n if (!this.color) return\n\n const canvas = this.$refs.canvas as HTMLCanvasElement\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${this.color.hue}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n },\n handleClick (e: MouseEvent) {\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseDown (e: MouseEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n\n window.addEventListener('mousemove', this.handleMouseMove)\n window.addEventListener('mouseup', this.handleMouseUp)\n },\n handleMouseMove (e: MouseEvent) {\n if (this.disabled) return\n\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseUp () {\n window.removeEventListener('mousemove', this.handleMouseMove)\n window.removeEventListener('mouseup', this.handleMouseUp)\n },\n genCanvas (): VNode {\n return this.$createElement('canvas', {\n ref: 'canvas',\n attrs: {\n width: this.width,\n height: this.height,\n },\n })\n },\n genDot (): VNode {\n const radius = parseInt(this.dotSize, 10) / 2\n const x = convertToUnit(this.dot.x - radius)\n const y = convertToUnit(this.dot.y - radius)\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__canvas-dot',\n class: {\n 'v-color-picker__canvas-dot--disabled': this.disabled,\n },\n style: {\n width: convertToUnit(this.dotSize),\n height: convertToUnit(this.dotSize),\n transform: `translate(${x}, ${y})`,\n },\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__canvas',\n style: {\n width: convertToUnit(this.width),\n height: convertToUnit(this.height),\n },\n on: {\n click: this.handleClick,\n mousedown: this.handleMouseDown,\n },\n }, [\n this.genCanvas(),\n this.genDot(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Helpers\nimport { parseHex } from '../../util/colorUtils'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { VColorPickerColor, fromRGBA, fromHexa, fromHSLA } from './util'\n\ntype Input = [string, number, string]\n\nexport type Mode = {\n inputs?: Input[]\n from: Function\n}\n\nexport const modes = {\n rgba: {\n inputs: [\n ['r', 255, 'int'],\n ['g', 255, 'int'],\n ['b', 255, 'int'],\n ['a', 1, 'float'],\n ],\n from: fromRGBA,\n },\n hsla: {\n inputs: [\n ['h', 360, 'int'],\n ['s', 1, 'float'],\n ['l', 1, 'float'],\n ['a', 1, 'float'],\n ],\n from: fromHSLA,\n },\n hexa: {\n from: fromHexa,\n },\n} as { [key: string]: Mode }\n\nexport default Vue.extend({\n name: 'v-color-picker-edit',\n\n props: {\n color: Object as PropType,\n disabled: Boolean,\n hideAlpha: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n },\n\n data () {\n return {\n modes,\n internalMode: this.mode,\n }\n },\n\n computed: {\n currentMode (): Mode {\n return this.modes[this.internalMode]\n },\n },\n\n watch: {\n mode (mode) {\n this.internalMode = mode\n },\n },\n\n created () {\n this.internalMode = this.mode\n },\n\n methods: {\n getValue (v: any, type: string) {\n if (type === 'float') return Math.round(v * 100) / 100\n else if (type === 'int') return Math.round(v)\n else return 0\n },\n parseValue (v: string, type: string) {\n if (type === 'float') return parseFloat(v)\n else if (type === 'int') return parseInt(v, 10) || 0\n else return 0\n },\n changeMode () {\n const modes = Object.keys(this.modes)\n const index = modes.indexOf(this.internalMode)\n const newMode = modes[(index + 1) % modes.length]\n this.internalMode = newMode\n this.$emit('update:mode', newMode)\n },\n genInput (target: string, attrs: any, value: any, on: any): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__input',\n }, [\n this.$createElement('input', {\n key: target,\n attrs,\n domProps: {\n value,\n },\n on,\n }),\n this.$createElement('span', target.toUpperCase()),\n ])\n },\n genInputs (): VNode[] | VNode {\n switch (this.internalMode) {\n case 'hexa': {\n const hex = this.color.hexa\n const value = this.hideAlpha && hex.endsWith('FF') ? hex.substr(0, 7) : hex\n return this.genInput(\n 'hex',\n {\n maxlength: this.hideAlpha ? 7 : 9,\n disabled: this.disabled,\n },\n value,\n {\n change: (e: Event) => {\n const el = e.target as HTMLInputElement\n this.$emit('update:color', this.currentMode.from(parseHex(el.value)))\n },\n }\n )\n }\n default: {\n const inputs = this.hideAlpha ? this.currentMode.inputs!.slice(0, -1) : this.currentMode.inputs!\n return inputs.map(([target, max, type]) => {\n const value = this.color[this.internalMode as keyof VColorPickerColor] as any\n return this.genInput(\n target,\n {\n type: 'number',\n min: 0,\n max,\n step: type === 'float' ? '0.01' : type === 'int' ? '1' : undefined,\n disabled: this.disabled,\n },\n this.getValue(value[target], type),\n {\n input: (e: Event) => {\n const el = e.target as HTMLInputElement\n const newVal = this.parseValue(el.value || '0', type)\n\n this.$emit('update:color', this.currentMode.from(\n Object.assign({}, value, { [target]: newVal }),\n this.color.alpha\n ))\n },\n }\n )\n })\n }\n }\n },\n genSwitch (): VNode {\n return this.$createElement(VBtn, {\n props: {\n small: true,\n icon: true,\n disabled: this.disabled,\n },\n on: {\n click: this.changeMode,\n },\n }, [\n this.$createElement(VIcon, '$unfold'),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__edit',\n }, [\n this.genInputs(),\n !this.hideModeSwitch && this.genSwitch(),\n ])\n },\n})\n","const red = Object.freeze({\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000',\n})\n\nconst pink = Object.freeze({\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162',\n})\n\nconst purple = Object.freeze({\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff',\n})\n\nconst deepPurple = Object.freeze({\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea',\n})\n\nconst indigo = Object.freeze({\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe',\n})\n\nconst blue = Object.freeze({\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff',\n})\n\nconst lightBlue = Object.freeze({\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea',\n})\n\nconst cyan = Object.freeze({\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4',\n})\n\nconst teal = Object.freeze({\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5',\n})\n\nconst green = Object.freeze({\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853',\n})\n\nconst lightGreen = Object.freeze({\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17',\n})\n\nconst lime = Object.freeze({\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00',\n})\n\nconst yellow = Object.freeze({\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600',\n})\n\nconst amber = Object.freeze({\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00',\n})\n\nconst orange = Object.freeze({\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00',\n})\n\nconst deepOrange = Object.freeze({\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00',\n})\n\nconst brown = Object.freeze({\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723',\n})\n\nconst blueGrey = Object.freeze({\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238',\n})\n\nconst grey = Object.freeze({\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121',\n})\n\nconst shades = Object.freeze({\n black: '#000000',\n white: '#ffffff',\n transparent: 'transparent',\n})\n\nexport default Object.freeze({\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades,\n})\n","// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Helpers\nimport colors from '../../util/colors'\nimport { VColorPickerColor, fromHex, parseColor } from './util'\nimport { convertToUnit, deepEqual } from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { contrastRatio } from '../../util/colorUtils'\n\nfunction parseDefaultColors (colors: Record>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nconst white = fromHex('#FFFFFF').rgba\nconst black = fromHex('#000000').rgba\n\nexport default mixins(Themeable).extend({\n name: 'v-color-picker-swatches',\n\n props: {\n swatches: {\n type: Array as PropType,\n default: () => parseDefaultColors(colors),\n },\n color: Object as PropType,\n maxWidth: [Number, String],\n maxHeight: [Number, String],\n },\n\n methods: {\n genColor (color: string) {\n const content = this.$createElement('div', {\n style: {\n background: color,\n },\n }, [\n deepEqual(this.color, parseColor(color, null)) && this.$createElement(VIcon, {\n props: {\n small: true,\n dark: contrastRatio(this.color.rgba, white) > 2 && this.color.alpha > 0.5,\n light: contrastRatio(this.color.rgba, black) > 2 && this.color.alpha > 0.5,\n },\n }, '$success'),\n ])\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__color',\n on: {\n // TODO: Less hacky way of catching transparent\n click: () => this.$emit('update:color', fromHex(color === 'transparent' ? '#00000000' : color)),\n },\n }, [content])\n },\n genSwatches () {\n return this.swatches.map(swatch => {\n const colors = swatch.map(this.genColor)\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__swatch',\n }, colors)\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__swatches',\n style: {\n maxWidth: convertToUnit(this.maxWidth),\n maxHeight: convertToUnit(this.maxHeight),\n },\n }, [\n this.$createElement('div', this.genSwatches()),\n ])\n },\n})\n","// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\nimport VColorPickerPreview from './VColorPickerPreview'\nimport VColorPickerCanvas from './VColorPickerCanvas'\nimport VColorPickerEdit, { Mode, modes } from './VColorPickerEdit'\nimport VColorPickerSwatches from './VColorPickerSwatches'\n\n// Helpers\nimport { VColorPickerColor, parseColor, fromRGBA, extractColor, hasAlpha } from './util'\nimport mixins from '../../util/mixins'\nimport { deepEqual } from '../../util/helpers'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\nexport default mixins(Elevatable, Themeable).extend({\n name: 'v-color-picker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n flat: Boolean,\n hideCanvas: Boolean,\n hideInputs: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n showSwatches: Boolean,\n swatches: Array as PropType,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n value: {\n type: [Object, String],\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data: () => ({\n internalValue: fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n }),\n\n computed: {\n hideAlpha (): boolean {\n if (!this.value) return false\n\n return !hasAlpha(this.value)\n },\n },\n\n watch: {\n value: {\n handler (color: any) {\n this.updateColor(parseColor(color, this.internalValue))\n },\n immediate: true,\n },\n },\n\n methods: {\n updateColor (color: VColorPickerColor) {\n this.internalValue = color\n const value = extractColor(this.internalValue, this.value)\n\n if (!deepEqual(value, this.value)) {\n this.$emit('input', value)\n this.$emit('update:color', this.internalValue)\n }\n },\n genCanvas (): VNode {\n return this.$createElement(VColorPickerCanvas, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n dotSize: this.dotSize,\n width: this.width,\n height: this.canvasHeight,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n genControls (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__controls',\n }, [\n this.genPreview(),\n !this.hideInputs && this.genEdit(),\n ])\n },\n genEdit (): VNode {\n return this.$createElement(VColorPickerEdit, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n hideModeSwitch: this.hideModeSwitch,\n mode: this.mode,\n },\n on: {\n 'update:color': this.updateColor,\n 'update:mode': (v: Mode) => this.$emit('update:mode', v),\n },\n })\n },\n genPreview (): VNode {\n return this.$createElement(VColorPickerPreview, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n genSwatches (): VNode {\n return this.$createElement(VColorPickerSwatches, {\n props: {\n dark: this.dark,\n light: this.light,\n swatches: this.swatches,\n color: this.internalValue,\n maxHeight: this.swatchesMaxHeight,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n },\n\n render (h): VNode {\n return h(VSheet, {\n staticClass: 'v-color-picker',\n class: {\n 'v-color-picker--flat': this.flat,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n props: {\n maxWidth: this.width,\n },\n }, [\n !this.hideCanvas && this.genCanvas(),\n this.genControls(),\n this.showSwatches && this.genSwatches(),\n ])\n },\n})\n","import { render, staticRenderFns } from \"./WidgetViewConfigCard.vue?vue&type=template&id=470f158e&\"\nimport script from \"./WidgetViewConfigCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./WidgetViewConfigCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VColorPicker } from 'vuetify/lib/components/VColorPicker';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VColorPicker,VMenu,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',[(_vm.widget.widgetType == _vm.WidgetTypesEnum.CashCount)?_c('CashCountFilter',{attrs:{\"widget\":_vm.widget}}):_vm._e(),(_vm.widget.widgetType == _vm.WidgetTypesEnum.CashDistribution)?_c('CashDistributionFilter',{attrs:{\"widget\":_vm.widget}}):_vm._e(),(_vm.widget.widgetType == _vm.WidgetTypesEnum.Transactions)?_c('TransactionsFilter',{attrs:{\"widget\":_vm.widget}}):_vm._e(),(\n this.authUserHasPrivilege(_vm.ClientPrivileges.UpdatesManagement) &&\n (_vm.widget.widgetType == _vm.WidgetTypesEnum.DeviceCount || _vm.widget.widgetType == _vm.WidgetTypesEnum.UpdateStatus)\n )?_c('SoftwareVersionsFilter',{attrs:{\"widget\":_vm.widget}}):_vm._e(),(_vm.widget.widgetType == _vm.WidgetTypesEnum.InstallationSummary)?_c('InstallationSummaryFilter',{attrs:{\"widget\":_vm.widget}}):_vm._e(),(_vm.widget.widgetType != _vm.WidgetTypesEnum.InstallationSummary)?_c('span',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\",\"align-self\":\"center\"}},[_c('v-select',{attrs:{\"items\":_vm.availableMachineModelsFiltered,\"label\":_vm.$t('dashboard.by_model'),\"multiple\":\"\",\"loading\":_vm.loadingModels},model:{value:(_vm.widget.filter.byModel),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"byModel\", $$v)},expression:\"widget.filter.byModel\"}})],1),_c('v-col',{attrs:{\"cols\":\"8\",\"align-self\":\"center\"}},[_c('v-menu',{attrs:{\"offset-x\":\"\",\"close-on-content-click\":false,\"max-height\":\"80%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"outlined\":\"\"}},on),[_c('v-fa-icon',{staticClass:\"mx-2\",attrs:{\"icon\":\"folder-open\"}}),_c('span',{domProps:{\"textContent\":_vm._s(_vm.$t('dashboard.by_hierarchy'))}})],1)]}}],null,false,1217520423)},[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"dashboard.by_hierarchy\"))+\" \")]),_c('v-card-text',[_c('DeviceFolderTree',{attrs:{\"title\":_vm.$t('common.select_folder'),\"multiple-active\":\"\"},model:{value:(_vm.widget.filter.byFolder),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"byFolder\", $$v)},expression:\"widget.filter.byFolder\"}})],1)],1)],1)],1)],1),_c('v-row',[_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"success\"},on:{\"click\":_vm.addNewTagFilter}},[_c('v-fa-icon',{attrs:{\"icon\":\"plus\"}})],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"error\"},on:{\"click\":_vm.removeLastTagFilter}},[_c('v-fa-icon',{attrs:{\"icon\":\"minus\"}})],1)],1),_vm._l((_vm.widget.filter.byTag),function(tagFilter,idx){return _c('v-col',{key:idx,staticClass:\"shrink\"},[_c('TagsFilter',{attrs:{\"button-mode\":\"\"},model:{value:(_vm.widget.filter.byTag[idx]),callback:function ($$v) {_vm.$set(_vm.widget.filter.byTag, idx, $$v)},expression:\"widget.filter.byTag[idx]\"}})],1)})],2)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableCashTypes,\"label\":_vm.$t('dashboard.by_cash_type'),\"multiple\":\"\"},model:{value:(_vm.widget.filter.byCashType),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"byCashType\", $$v)},expression:\"widget.filter.byCashType\"}})],1),_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableStockTypes,\"label\":_vm.$t('dashboard.stock_type'),\"multiple\":\"\"},model:{value:(_vm.widget.filter.stockType),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"stockType\", $$v)},expression:\"widget.filter.stockType\"}})],1),_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.currencies,\"label\":_vm.$t('common.currency')},model:{value:(_vm.widget.filter.currency),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"currency\", $$v)},expression:\"widget.filter.currency\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { CashTypeEnum, cashTypeEnumLabel } from \"@/model/data/enums/CashTypeEnum\";\r\nimport { StockTypeEnum, stockTypeEnumLabel } from \"@/model/data/enums/StockTypeEnum\";\r\nimport { RootState } from \"@/store\";\r\nimport { GET_WORKLOAD_CURRENCIES } from \"@/store/modules/InstallationsWorkloadModule/actions\";\r\nimport Vue, { PropType } from \"vue\";\r\nimport { mapActions, mapState } from \"vuex\";\r\n\r\nexport default Vue.extend({\r\n components: {},\r\n data: function() {\r\n return {};\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n ...mapState({\r\n currencies: (state: RootState) => state.installationWorkload.currencies,\r\n }),\r\n availableCashTypes() {\r\n return [\r\n {\r\n value: CashTypeEnum.Banknote,\r\n text: this.$t(cashTypeEnumLabel(CashTypeEnum.Banknote)),\r\n },\r\n {\r\n value: CashTypeEnum.Coin,\r\n text: this.$t(cashTypeEnumLabel(CashTypeEnum.Coin)),\r\n },\r\n ];\r\n },\r\n availableStockTypes() {\r\n return [\r\n {\r\n value: StockTypeEnum.Bag,\r\n text: this.$t(stockTypeEnumLabel(StockTypeEnum.Bag)),\r\n },\r\n {\r\n value: StockTypeEnum.Roll,\r\n text: this.$t(stockTypeEnumLabel(StockTypeEnum.Roll)),\r\n },\r\n {\r\n value: StockTypeEnum.NotRecycling,\r\n text: this.$t(stockTypeEnumLabel(StockTypeEnum.NotRecycling)),\r\n },\r\n ];\r\n },\r\n },\r\n methods: {\r\n ...mapActions([GET_WORKLOAD_CURRENCIES]),\r\n },\r\n mounted() {\r\n if (!this.currencies || !this.currencies.length) this[GET_WORKLOAD_CURRENCIES]();\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=c685245c&\"\nimport script from \"./Filter.vue?vue&type=script&lang=ts&\"\nexport * from \"./Filter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableCashTypes,\"label\":_vm.$t('dashboard.by_cash_type'),\"multiple\":\"\"},model:{value:(_vm.widget.filter.byCashType),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"byCashType\", $$v)},expression:\"widget.filter.byCashType\"}})],1),_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.availableStockTypes,\"label\":_vm.$t('dashboard.stock_type'),\"multiple\":\"\"},model:{value:(_vm.widget.filter.stockType),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"stockType\", $$v)},expression:\"widget.filter.stockType\"}})],1),_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.currencies,\"label\":_vm.$t('common.currency'),\"multiple\":\"\"},model:{value:(_vm.widget.filter.currencyList),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"currencyList\", $$v)},expression:\"widget.filter.currencyList\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\nimport { mapActions, mapState } from \"vuex\";\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { CashTypeEnum, cashTypeEnumLabel } from \"@/model/data/enums/CashTypeEnum\";\r\nimport { StockTypeEnum, stockTypeEnumLabel } from \"@/model/data/enums/StockTypeEnum\";\r\nimport { RootState } from \"@/store\";\r\nimport { GET_WORKLOAD_CURRENCIES } from \"@/store/modules/InstallationsWorkloadModule/actions\";\r\n\r\nexport default Vue.extend({\r\n components: {},\r\n data: function() {\r\n return {};\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n ...mapState({\r\n currencies: (state: RootState) => state.installationWorkload.currencies,\r\n }),\r\n availableCashTypes() {\r\n return [\r\n {\r\n value: CashTypeEnum.Banknote,\r\n text: this.$t(cashTypeEnumLabel(CashTypeEnum.Banknote)),\r\n },\r\n {\r\n value: CashTypeEnum.Coin,\r\n text: this.$t(cashTypeEnumLabel(CashTypeEnum.Coin)),\r\n },\r\n ];\r\n },\r\n availableStockTypes() {\r\n return [\r\n {\r\n value: StockTypeEnum.Bag,\r\n text: this.$t(stockTypeEnumLabel(StockTypeEnum.Bag)),\r\n },\r\n {\r\n value: StockTypeEnum.Roll,\r\n text: this.$t(stockTypeEnumLabel(StockTypeEnum.Roll)),\r\n },\r\n {\r\n value: StockTypeEnum.NotRecycling,\r\n text: this.$t(stockTypeEnumLabel(StockTypeEnum.NotRecycling)),\r\n },\r\n ];\r\n },\r\n },\r\n methods: {\r\n ...mapActions([GET_WORKLOAD_CURRENCIES]),\r\n },\r\n mounted() {\r\n if (!this.currencies || !this.currencies.length) this[GET_WORKLOAD_CURRENCIES]();\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=fd82a2e6&\"\nimport script from \"./Filter.vue?vue&type=script&lang=ts&\"\nexport * from \"./Filter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.availableDateRangeType,\"label\":_vm.$t('dashboard.date_range_type')},model:{value:(_vm.widget.filter.dateRangeType),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"dateRangeType\", $$v)},expression:\"widget.filter.dateRangeType\"}})],1),(_vm.widget.filter.dateRangeType == _vm.DateRangeTypeEnum.Dynamic)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.availableDynamicDateRange,\"label\":_vm.$t('common.interval')},model:{value:(_vm.widget.filter.daysInterval),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"daysInterval\", $$v)},expression:\"widget.filter.daysInterval\"}})],1):_vm._e(),(_vm.widget.filter.dateRangeType == _vm.DateRangeTypeEnum.Fixed)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({},on),[_c('v-fa-icon',{staticClass:\"mx-2\",attrs:{\"icon\":\"calendar-alt\"}}),(_vm.widget.filter.startDate)?_c('span',{staticClass:\"mx-2\",domProps:{\"textContent\":_vm._s(_vm.startDateText(_vm.widget))}}):_vm._e(),(_vm.widget.filter.endDate)?_c('span',{staticClass:\"mx-2\",domProps:{\"textContent\":_vm._s(_vm.endDateText(_vm.widget))}}):_vm._e()],1)]}}],null,false,3208458852)},[_c('v-date-picker',{attrs:{\"range\":\"\",\"scrollable\":\"\",\"no-title\":\"\",\"allowed-dates\":function (v) { return new Date() > new Date(v); }},model:{value:(_vm.dateRange),callback:function ($$v) {_vm.dateRange=$$v},expression:\"dateRange\"}})],1)],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.availableTransactionTypes,\"label\":_vm.$t('dashboard.trans_types'),\"multiple\":\"\"},model:{value:(_vm.widget.filter.transTypes),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"transTypes\", $$v)},expression:\"widget.filter.transTypes\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.currencies,\"label\":_vm.$t('common.currency'),\"clearable\":\"\"},model:{value:(_vm.widget.filter.currency),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"currency\", $$v)},expression:\"widget.filter.currency\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('dashboard.user_id'),\"placeholder\":_vm.$t('dashboard.enter_user_id')},model:{value:(_vm.widget.filter.userId),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"userId\", $$v)},expression:\"widget.filter.userId\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('dashboard.channel_id'),\"placeholder\":_vm.$t('dashboard.enter_channel_id')},model:{value:(_vm.widget.filter.channelId),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"channelId\", $$v)},expression:\"widget.filter.channelId\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('dashboard.shift_number'),\"placeholder\":_vm.$t('dashboard.enter_shift_number')},model:{value:(_vm.widget.filter.shiftNumber),callback:function ($$v) {_vm.$set(_vm.widget.filter, \"shiftNumber\", $$v)},expression:\"widget.filter.shiftNumber\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\nimport _ from \"lodash\";\r\nimport moment from \"moment\";\r\nimport { DateRangeTypeEnum } from \"@/model/data/dashboard/DateRangeTypeEnum\";\r\nimport { TransactionTypeEnum, transactionTypeEnumLabel } from \"@/model/data/enums/TransactionTypeEnum\";\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport { GET_WORKLOAD_CURRENCIES } from \"@/store/modules/InstallationsWorkloadModule/actions\";\r\nimport { RootState } from \"@/store\";\r\nexport default Vue.extend({\r\n data() {\r\n return { DateRangeTypeEnum };\r\n },\r\n computed: {\r\n ...mapGetters([\"userDateFormat\"]),\r\n ...mapState({\r\n currencies: (state: RootState): string[] => state.installationWorkload.currencies,\r\n }),\r\n dateRange: {\r\n get() {\r\n var res = [];\r\n if (this.widget.filter.startDate)\r\n res.push(\r\n moment(this.widget.filter.startDate)\r\n .toISOString()\r\n .substr(0, 10)\r\n );\r\n if (this.widget.filter.endDate)\r\n res.push(\r\n moment(this.widget.filter.endDate)\r\n .toISOString()\r\n .substr(0, 10)\r\n );\r\n return res;\r\n },\r\n set(v: any) {\r\n if (v.length == 1) {\r\n this.widget.filter.startDate = new Date(v[0]);\r\n this.widget.filter.endDate = null;\r\n } else {\r\n const a = new Date(v[0]);\r\n const b = new Date(v[1]);\r\n if (a < b) {\r\n this.widget.filter.startDate = a;\r\n this.widget.filter.endDate = b;\r\n } else {\r\n this.widget.filter.startDate = b;\r\n this.widget.filter.endDate = a;\r\n }\r\n\r\n this.widget.filter.endDate.setUTCHours(23);\r\n this.widget.filter.endDate.setUTCMinutes(59);\r\n this.widget.filter.endDate.setUTCSeconds(59);\r\n }\r\n },\r\n },\r\n availableDynamicDateRange() {\r\n return [\r\n { value: 1, text: this.$tc(\"common.day\", 1, { count: 1 }) },\r\n { value: 7, text: this.$tc(\"common.day\", 7, { count: 7 }) },\r\n { value: 15, text: this.$tc(\"common.day\", 15, { count: 15 }) },\r\n { value: 30, text: this.$tc(\"common.month\", 1, { count: 1 }) },\r\n { value: 90, text: this.$tc(\"common.month\", 3, { count: 3 }) },\r\n ];\r\n },\r\n availableTransactionTypes() {\r\n return Object.values(TransactionTypeEnum)\r\n .filter((v) => !isNaN(Number(v)))\r\n .map((v) => ({\r\n text: this.$t(transactionTypeEnumLabel(v as TransactionTypeEnum)),\r\n value: v,\r\n }));\r\n },\r\n availableDateRangeType() {\r\n var res = [];\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.date_range_type.dynamic\"),\r\n value: DateRangeTypeEnum.Dynamic,\r\n });\r\n\r\n res.push({\r\n text: this.$t(\"dashboard.widget_transactions.date_range_type.fixed\"),\r\n value: DateRangeTypeEnum.Fixed,\r\n });\r\n\r\n return res;\r\n },\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n methods: {\r\n ...mapActions([GET_WORKLOAD_CURRENCIES]),\r\n startDateText(widget) {\r\n return moment(widget.filter.startDate).format(this.userDateFormat);\r\n },\r\n endDateText(widget) {\r\n return moment(widget.filter.endDate).format(this.userDateFormat);\r\n },\r\n },\r\n mounted() {\r\n if (!this.currencies || !this.currencies.length) this[GET_WORKLOAD_CURRENCIES]();\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=6181b9d2&\"\nimport script from \"./Filter.vue?vue&type=script&lang=ts&\"\nexport * from \"./Filter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VDatePicker,VMenu,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"my-4\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"8\"}},[_c('v-select',{attrs:{\"items\":_vm.availableSws,\"loading\":_vm.loading,\"return-object\":\"\",\"label\":_vm.$t('dashboard.by_software'),\"disabled\":_vm.availableSws.length == 1},model:{value:(_vm.selectedSw),callback:function ($$v) {_vm.selectedSw=$$v},expression:\"selectedSw\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"4\",\"align-self\":\"center\"}},[(_vm.selectedSw)?_c('SoftwareVersionsSubsetFilter',{attrs:{\"showOnlyMultipleSelection\":_vm.showOnlyMultipleSelection},model:{value:(_vm.softwareVersionsSubset),callback:function ($$v) {_vm.softwareVersionsSubset=$$v},expression:\"softwareVersionsSubset\"}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},on:{\"input\":function($event){return _vm.setToValue()}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-badge',{attrs:{\"overlap\":\"\",\"content\":1,\"value\":false}},[_c('v-btn',_vm._g({attrs:{\"small\":\"\"}},on),[_c('v-fa-icon',{staticClass:\"mx-2\",attrs:{\"small\":\"\",\"icon\":\"filter\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"common.version_s\"))+\" \")],1)],1)]}}]),model:{value:(_vm.isMenuOpen),callback:function ($$v) {_vm.isMenuOpen=$$v},expression:\"isMenuOpen\"}},[_c('v-card',{staticClass:\"pa-4\",attrs:{\"max-width\":\"550\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0 px-2\",attrs:{\"cols\":\"auto\",\"align-self\":\"center\"}},[_c('v-card-title',{staticClass:\"pa-0\"},[_vm._v(\" \"+_vm._s(_vm.swName)+\" \"+_vm._s(_vm.$t(\"common.filter\"))+\" \")])],1),_c('v-spacer'),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"auto\",\"align-self\":\"center\"}},[_c('v-btn',{staticClass:\"mr-1\",attrs:{\"color\":\"success\",\"width\":\"100%\"},on:{\"click\":function($event){return _vm.onApply()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.apply\"))+\" \")])],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"auto\",\"align-self\":\"center\"}},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.setToDefault()}}},on),[_c('v-fa-icon',{attrs:{\"icon\":\"trash\"}})],1)]}}])},[_c('span',{domProps:{\"textContent\":_vm._s(_vm.$t('common.deleteFilter'))}})])],1),_c('v-col',{staticClass:\"py-0 pl-0 pr-2\",attrs:{\"cols\":\"auto\",\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeMenu()}}},[_c('v-icon',[_vm._v(\" fas fa-times \")])],1)],1)],1),_c('v-divider',{staticClass:\"my-2\"}),_c('v-radio-group',{model:{value:(_vm.radioGroup),callback:function ($$v) {_vm.radioGroup=$$v},expression:\"radioGroup\"}},[_c('v-radio',{attrs:{\"value\":2}},[_c('template',{slot:\"label\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0 px-2\",attrs:{\"cols\":\"auto\",\"align-self\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.noFilter\"))+\" \")])],1)],1)],2),(!_vm.showOnlyMultipleSelection)?_c('v-radio',{attrs:{\"value\":0}},[_c('template',{slot:\"label\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0 px-2\",attrs:{\"cols\":\"auto\",\"align-self\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.version_s\"))+\" \")]),_c('v-col',{staticClass:\"py-0 px-2\",attrs:{\"align-self\":\"center\"}},[_c('v-select',{attrs:{\"items\":_vm.availableSing,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.radioGroup != 0,\"return-object\":\"\"},model:{value:(_vm.selectedSign),callback:function ($$v) {_vm.selectedSign=$$v},expression:\"selectedSign\"}})],1),_c('v-col',{staticClass:\"py-0 px-2\",attrs:{\"cols\":\"4\",\"align-self\":\"center\"}},[_c('v-select',{attrs:{\"items\":_vm.obfuscatedAvailableItems.map(function (c) { return c.obfuscatedVersion; }),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.radioGroup != 0},model:{value:(_vm.selectedVersion),callback:function ($$v) {_vm.selectedVersion=$$v},expression:\"selectedVersion\"}})],1)],1)],1)],2):_vm._e(),_c('v-radio',{staticClass:\"mt-2\",attrs:{\"value\":1}},[_c('template',{slot:\"label\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0 px-2\",attrs:{\"cols\":\"auto\",\"align-self\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.customSelection\"))+\" \")]),_c('v-col',{staticClass:\"py-0 px-2\",attrs:{\"align-self\":\"center\"}},[_c('v-select',{attrs:{\"items\":_vm.obfuscatedAvailableItems.map(function (c) { return c.obfuscatedVersion; }),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"multiple\":\"\",\"label\":_vm.$t('common.version_s'),\"disabled\":_vm.radioGroup != 1},model:{value:(_vm.selectedObfuscatedVersions),callback:function ($$v) {_vm.selectedObfuscatedVersions=$$v},expression:\"selectedObfuscatedVersions\"}})],1)],1)],1)],2)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\n\r\n// Vuex\r\nimport { mapState } from \"vuex\";\r\nimport { RootState } from \"@/store\";\r\n\r\n// Model\r\nimport { VersionObfuscator } from \"@/model/data/updates/VersionObfuscator\";\r\nimport { UpdateTypeEnum } from \"@/model/data/enums/UpdateTypeEnum\";\r\nimport { SoftwareFilter } from \"@/model/data/updates/SoftwareFilter\";\r\nimport { NamedSoftwareVersion } from \"@/model/data/updates/NamedSoftwareVersion\";\r\nimport { SoftwareVersionsSubset } from \"@/model/data/updates/SoftwareVersionsSubset\";\r\nimport { ComparisonOperatorEnum, comparisonOperatorEnumLabel } from \"@/model/data/enums/ComparisonOperatorEnum\";\r\n\r\nclass ObfuscatedVersion {\r\n obfuscatedVersion: string;\r\n versions: string[] = [];\r\n\r\n constructor(obfuscatedVersion: string, singleVersion: string) {\r\n this.obfuscatedVersion = obfuscatedVersion;\r\n this.versions.push(singleVersion);\r\n }\r\n}\r\n\r\nexport default Vue.extend({\r\n data() {\r\n return {\r\n isMenuOpen: false,\r\n obfuscatedAvailableItems: new Array(),\r\n radioGroup: 2,\r\n selectedSign: null,\r\n selectedVersion: null,\r\n selectedObfuscatedVersions: [],\r\n };\r\n },\r\n props: {\r\n value: Object as () => SoftwareVersionsSubset,\r\n showOnlyMultipleSelection: Boolean,\r\n },\r\n computed: {\r\n ...mapState({\r\n availableSoftwares: (state: RootState): SoftwareFilter[] => state.application.availableSoftwareVersions,\r\n }),\r\n\r\n swUpdateType() {\r\n return (this.value as SoftwareVersionsSubset).updateType;\r\n },\r\n\r\n swName() {\r\n return (this.value as SoftwareVersionsSubset).name;\r\n },\r\n\r\n availableSing() {\r\n let items = [];\r\n items.push({ value: ComparisonOperatorEnum.LessThanOrEqualTo, text: this.$t(comparisonOperatorEnumLabel(ComparisonOperatorEnum.LessThanOrEqualTo)) });\r\n items.push({ value: ComparisonOperatorEnum.GreaterThanOrEqualTo, text: this.$t(comparisonOperatorEnumLabel(ComparisonOperatorEnum.GreaterThanOrEqualTo)) });\r\n return items;\r\n },\r\n\r\n availableSwsFilterByTypeAndName() {\r\n let res = [];\r\n if (Array.isArray(this.availableSoftwares) && this.availableSoftwares.length)\r\n if (this.availableSoftwares.some((sw: SoftwareFilter) => sw.updateType == this.swUpdateType)) {\r\n // se sono un sw di terze parti ed ho specificato il nome del sw filtro versionList\r\n if (this.swUpdateType == UpdateTypeEnum.ThirdPartySoftware && this.swName)\r\n res = this.availableSoftwares.find((sw) => sw.updateType == this.swUpdateType).versionsList.filter((v: NamedSoftwareVersion) => v.name == this.swName);\r\n // altrimenti non filtro versionList\r\n else res = this.availableSoftwares.find((sw: SoftwareFilter) => sw.updateType == this.swUpdateType).versionsList;\r\n }\r\n return res;\r\n },\r\n },\r\n watch: {\r\n availableSwsFilterByTypeAndName() {\r\n this.setObfuscatedAvailableItems();\r\n },\r\n\r\n obfuscatedAvailableItems(newObfuscatedAvailableItems) {\r\n // ogni volta che cambiano le versioni nelle combobox, imposto la prima versione nel radiogroup 0\r\n if (Array.isArray(newObfuscatedAvailableItems) && newObfuscatedAvailableItems.length) this.selectedVersion = newObfuscatedAvailableItems[0].obfuscatedVersion;\r\n },\r\n\r\n value() {\r\n this.setToValue();\r\n },\r\n },\r\n methods: {\r\n setToDefault() {\r\n this.obfuscatedAvailableItems = [];\r\n this.radioGroup = 2;\r\n this.setRadioGroup0SectionToDefault(); // impostazioni di default per il radioGroup 0\r\n this.setRadioGroup1SectionToDefault(); // impostazioni di default per il radiogroup 1\r\n this.setObfuscatedAvailableItems();\r\n },\r\n\r\n setRadioGroup1SectionToDefault() {\r\n this.selectedObfuscatedVersions = [];\r\n },\r\n\r\n setRadioGroup0SectionToDefault() {\r\n this.selectedSign = this.availableSing[0];\r\n if (Array.isArray(this.obfuscatedAvailableItems) && this.obfuscatedAvailableItems.length) this.selectedVersion = this.obfuscatedAvailableItems[0].obfuscatedVersion;\r\n else this.selectedVersion = null;\r\n },\r\n\r\n setToValue() {\r\n if (this.value.versions.length) {\r\n switch (this.value.comparisonOperator as ComparisonOperatorEnum) {\r\n case ComparisonOperatorEnum.GreaterThanOrEqualTo:\r\n this.radioGroup = 0;\r\n this.selectedSign = this.availableSing.find((c) => c.value == ComparisonOperatorEnum.GreaterThanOrEqualTo);\r\n this.selectedVersion = this.value.versions[0];\r\n this.setRadioGroup1SectionToDefault(); // impostazioni di default per il radiogroup 1\r\n break;\r\n case ComparisonOperatorEnum.LessThanOrEqualTo:\r\n this.radioGroup = 0;\r\n this.selectedSign = this.availableSing.find((c) => c.value == ComparisonOperatorEnum.LessThanOrEqualTo);\r\n this.selectedVersion = this.value.versions[0];\r\n this.setRadioGroup1SectionToDefault(); // impostazioni di default per il radiogroup 1\r\n break;\r\n case ComparisonOperatorEnum.EqualTo:\r\n this.radioGroup = 1;\r\n // da una lista di versioni non offuscate devo ricavare quelle offuscate\r\n this.selectedObfuscatedVersions = [];\r\n if (Array.isArray(this.obfuscatedAvailableItems) && this.obfuscatedAvailableItems.length) {\r\n this.value.versions.forEach((v) => {\r\n let ovTemp: ObfuscatedVersion = this.obfuscatedAvailableItems.find((ov: ObfuscatedVersion) => ov.versions.indexOf(v) >= 0);\r\n if (ovTemp && this.selectedObfuscatedVersions.indexOf(ovTemp.obfuscatedVersion) < 0) this.selectedObfuscatedVersions.push(ovTemp.obfuscatedVersion);\r\n });\r\n }\r\n this.setRadioGroup0SectionToDefault(); // impostazioni di default per il radioGroup 0\r\n break;\r\n default:\r\n break;\r\n }\r\n } else {\r\n this.radioGroup = 2;\r\n this.setRadioGroup0SectionToDefault(); // impostazioni di default per il radioGroup 0\r\n this.setRadioGroup1SectionToDefault(); // impostazioni di default per il radiogroup 1\r\n }\r\n },\r\n\r\n setObfuscatedAvailableItems() {\r\n this.obfuscatedAvailableItems = [];\r\n if (this.availableSwsFilterByTypeAndName.length > 0) {\r\n // calcolo le versioni (offuscate) da visualizzare nelle combobox\r\n this.availableSwsFilterByTypeAndName.forEach((item: NamedSoftwareVersion) => {\r\n let key = VersionObfuscator.obfuscate(item.version.trim());\r\n\r\n let find = this.obfuscatedAvailableItems.find((v: ObfuscatedVersion) => v.obfuscatedVersion === key);\r\n if (find) find.versions.push(item.version.trim());\r\n else this.obfuscatedAvailableItems.push(new ObfuscatedVersion(key, item.version.trim()));\r\n });\r\n }\r\n },\r\n\r\n onApply() {\r\n let softwareVersionsSubsetObjectToEmit: SoftwareVersionsSubset = new SoftwareVersionsSubset();\r\n softwareVersionsSubsetObjectToEmit.updateType = this.swUpdateType;\r\n softwareVersionsSubsetObjectToEmit.name = this.swName;\r\n\r\n switch (this.radioGroup) {\r\n // <= or >= than\r\n case 0:\r\n this.setRadioGroup1SectionToDefault(); // impostazioni di default per il radiogroup 1\r\n softwareVersionsSubsetObjectToEmit.comparisonOperator = this.selectedSign.value as ComparisonOperatorEnum;\r\n // dal momento che questa opzione del radioGroup c'è solo per tipi di sw per i quali non viene fatto offuscamento\r\n softwareVersionsSubsetObjectToEmit.versions.push(this.selectedVersion);\r\n break;\r\n // custom selection\r\n case 1:\r\n this.setRadioGroup0SectionToDefault(); // impostazioni di default per il radioGroup 0\r\n softwareVersionsSubsetObjectToEmit.comparisonOperator = ComparisonOperatorEnum.EqualTo;\r\n // calcolo le versioni da mandare\r\n this.selectedObfuscatedVersions.forEach((version: string) => {\r\n this.obfuscatedAvailableItems\r\n .find((ov: ObfuscatedVersion) => ov.obfuscatedVersion == version)\r\n .versions.forEach((v: string) => {\r\n softwareVersionsSubsetObjectToEmit.versions.push(v);\r\n });\r\n });\r\n break;\r\n default:\r\n // impostazioni di default per il radioGroup 0\r\n this.setRadioGroup0SectionToDefault();\r\n // impostazioni di default per il radiogroup 1\r\n this.setRadioGroup1SectionToDefault();\r\n break;\r\n }\r\n\r\n this.$emit(\"input\", softwareVersionsSubsetObjectToEmit);\r\n\r\n this.isMenuOpen = false;\r\n },\r\n\r\n closeMenu() {\r\n this.isMenuOpen = false;\r\n this.setToValue();\r\n },\r\n },\r\n mounted() {\r\n this.setToDefault();\r\n this.setToValue();\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftwareVersionsSubsetFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftwareVersionsSubsetFilter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SoftwareVersionsSubsetFilter.vue?vue&type=template&id=7e88ef48&\"\nimport script from \"./SoftwareVersionsSubsetFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./SoftwareVersionsSubsetFilter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBadge,VBtn,VCard,VCardTitle,VCol,VDivider,VIcon,VMenu,VRadio,VRadioGroup,VRow,VSelect,VSpacer,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\n// Vuex\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport { GET_AVAILABLE_SOFTWARE_VERSIONS } from \"@/store/modules/ApplicationModule/actions\";\r\n\r\n// Vue components\r\nimport SoftwareVersionsSubsetFilter from \"@/components/TableHeaderFilters/SoftwareVersionsSubsetFilter.vue\";\r\n\r\n// Model\r\nimport { WidgetTypesEnum } from \"@/model/data/dashboard/WidgetTypesEnum\";\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { GetI18nStringFromUpdateType, UpdateTypeEnum } from \"@/model/data/enums/UpdateTypeEnum\";\r\nimport { NamedSoftwareVersion } from \"@/model/data/updates/NamedSoftwareVersion\";\r\nimport { InstalledSoftware } from \"@/model/data/InstalledSoftware\";\r\nimport { SoftwareVersionsSubset } from \"@/model/data/updates/SoftwareVersionsSubset\";\r\nimport { SoftwareName } from \"@/model/data/updates/SoftwareName\";\r\nimport { SoftwareVersionsFilter } from \"@/model/data/updates/SoftwareVersionsFilter\";\r\n\r\nclass SoftwareItem {\r\n swType: UpdateTypeEnum;\r\n name: string;\r\n text: string;\r\n\r\n constructor(swType: UpdateTypeEnum, name: string, text: string) {\r\n this.swType = swType;\r\n this.name = name;\r\n this.text = text;\r\n }\r\n}\r\n\r\nconst ShowOnlyMultipleSelectionSwTypeList: UpdateTypeEnum[] = [UpdateTypeEnum.Firmware, UpdateTypeEnum.SensorFirmware, UpdateTypeEnum.SensorTemplate];\r\n\r\nexport default Vue.extend({\r\n components: {\r\n SoftwareVersionsSubsetFilter,\r\n },\r\n data() {\r\n return {\r\n WidgetTypesEnum,\r\n loading: false,\r\n selectedSw: null,\r\n softwareVersionsSubset: null,\r\n ignoreSelectedSwChanged: false,\r\n };\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n ...mapGetters({ availableSoftwareNames: \"availableSoftwareNames\" }),\r\n\r\n availableSws() {\r\n let res: SoftwareItem[] = [];\r\n this.availableSoftwareNames.forEach((swName: SoftwareName) => {\r\n if (swName.swType == UpdateTypeEnum.ThirdPartySoftware) res.push(new SoftwareItem(swName.swType, swName.name, swName.name));\r\n else res.push(new SoftwareItem(swName.swType, swName.name, this.$t(GetI18nStringFromUpdateType(swName.swType))));\r\n });\r\n\r\n return res;\r\n },\r\n\r\n showOnlyMultipleSelection() {\r\n return (ShowOnlyMultipleSelectionSwTypeList as UpdateTypeEnum[]).some((c) => c == this.selectedSw.swType);\r\n },\r\n\r\n selectedVersions: {\r\n get() {\r\n return [];\r\n },\r\n set(versions: NamedSoftwareVersion[]) {\r\n this.widget.filter.bySoftware = [];\r\n versions.forEach((v: NamedSoftwareVersion) => {\r\n let temp: InstalledSoftware = new InstalledSoftware();\r\n temp.name = v.name;\r\n temp.version = v.version;\r\n temp.updateType = this.selectedSw.swType;\r\n this.widget.filter.bySoftware.push(temp);\r\n });\r\n },\r\n },\r\n },\r\n watch: {\r\n selectedSw(newValue) {\r\n if (!this.ignoreSelectedSwChanged) {\r\n if (newValue != null) {\r\n let swVersionsSubset: SoftwareVersionsSubset = new SoftwareVersionsSubset();\r\n swVersionsSubset.updateType = this.selectedSw.swType;\r\n swVersionsSubset.name = this.selectedSw.name;\r\n this.softwareVersionsSubset = swVersionsSubset;\r\n } else this.softwareVersionsSubset = null;\r\n } else this.ignoreSelectedSwChanged = false;\r\n },\r\n\r\n softwareVersionsSubset(newSoftwareVersionsSubset) {\r\n // per il momento posso this.widget.filter.bySoftware.softwareVersionsSubsets ha al più un elemento, quindi spazzo via e ne creo uno nuovo\r\n // se in futuro si avranno più elementi, ricordarsi di settare correttamente this.widget.filter.bySoftware.logicalOperator\r\n this.widget.filter.bySoftware.softwareVersionsSubsets = [];\r\n if (newSoftwareVersionsSubset != null) this.widget.filter.bySoftware.softwareVersionsSubsets.push(newSoftwareVersionsSubset);\r\n },\r\n\r\n // widget: {\r\n // handler(newWidget) {\r\n // console.log(\"newWidget.filter: \", newWidget.filter);\r\n // if (newWidget.filter.bySoftware != null)\r\n // if (\r\n // (newWidget.filter.bySoftware as SoftwareVersionsFilter).softwareVersionsSubsets != null &&\r\n // (newWidget.filter.bySoftware as SoftwareVersionsFilter).softwareVersionsSubsets.length > 0\r\n // ) {\r\n // this.softwareVersionsSubset = (newWidget.filter.bySoftware as SoftwareVersionsFilter).softwareVersionsSubsets[0];\r\n // }\r\n // },\r\n // deep: true,\r\n // },\r\n },\r\n methods: {\r\n ...mapActions([GET_AVAILABLE_SOFTWARE_VERSIONS]),\r\n\r\n // setItems() {\r\n // this.availableSoftwareFilter.forEach((obj: SoftwareFilter) => {\r\n // var swType = obj.updateType;\r\n // if (swType == UpdateTypeEnum.ThirdPartySoftware)\r\n // obj.versionsList.forEach((v: NamedSoftwareVersion) => {\r\n // if (!this.availableSws.some((sw: SoftwareItem) => sw.name == v.name)) this.availableSws.push(new SoftwareItem(swType, v.name));\r\n // });\r\n // else this.availableSws.push(new SoftwareItem(swType, this.$t(GetI18nStringFromUpdateType(swType))));\r\n // });\r\n // },\r\n },\r\n async mounted() {\r\n this.loading = true;\r\n\r\n if (!this.availableSoftwareNames || !this.availableSoftwareNames.length) await this[GET_AVAILABLE_SOFTWARE_VERSIONS]();\r\n if (this.widget.filter.bySoftware != null)\r\n if (\r\n (this.widget.filter.bySoftware as SoftwareVersionsFilter).softwareVersionsSubsets != null &&\r\n (this.widget.filter.bySoftware as SoftwareVersionsFilter).softwareVersionsSubsets.length > 0\r\n ) {\r\n this.ignoreSelectedSwChanged = true;\r\n this.selectedSw = ((this.widget.filter.bySoftware as SoftwareVersionsFilter).softwareVersionsSubsets[0] as SoftwareVersionsSubset).name;\r\n this.softwareVersionsSubset = (this.widget.filter.bySoftware as SoftwareVersionsFilter).softwareVersionsSubsets[0];\r\n }\r\n\r\n this.loading = false;\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=6630a09c&\"\nimport script from \"./Filter.vue?vue&type=script&lang=ts&\"\nexport * from \"./Filter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',{attrs:{\"cols\":\"auto\",\"align-self\":\"center\"}},[_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.$t(\"common.device\"))+\": \")])],1),_c('v-col',{attrs:{\"cols\":\"auto\",\"align-self\":\"center\"}},[_c('v-combobox',{staticClass:\"mt-3\",attrs:{\"items\":_vm.comboboxInstallations,\"label\":_vm.$t('device_tree.installationName'),\"disabled\":!_vm.comboboxInstallations.length,\"clearable\":\"\",\"hide-details\":\"\"},model:{value:(_vm.selectedInstallation),callback:function ($$v) {_vm.selectedInstallation=$$v},expression:\"selectedInstallation\"}})],1),(!_vm.loading && _vm.availableInstallations == null)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"type\":\"error\",\"text\":\"\"}},[_vm._v(\" Cannot fetch device names \")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AxiosResponse } from \"axios\";\r\nimport { ApiGenericResponse } from \"../ApiGenericResponse\";\r\nimport { API_PREFIX, API_VERSION, Command, HttpVerbType } from \"../Command\";\r\n\r\nconst ENDPOINT = \"/device/distinct_names\";\r\n\r\nexport class GetDistinctInstallationsCommand extends Command {\r\n endPoint: string = API_PREFIX + API_VERSION + ENDPOINT;\r\n httpVerb: HttpVerbType = \"get\";\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async execute(): Promise {\r\n var res = await this.executeCommand();\r\n return new GetDistinctInstallationsResData(res);\r\n }\r\n}\r\n\r\nexport class GetDistinctInstallationsResData extends ApiGenericResponse {\r\n installationNames: string[];\r\n\r\n constructor(response: AxiosResponse) {\r\n super(response);\r\n this.installationNames = null;\r\n\r\n if (response.data && response.data.Payload && Array.isArray(response.data.Payload) && response.data.Payload.length) this.installationNames = response.data.Payload;\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\n\r\n// Model\r\nimport { ApiResponseStatusEnum } from \"@/model/communication/ApiResponseStatusEnum\";\r\nimport { GetDistinctInstallationsCommand, GetDistinctInstallationsResData } from \"@/model/communication/device/GetDistinctInstallationsCommand\";\r\n\r\nexport default Vue.extend({\r\n data() {\r\n return {\r\n loading: true,\r\n availableInstallations: [\"Installation-00\", \"Installation-01\", \"Installation-02\", \"IA300CC-00001\"],\r\n selectedInstallation: null,\r\n };\r\n },\r\n props: [\"widget\"],\r\n computed: {\r\n comboboxInstallations() {\r\n return this.availableInstallations.map((item) => ({ text: item, value: item }));\r\n },\r\n\r\n widgetId() {\r\n return this.widget.id;\r\n },\r\n },\r\n watch: {\r\n selectedInstallation(newValue) {\r\n this.widget.filter.byInstallationName = [newValue ? newValue.text : null];\r\n },\r\n widgetId() {\r\n this.setPreselectedItem();\r\n },\r\n },\r\n methods: {\r\n async getDistinctInstallations() {\r\n try {\r\n let res = await new GetDistinctInstallationsCommand().execute();\r\n\r\n if (res.responseStatus == ApiResponseStatusEnum.Success) this.availableInstallations = (res as GetDistinctInstallationsResData).installationNames;\r\n else console.error(\"cannot fetch installation names\");\r\n this.setPreselectedItem();\r\n this.loading = false;\r\n } catch (error) {\r\n console.error(\"Error fetching installation names error: \", error);\r\n }\r\n this.loading = false;\r\n },\r\n\r\n setPreselectedItem() {\r\n if (this.widget && this.widget.filter && Array.isArray(this.widget.filter.byInstallationName))\r\n if (Array.isArray(this.comboboxInstallations) && this.comboboxInstallations.filter((i) => i.text == this.widget.filter.byInstallationName[0]).length > 0)\r\n this.selectedInstallation = this.comboboxInstallations.filter((i) => i.text == this.widget.filter.byInstallationName[0])[0];\r\n },\r\n },\r\n mounted() {\r\n this.getDistinctInstallations();\r\n if (this.widget && this.widget.filter && Array.isArray(this.widget.filter.byInstallationName))\r\n if (this.availableInstallations.filter((i) => i.name == this.widget.filter.byInstallationName[0]).length > 0)\r\n this.selectedInstallation = this.availableInstallations.map((item) => ({ text: item, value: item }))[0];\r\n },\r\n});\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationSummaryFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationSummaryFilter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstallationSummaryFilter.vue?vue&type=template&id=73721020&\"\nimport script from \"./InstallationSummaryFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstallationSummaryFilter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VCardText,VCol,VCombobox,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\nimport * as ad from \"@/store/modules/ApplicationModule/actions\";\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport { RootState } from \"@/store\";\r\n\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport DeviceFolderTree from \"@/components/DeviceFolderTree.vue\";\r\nimport TagsFilter from \"@/components/TableHeaderFilters/TagsFilter.vue\";\r\n\r\nimport { WidgetTypesEnum } from \"@/model/data/dashboard/WidgetTypesEnum\";\r\n\r\nimport CashCountFilter from \"./CashCount/Filter.vue\";\r\nimport CashDistributionFilter from \"./CashDistribution/Filter.vue\";\r\nimport TransactionsFilter from \"./Transactions/Filter.vue\";\r\nimport SoftwareVersionsFilter from \"./SoftwareVersions/Filter.vue\";\r\nimport InstallationSummaryFilter from \"./InstallationSummary/InstallationSummaryFilter.vue\";\r\n\r\nimport { TagValues } from \"@/model/data/Tag\";\r\nimport { ClientPrivileges } from \"@/model/data/authentication/ClientPrivilegesEnum\";\r\nimport { LicenseModuleEnum } from \"@/model/data/License/LicenseModuleEnum\";\r\n\r\nexport default Vue.extend({\r\n components: {\r\n DeviceFolderTree,\r\n CashCountFilter,\r\n CashDistributionFilter,\r\n TransactionsFilter,\r\n SoftwareVersionsFilter,\r\n TagsFilter,\r\n InstallationSummaryFilter,\r\n },\r\n data() {\r\n return {\r\n WidgetTypesEnum,\r\n ClientPrivileges,\r\n loadingModels: false,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n availableMachineModels: (state: RootState): Map => state.application.availableMachineModels,\r\n }),\r\n availableMachineModelsFiltered() {\r\n if (this.availableMachineModels == null || this.availableMachineModels == undefined) return this.availableMachineModels;\r\n return this.availableMachineModels[LicenseModuleEnum[LicenseModuleEnum.ServiceAndUpdatesManagement]];\r\n },\r\n ...mapGetters([\"authUserHasPrivilege\"]),\r\n // currentComp() {\r\n // const type = _.find(this.availableFilter, (v) => {\r\n // return v.idx == this.WidgetConfig.Type;\r\n // });\r\n // // console.log(\"retrieved type\", type);\r\n // return type;\r\n // },\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n methods: {\r\n ...mapActions([ad.GET_AVAILABLE_MACHINE_MODELS]),\r\n addNewTagFilter() {\r\n (this.widget as DashboardWidget).filter.byTag.push(new TagValues());\r\n },\r\n removeLastTagFilter() {\r\n (this.widget as DashboardWidget).filter.byTag.pop();\r\n },\r\n },\r\n async mounted() {\r\n if (!this.availableMachineModels || !this.availableMachineModels.length) {\r\n this.loadingModels = true;\r\n await this[ad.GET_AVAILABLE_MACHINE_MODELS]();\r\n this.loadingModels = false;\r\n }\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetFilterCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetFilterCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WidgetFilterCard.vue?vue&type=template&id=208e4cf0&\"\nimport script from \"./WidgetFilterCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./WidgetFilterCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VMenu,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":\"\"}},[(_vm.canDoLivePreview)?[(_vm.canRenderWidgetCard)?_c('WidgetCard',{ref:\"widgetCard\",attrs:{\"widget\":_vm.livePreviewEnabled ? _vm.widget : _vm.localWidget,\"isPreview\":true}}):_vm._e(),_c('v-card-actions',[_c('v-switch',{attrs:{\"label\":_vm.$t('common.livePreview')},model:{value:(_vm.livePreviewEnabled),callback:function ($$v) {_vm.livePreviewEnabled=$$v},expression:\"livePreviewEnabled\"}}),_c('v-spacer'),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"icon\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.onRefresh()}}},[_c('v-fa-icon',{attrs:{\"icon\":\"sync\"}})],1)],1)]:[_c('v-card-text',{staticClass:\"text-h5 text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"dashboard.previewNotAvailable\"))+\" \")])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\n// Vue components\r\nimport WidgetCard from \"../WidgetCard.vue\";\r\n\r\n// Model\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { WidgetTypesEnum } from \"@/model/data/dashboard/WidgetTypesEnum\";\r\n\r\nexport default Vue.extend({\r\n components: {\r\n WidgetCard,\r\n },\r\n data() {\r\n return {\r\n livePreviewEnabled: true,\r\n localWidget: null,\r\n };\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n },\r\n computed: {\r\n canDoLivePreview() {\r\n return (\r\n (this.widget as DashboardWidget).widgetType != WidgetTypesEnum.CashCount &&\r\n (this.widget as DashboardWidget).widgetType != WidgetTypesEnum.Transactions &&\r\n (this.widget as DashboardWidget).widgetType != WidgetTypesEnum.InstallationsStatusChanges\r\n );\r\n },\r\n canRenderWidgetCard() {\r\n return (this.livePreviewEnabled && this.canDoLivePreview && this.widget) || this.localWidget;\r\n },\r\n },\r\n watch: {\r\n widget: {\r\n handler(newValue) {\r\n if (this.livePreviewEnabled && this.canDoLivePreview) this.fetchWidgetData(null);\r\n },\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n onRefresh() {\r\n this.localWidget = this.widget.clone();\r\n this.fetchWidgetData(this.localWidget);\r\n },\r\n\r\n fetchWidgetData(widget: DashboardWidget) {\r\n if (this.$refs.widgetCard) this.$refs.widgetCard.fetchWidgetData(widget);\r\n },\r\n },\r\n mounted() {\r\n this.localWidget = this.widget.clone();\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetPreviewCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetPreviewCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WidgetPreviewCard.vue?vue&type=template&id=3efb5c0a&\"\nimport script from \"./WidgetPreviewCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./WidgetPreviewCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VSpacer,VSwitch})\n","import { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { ApiGenericResponse } from \"../../ApiGenericResponse\";\r\nimport { API_PREFIX, API_VERSION, Command, HttpVerbType } from \"../../Command\";\r\n\r\nconst ENDPOINT = \"/dashboard/widget\";\r\n\r\nexport class CreateDashboardWidgetCommand extends Command {\r\n endPoint: string = API_PREFIX + API_VERSION + ENDPOINT;\r\n httpVerb: HttpVerbType = \"post\";\r\n widget: DashboardWidget;\r\n\r\n constructor(widget: DashboardWidget) {\r\n super();\r\n this.widget = widget;\r\n }\r\n\r\n public async execute(): Promise {\r\n var res = await this.executeCommand(this.widget);\r\n return new ApiGenericResponse(res);\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from \"vue\";\r\n\r\nimport BaseWidgetInformationCard from \"./BaseWidgetInformationCard.vue\";\r\nimport WidgetViewConfigCard from \"./WidgetViewConfigCard.vue\";\r\nimport WidgetFilterCard from \"./WidgetFilterCard.vue\";\r\nimport WidgetPreviewCard from \"./WidgetPreviewCard.vue\";\r\n\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { CreateDashboardWidgetCommand } from \"@/model/communication/dashboard/widget/CreateDashboardWidgetCommand\";\r\nimport { UpdateDashboardWidgetCommand } from \"@/model/communication/dashboard/widget/UpdateDashboardWidgetCommand\";\r\n\r\nimport { ApiResponseStatusEnum } from \"@/model/communication/ApiResponseStatusEnum\";\r\nimport { ApiGenericResponse } from \"@/model/communication/ApiGenericResponse\";\r\nimport { WidgetViewTypesEnum } from \"@/model/data/dashboard/WidgetViewTypesEnum\";\r\nimport { WidgetTypesEnum } from \"@/model/data/dashboard/WidgetTypesEnum\";\r\n\r\nexport default Vue.extend({\r\n components: {\r\n BaseWidgetInformationCard,\r\n WidgetViewConfigCard,\r\n WidgetPreviewCard,\r\n WidgetFilterCard,\r\n },\r\n data() {\r\n return {\r\n showPreview: true,\r\n errorMessage: \"\",\r\n currentStep: 0,\r\n steps: [\r\n {\r\n name: this.$t(\"dashboard.basicInformation\"),\r\n icon: \"file\",\r\n component: BaseWidgetInformationCard,\r\n },\r\n {\r\n name: this.$t(\"dashboard.viewConfigParameters\"),\r\n icon: \"chart-area\",\r\n component: WidgetViewConfigCard,\r\n },\r\n {\r\n name: this.$t(\"dashboard.filters\"),\r\n icon: \"filter\",\r\n component: WidgetFilterCard,\r\n },\r\n ],\r\n };\r\n },\r\n props: {\r\n widget: Object as PropType,\r\n isNew: Boolean,\r\n },\r\n computed: {\r\n canDoPreviousStep() {\r\n return this.currentStep > 0;\r\n },\r\n canDoNextStep() {\r\n return this.currentStep < this.steps.length - 1;\r\n },\r\n canDoLivePreview() {\r\n if (this.widget && this.widget.widgetType)\r\n return (\r\n (this.widget as DashboardWidget).widgetType != WidgetTypesEnum.CashCount &&\r\n (this.widget as DashboardWidget).widgetType != WidgetTypesEnum.Transactions &&\r\n (this.widget as DashboardWidget).widgetType != WidgetTypesEnum.InstallationsStatusChanges\r\n );\r\n return false;\r\n },\r\n },\r\n watch: {\r\n widget: {\r\n deep: true,\r\n handler(value: DashboardWidget) {\r\n let availableWidgetTypes: Array = value.getAvailableViewType().map((c) => c.value);\r\n if (!availableWidgetTypes.includes(value.viewConfig.viewType)) {\r\n value.viewConfig.viewType = availableWidgetTypes[0];\r\n }\r\n setTimeout(this.$refs.widgetPreviewCard.fetchWidgetData(value));\r\n },\r\n },\r\n },\r\n methods: {\r\n previousStep() {\r\n if (this.canDoPreviousStep) this.currentStep--;\r\n },\r\n nextStep() {\r\n if (this.canDoNextStep) this.currentStep++;\r\n },\r\n onCancelClick() {\r\n this.$emit(\"close\");\r\n },\r\n\r\n fetchAndClose() {\r\n this.$emit(\"fetch\");\r\n this.$emit(\"close\");\r\n },\r\n\r\n async onSaveClick() {\r\n try {\r\n let res: ApiGenericResponse;\r\n\r\n if (this.isNew) res = await new CreateDashboardWidgetCommand(this.widget).execute();\r\n else {\r\n console.log(\"widget: \", this.widget);\r\n res = await new UpdateDashboardWidgetCommand(this.widget, null).execute();\r\n }\r\n\r\n if (res.responseStatus != ApiResponseStatusEnum.Success) {\r\n console.error(\"Error trying create/update widget with id: \", this.widget.id);\r\n this.errorMessage = this.$t(\"dashboard.cannotSaveWidget\");\r\n }\r\n this.fetchAndClose();\r\n } catch (error) {\r\n this.errorMessage = this.$t(\"dashboard.cannotSaveWidget\");\r\n console.error(\"Error trying create/update widget with id: \", this.widget.id, \" error: \", error);\r\n this.fetchAndClose();\r\n }\r\n },\r\n\r\n // onWidgetTypeChange() {\r\n // console.log(\"onWidgetTypeChange\");\r\n // apiFetchWidgetViewTypes(this.WidgetConfig).then((res) => {\r\n // if (res.status == 200) {\r\n // if (!res.data.map((v) => v.id).includes(this.WidgetConfig.ViewConfig.ViewType)) {\r\n // // console.log(\"Widget type change, ViewType: \", res.data[0].id);\r\n // this.WidgetConfig.ViewConfig.ViewType = res.data[0].id;\r\n // }\r\n // } else {\r\n // console.error(\"cannot fetch view types\", res);\r\n // }\r\n // });\r\n // },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetConfiguratorCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetConfiguratorCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WidgetConfiguratorCard.vue?vue&type=template&id=d01de824&\"\nimport script from \"./WidgetConfiguratorCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./WidgetConfiguratorCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VRow,VSpacer,VTab,VTabItem,VTabs,VTabsItems})\n","import { Dashboard } from \"@/model/data/dashboard/Dashboard\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { ApiGenericResponse } from \"../../ApiGenericResponse\";\r\n\r\nexport class FetchDashboardResData extends ApiGenericResponse {\r\n dashboard: Dashboard = null;\r\n breakpoint: string;\r\n\r\n constructor(response: AxiosResponse, breakpoint: string) {\r\n super(response);\r\n if (response.data && response.data.Payload) {\r\n var dashboard = new Dashboard();\r\n dashboard.fillFromJson(response.data.Payload, breakpoint);\r\n this.dashboard = dashboard;\r\n }\r\n }\r\n}\r\n","import { API_PREFIX, API_VERSION, Command, HttpVerbType } from \"../../Command\";\r\nimport { FetchDashboardResData } from \"./FetchDashboardResData\";\r\n\r\nconst ENDPOINT = \"/dashboard/\";\r\n\r\nexport class FetchDashboardCommand extends Command {\r\n endPoint: string = API_PREFIX + API_VERSION + ENDPOINT;\r\n httpVerb: HttpVerbType = \"get\";\r\n breakpoint: string;\r\n\r\n constructor(dashboardId: number, breakpoint: string) {\r\n super();\r\n this.endPoint += dashboardId;\r\n this.breakpoint = breakpoint;\r\n }\r\n\r\n public async execute(): Promise {\r\n var res = await this.executeCommand();\r\n return new FetchDashboardResData(res, this.breakpoint);\r\n }\r\n}\r\n","import { ApiGenericResponse } from \"../../ApiGenericResponse\";\r\nimport { Command, HttpVerbType, API_PREFIX, API_VERSION } from \"../../Command\";\r\n\r\nconst ENDPOINT = \"/dashboard/widget\";\r\n\r\nexport class DeleteDashboardWidgetCommand extends Command {\r\n endPoint: string = API_PREFIX + API_VERSION + ENDPOINT;\r\n httpVerb: HttpVerbType = \"delete\";\r\n\r\n params: DeleteWidgetReqData = null;\r\n\r\n constructor(widgetId: number) {\r\n super();\r\n this.params = new DeleteWidgetReqData(widgetId);\r\n }\r\n\r\n public async execute(): Promise {\r\n var res = await this.executeCommand(null, null, this.params);\r\n return new ApiGenericResponse(res);\r\n }\r\n}\r\n\r\nexport class DeleteWidgetReqData {\r\n id: number;\r\n constructor(widgetId: number) {\r\n this.id = widgetId;\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { RootState } from \"@/store\";\r\nimport { mapState } from \"vuex\";\r\n\r\n// Vue components\r\nimport VFaIcon from \"@/components/VFaIcon.vue\";\r\nimport DashboardLayout from \"./DashboardLayout.vue\";\r\nimport WidgetConfiguratorCard from \"./configurator/WidgetConfiguratorCard.vue\";\r\n\r\n// Model\r\nimport { ApiResponseStatusEnum } from \"@/model/communication/ApiResponseStatusEnum\";\r\nimport { FetchDashboardCommand } from \"@/model/communication/dashboard/dashboard/FetchDashboardCommand\";\r\nimport { DashboardWidget } from \"@/model/data/dashboard/DashboardWidget\";\r\nimport { CreateDashboardWidgetCommand } from \"@/model/communication/dashboard/widget/CreateDashboardWidgetCommand\";\r\nimport { DeleteDashboardWidgetCommand } from \"@/model/communication/dashboard/widget/DeleteDashboardWidgetCommand\";\r\n\r\nexport default Vue.extend({\r\n components: {\r\n DashboardLayout,\r\n WidgetConfiguratorCard,\r\n VFaIcon,\r\n },\r\n data() {\r\n return {\r\n dashboard: null,\r\n showWidgetConfiguratorDialog: false,\r\n tempWidget: null,\r\n isNewWidget: true,\r\n dashboardNotAvailable: false,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n tvMode: (s: RootState) => s.application.tvMode,\r\n }),\r\n dashboardId() {\r\n return this.$route.params.id;\r\n },\r\n currentBreakpoint() {\r\n return this.$vuetify.breakpoint.name;\r\n },\r\n },\r\n watch: {\r\n currentBreakpoint: {\r\n handler() {\r\n this.fetchDashboard();\r\n },\r\n deep: true,\r\n },\r\n $route: \"fetchDashboard\",\r\n },\r\n methods: {\r\n async fetchDashboard() {\r\n const res = await new FetchDashboardCommand(this.dashboardId, this.$vuetify.breakpoint.name).execute();\r\n if (res.responseStatus == ApiResponseStatusEnum.Success) {\r\n if (res.dashboard == null) this.dashboardNotAvailable = true;\r\n this.dashboard = res.dashboard;\r\n } else {\r\n this.dashboardNotAvailable = true;\r\n console.error(\"cannot fetch dashboard by id:\", this.dashboardId);\r\n }\r\n },\r\n\r\n async duplicateWidget(widgetToDuplicate: DashboardWidget) {\r\n try {\r\n let tempWidget = widgetToDuplicate.clone();\r\n tempWidget.title = tempWidget.title + \" (\" + this.$t(\"common.copy\") + \")\";\r\n\r\n let res = await new CreateDashboardWidgetCommand(tempWidget).execute();\r\n\r\n if (res.responseStatus != ApiResponseStatusEnum.Success) {\r\n console.error(\"Error trying duplicate widget with id: \", widgetToDuplicate.id);\r\n this.errorMessage = this.$t(\"dashboard.cannotSaveWidget\");\r\n }\r\n this.fetchDashboard();\r\n } catch (error) {\r\n this.errorMessage = this.$t(\"dashboard.cannotSaveWidget\");\r\n console.error(\"Error trying duplicate widget with id: \", widgetToDuplicate.id, \" error: \", error);\r\n this.fetchDashboard();\r\n }\r\n },\r\n\r\n onEdit(widgetToEdit: DashboardWidget) {\r\n console.log(\"onEdit widget id: \", widgetToEdit.id);\r\n this.tempWidget = widgetToEdit.clone();\r\n this.isNewWidget = false;\r\n this.showWidgetConfiguratorDialog = true;\r\n },\r\n\r\n addNewWidget() {\r\n console.log(\"Add new widget called\");\r\n this.tempWidget = new DashboardWidget();\r\n this.tempWidget.dashboardId = this.dashboardId;\r\n\r\n this.tempWidget.positionAndSizeList = [];\r\n let obj = { breakpoint: \"lg\", x: 0, y: 0, width: 2, height: 2 };\r\n this.tempWidget.positionAndSizeList.push(obj);\r\n\r\n this.isNewWidget = true;\r\n this.showWidgetConfiguratorDialog = true;\r\n },\r\n async deleteWidget(widget) {\r\n try {\r\n let res = await new DeleteDashboardWidgetCommand(widget.id).execute();\r\n if (res.responseStatus != ApiResponseStatusEnum.Success) {\r\n console.error(\"Error trying delete widget with id: \", widget.id);\r\n }\r\n } catch (error) {\r\n console.error(\"Error trying delete widget with id: \", widget.id, \" error: \", error);\r\n }\r\n this.fetchDashboard();\r\n },\r\n },\r\n mounted() {\r\n this.fetchDashboard();\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=cd198674&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VBtn,VCol,VDialog,VRow,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{style:(_vm.style)},[_c('v-row',{staticClass:\"pr-3\"},[_c('v-col',{staticClass:\"ma-0 pa-0\"},[(_vm.showAlertIf)?_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-2\",attrs:{\"color\":\"error\"}},on),[_vm._v(\"fas fa-exclamation-triangle\")])]}}],null,false,226357293)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.alertMessage)+\" \")])]):_vm._e()],1),_c('v-col',{staticClass:\"ma-0 pa-0\"},[_vm._v(\" \"+_vm._s(_vm.formatCurrency(_vm.currency, _vm.value))+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { formatCurrency } from \"@/utility/Formatter\";\r\n\r\nexport default Vue.extend({\r\n props: {\r\n currency: { type: String, required: true },\r\n value: { required: true },\r\n autoColor: { type: Boolean, default: false },\r\n color: { type: String },\r\n showAlertIf: { type: Boolean, default: false },\r\n alertMessage: { type: String },\r\n },\r\n computed: {\r\n style() {\r\n return this.autoColor ? (this.value >= 0 ? \"color: green\" : \"color: red\") : this.color != null && this.color.length > 0 ? \"color:\" + this.color : \"\";\r\n },\r\n },\r\n methods: {\r\n formatCurrency,\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColoredCurrencyTextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColoredCurrencyTextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColoredCurrencyTextField.vue?vue&type=template&id=baecbbc2&\"\nimport script from \"./ColoredCurrencyTextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColoredCurrencyTextField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCol,VIcon,VRow,VTooltip})\n","function dataHandler(newData, oldData) {\n if (oldData) {\n var chart = this.$data._chart;\n var newDatasetLabels = newData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldDatasetLabels = oldData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldLabels = JSON.stringify(oldDatasetLabels);\n var newLabels = JSON.stringify(newDatasetLabels);\n\n if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {\n newData.datasets.forEach(function (dataset, i) {\n var oldDatasetKeys = Object.keys(oldData.datasets[i]);\n var newDatasetKeys = Object.keys(dataset);\n var deletionKeys = oldDatasetKeys.filter(function (key) {\n return key !== '_meta' && newDatasetKeys.indexOf(key) === -1;\n });\n deletionKeys.forEach(function (deletionKey) {\n delete chart.data.datasets[i][deletionKey];\n });\n\n for (var attribute in dataset) {\n if (dataset.hasOwnProperty(attribute)) {\n chart.data.datasets[i][attribute] = dataset[attribute];\n }\n }\n });\n\n if (newData.hasOwnProperty('labels')) {\n chart.data.labels = newData.labels;\n this.$emit('labels:update');\n }\n\n if (newData.hasOwnProperty('xLabels')) {\n chart.data.xLabels = newData.xLabels;\n this.$emit('xlabels:update');\n }\n\n if (newData.hasOwnProperty('yLabels')) {\n chart.data.yLabels = newData.yLabels;\n this.$emit('ylabels:update');\n }\n\n chart.update();\n this.$emit('chart:update');\n } else {\n if (chart) {\n chart.destroy();\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n } else {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n}\n\nexport var reactiveData = {\n data: function data() {\n return {\n chartData: null\n };\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport var reactiveProp = {\n props: {\n chartData: {\n type: Object,\n required: true,\n default: function _default() {}\n }\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport default {\n reactiveData: reactiveData,\n reactiveProp: reactiveProp\n};","import Chart from 'chart.js';\nexport function generateChart(chartId, chartType) {\n return {\n render: function render(createElement) {\n return createElement('div', {\n style: this.styles,\n class: this.cssClasses\n }, [createElement('canvas', {\n attrs: {\n id: this.chartId,\n width: this.width,\n height: this.height\n },\n ref: 'canvas'\n })]);\n },\n props: {\n chartId: {\n default: chartId,\n type: String\n },\n width: {\n default: 400,\n type: Number\n },\n height: {\n default: 400,\n type: Number\n },\n cssClasses: {\n type: String,\n default: ''\n },\n styles: {\n type: Object\n },\n plugins: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n _chart: null,\n _plugins: this.plugins\n };\n },\n methods: {\n addPlugin: function addPlugin(plugin) {\n this.$data._plugins.push(plugin);\n },\n generateLegend: function generateLegend() {\n if (this.$data._chart) {\n return this.$data._chart.generateLegend();\n }\n },\n renderChart: function renderChart(data, options) {\n if (this.$data._chart) this.$data._chart.destroy();\n if (!this.$refs.canvas) throw new Error('Please remove the tags from your chart component. See https://vue-chartjs.org/guide/#vue-single-file-components');\n this.$data._chart = new Chart(this.$refs.canvas.getContext('2d'), {\n type: chartType,\n data: data,\n options: options,\n plugins: this.$data._plugins\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n }\n }\n };\n}\nexport var Bar = generateChart('bar-chart', 'bar');\nexport var HorizontalBar = generateChart('horizontalbar-chart', 'horizontalBar');\nexport var Doughnut = generateChart('doughnut-chart', 'doughnut');\nexport var Line = generateChart('line-chart', 'line');\nexport var Pie = generateChart('pie-chart', 'pie');\nexport var PolarArea = generateChart('polar-chart', 'polarArea');\nexport var Radar = generateChart('radar-chart', 'radar');\nexport var Bubble = generateChart('bubble-chart', 'bubble');\nexport var Scatter = generateChart('scatter-chart', 'scatter');\nexport default {\n Bar: Bar,\n HorizontalBar: HorizontalBar,\n Doughnut: Doughnut,\n Line: Line,\n Pie: Pie,\n PolarArea: PolarArea,\n Radar: Radar,\n Bubble: Bubble,\n Scatter: Scatter\n};","export enum StockTypeEnum {\r\n Unknown = -1,\r\n Bag = 0,\r\n Roll = 1,\r\n NotRecycling = 2\r\n}\r\n\r\nexport function stockTypeEnumLabel(stockType: StockTypeEnum): string {\r\n switch (stockType) {\r\n case StockTypeEnum.Bag:\r\n return \"enum.stockType.bag\";\r\n case StockTypeEnum.Roll:\r\n return \"enum.stockType.roll\";\r\n case StockTypeEnum.NotRecycling:\r\n return \"enum.stockType.notRecycling\";\r\n default:\r\n return \"common.unknown\";\r\n }\r\n}","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the